Ice Sheet System Model  4.18
Code documentation
Matice.h
Go to the documentation of this file.
1 
5 #ifndef MATICE_H_
6 #define MATICE_H_
7 
8 /*Headers:*/
9 /*{{{*/
10 #include "./Material.h"
11 #include "../Hook.h"
12 class IoModel;
13 class Elements;
14 class Element;
15 class Loads;
16 class Nodes;
17 class Vertices;
18 class Materials;
19 class Parameters;
20 class Gauss;
21 class Input;
22 /*}}}*/
23 
24 class Matice: public Material{
25 
26  private:
27  int mid;
28  bool isdamaged;
29  bool isenhanced;
33 
34  public:
35  /*Matice constructors, destructors: {{{*/
36  Matice();
37  Matice(int mid,int i, IoModel* iomodel);
38  Matice(int mid,int i, int materialtype);
39  ~Matice();
40  void Init(int mid,int i, int materialtype);
41  /*}}}*/
42  /*Object virtual functions definitions:{{{ */
43  Object* copy();
44  void DeepEcho();
45  void Echo();
46  int Id();
47  void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
48  int ObjectEnum();
49  /*}}}*/
50  /*Material virtual functions resolution: {{{*/
51  void Configure(Elements* elements);
53  void GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
54  void GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
55  void GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss);
57  void GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
58  void GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
59  void GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
60  void GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
61  IssmDouble GetA(Gauss* gauss);
62  IssmDouble GetAbar(Gauss* gauss);
63  IssmDouble GetB(Gauss* gauss);
64  IssmDouble GetBbar(Gauss* gauss);
65  IssmDouble GetD(Gauss* gauss);
66  IssmDouble GetDbar(Gauss* gauss);
67  IssmDouble GetE(Gauss* gauss);
68  IssmDouble GetEbar(Gauss* gauss);
69  IssmDouble GetN();
70  bool IsDamage();
71  bool IsEnhanced();
72  void ResetHooks();
73  void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
74 
75  void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
76  void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
77  void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
78 
79  void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
80  void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
81  void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf);
82  void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
83  void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){_error_("not supported");};
84  void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){_error_("not supported");};
85  void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){_error_("not supported");};
86  /*}}}*/
87 };
88 
89 #endif /* _MATICE_H_ */
Matice::ViscosityFS
void ViscosityFS(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
Definition: Matice.cpp:673
Matice::ViscositySSA
void ViscositySSA(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
Definition: Matice.cpp:797
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Matice::Init
void Init(int mid, int i, int materialtype)
Definition: Matice.cpp:51
Matice::Configure
void Configure(Elements *elements)
Definition: Matice.cpp:182
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Matice::GetViscosity_B
void GetViscosity_B(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matice.cpp:560
Matice::ViscosityBSSA
void ViscosityBSSA(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble eps_eff)
Definition: Matice.h:85
Matice::GetViscosityComplement
void GetViscosityComplement(IssmDouble *pviscosity_complement, IssmDouble *pepsilon, Gauss *gauss)
Definition: Matice.cpp:415
Matice::rheology_law
int rheology_law
Definition: Matice.h:30
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Elements
Declaration of Elements class.
Definition: Elements.h:17
Matice::GetViscosity2dDerivativeEpsSquare
void GetViscosity2dDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)
Definition: Matice.cpp:622
Material
Definition: Material.h:21
Matice::Matice
Matice()
Definition: Matice.cpp:24
Matice::GetViscosityDerivativeEpsSquare
void GetViscosityDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)
Definition: Matice.cpp:528
Matice::GetBbar
IssmDouble GetBbar(Gauss *gauss)
Definition: Matice.cpp:223
Matice::GetDbar
IssmDouble GetDbar(Gauss *gauss)
Definition: Matice.cpp:250
Matice::GetB
IssmDouble GetB(Gauss *gauss)
Definition: Matice.cpp:212
Matice::GetViscosityDComplement
void GetViscosityDComplement(IssmDouble *, IssmDouble *, Gauss *gauss)
Definition: Matice.cpp:473
Matice::GetN
IssmDouble GetN()
Definition: Matice.cpp:285
Element
Definition: Element.h:41
Matice::ViscosityBHO
void ViscosityBHO(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble eps_eff)
Definition: Matice.h:84
Matice::ViscosityFSDerivativeEpsSquare
void ViscosityFSDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
Definition: Matice.cpp:663
Matice::GetEbar
IssmDouble GetEbar(Gauss *gauss)
Definition: Matice.cpp:275
Object
Definition: Object.h:13
Materials
Declaration of Materials class.
Definition: Materials.h:16
Matice::IsDamage
bool IsDamage()
Definition: Matice.cpp:294
Matice::GetViscosity
void GetViscosity(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matice.cpp:304
Matice::mid
int mid
Definition: Matice.h:27
Hook
Definition: Hook.h:16
Matice::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Matice.cpp:659
Matice::IsEnhanced
bool IsEnhanced()
Definition: Matice.cpp:299
Matice::helement
Hook * helement
Definition: Matice.h:31
Matice::~Matice
~Matice()
Definition: Matice.cpp:46
Matice::ViscosityBFS
void ViscosityBFS(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input, IssmDouble eps_eff)
Definition: Matice.h:83
Matice::DeepEcho
void DeepEcho()
Definition: Matice.cpp:119
Matice::copy2
Material * copy2(Element *element)
Definition: Matice.cpp:101
Matice::copy
Object * copy()
Definition: Matice.cpp:83
Matice::GetE
IssmDouble GetE(Gauss *gauss)
Definition: Matice.cpp:265
Matice::ResetHooks
void ResetHooks()
Definition: Matice.cpp:650
Input2
Definition: Input2.h:18
Matice
Definition: Matice.h:24
Loads
Declaration of Loads class.
Definition: Loads.h:16
Matice::isdamaged
bool isdamaged
Definition: Matice.h:28
Matice::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Matice.cpp:161
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Matice::ViscosityHO
void ViscosityHO(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
Definition: Matice.cpp:712
Matice::Id
int Id()
Definition: Matice.cpp:159
Matice::ViscositySSADerivativeEpsSquare
void ViscositySSADerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
Definition: Matice.cpp:669
Matice::GetD
IssmDouble GetD(Gauss *gauss)
Definition: Matice.cpp:235
Matice::element
Element * element
Definition: Matice.h:32
Matice::Echo
void Echo()
Definition: Matice.cpp:139
Matice::isenhanced
bool isenhanced
Definition: Matice.h:29
IoModel
Definition: IoModel.h:48
Matice::GetA
IssmDouble GetA(Gauss *gauss)
Definition: Matice.cpp:190
Matice::ObjectEnum
int ObjectEnum()
Definition: Matice.cpp:174
Matice::GetAbar
IssmDouble GetAbar(Gauss *gauss)
Definition: Matice.cpp:201
Matice::GetViscosityBar
void GetViscosityBar(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matice.cpp:360
Gauss
Definition: Gauss.h:8
Matice::GetViscosity_D
void GetViscosity_D(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matice.cpp:592
Matice::ViscosityHODerivativeEpsSquare
void ViscosityHODerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
Definition: Matice.cpp:666
Material.h
abstract class for Material object
Matice::ViscosityL1L2
void ViscosityL1L2(IssmDouble *pviscosity, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *surf)
Definition: Matice.cpp:738