Ice Sheet System Model  4.18
Code documentation
Matestar.h
Go to the documentation of this file.
1 
5 #ifndef MATESTAR_H_
6 #define MATESTAR_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 Matestar: public Material{
25 
26  private:
27  int mid;
31 
32  public:
33  /*Matestar constructors, destructors: {{{*/
34  Matestar();
35  Matestar(int mid,int i, IoModel* iomodel);
36  ~Matestar();
37  /*}}}*/
38  /*Object virtual functions definitions:{{{ */
39  Object* copy();
40  void DeepEcho();
41  void Echo();
42  int Id();
43  void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
44  int ObjectEnum();
45  /*}}}*/
46  /*Material virtual functions resolution: {{{*/
47  void Configure(Elements* elements);
49  void GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
50  void GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
51  void GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss);
53  void GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
54  void GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
55  void GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
56  void GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
57  IssmDouble GetA(Gauss* gauss);
58  IssmDouble GetAbar(Gauss* gauss);
59  IssmDouble GetB(Gauss* gauss);
60  IssmDouble GetBbar(Gauss* gauss);
61  IssmDouble GetD(Gauss* gauss);
62  IssmDouble GetDbar(Gauss* gauss);
63  IssmDouble GetEc(Gauss* gauss);
64  IssmDouble GetEcbar(Gauss* gauss);
65  IssmDouble GetEs(Gauss* gauss);
66  IssmDouble GetEsbar(Gauss* gauss);
67  IssmDouble GetN();
68  bool IsDamage();
69  bool IsEnhanced(){_error_("not supported");};
70  void ResetHooks();
71  void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
72 
73  void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
74  void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
75  void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
76 
77  void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
78  void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
79  void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf);
80  void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
81  void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff);
82  void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff);
83  void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff);
84  /*}}}*/
85  IssmDouble GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss);
86  IssmDouble GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss);
87 };
88 
89 #endif /* _MATESTAR_H_ */
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Matestar::Configure
void Configure(Elements *elements)
Definition: Matestar.cpp:122
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Matestar::Id
int Id()
Definition: Matestar.cpp:101
Matestar::ViscositySSADerivativeEpsSquare
void ViscositySSADerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
Definition: Matestar.cpp:391
Matestar::GetViscosityGeneral
IssmDouble GetViscosityGeneral(IssmDouble vx, IssmDouble vy, IssmDouble vz, IssmDouble *dvx, IssmDouble *dvy, IssmDouble *dvz, IssmDouble eps_eff, bool isdepthaveraged, Gauss *gauss)
Definition: Matestar.cpp:248
Matestar::copy
Object * copy()
Definition: Matestar.cpp:53
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Matestar::DeepEcho
void DeepEcho()
Definition: Matestar.cpp:85
Matestar::GetEcbar
IssmDouble GetEcbar(Gauss *gauss)
Definition: Matestar.cpp:191
Matestar::GetEc
IssmDouble GetEc(Gauss *gauss)
Definition: Matestar.cpp:181
Matestar::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: Matestar.cpp:395
Elements
Declaration of Elements class.
Definition: Elements.h:17
Matestar::rheology_law
int rheology_law
Definition: Matestar.h:30
Matestar::ObjectEnum
int ObjectEnum()
Definition: Matestar.cpp:114
Matestar
Definition: Matestar.h:24
Material
Definition: Material.h:21
Matestar::Matestar
Matestar()
Definition: Matestar.cpp:24
Matestar::Echo
void Echo()
Definition: Matestar.cpp:93
Matestar::ViscosityBHO
void ViscosityBHO(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble eps_eff)
Definition: Matestar.cpp:424
Matestar::GetViscosity2dDerivativeEpsSquare
void GetViscosity2dDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)
Definition: Matestar.cpp:363
Matestar::ViscositySSA
void ViscositySSA(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
Definition: Matestar.cpp:570
Matestar::GetViscosity
void GetViscosity(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matestar.cpp:228
Matestar::~Matestar
~Matestar()
Definition: Matestar.cpp:46
Matestar::GetBbar
IssmDouble GetBbar(Gauss *gauss)
Definition: Matestar.cpp:162
Matestar::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Matestar.cpp:381
Matestar::GetViscosity_B
void GetViscosity_B(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matestar.cpp:355
Element
Definition: Element.h:41
Matestar::mid
int mid
Definition: Matestar.h:27
Matestar::copy2
Material * copy2(Element *element)
Definition: Matestar.cpp:69
Matestar::ViscosityFSDerivativeEpsSquare
void ViscosityFSDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
Definition: Matestar.cpp:385
Object
Definition: Object.h:13
Matestar::GetB
IssmDouble GetB(Gauss *gauss)
Definition: Matestar.cpp:152
Materials
Declaration of Materials class.
Definition: Materials.h:16
Matestar::GetEs
IssmDouble GetEs(Gauss *gauss)
Definition: Matestar.cpp:201
Hook
Definition: Hook.h:16
Matestar::GetViscosity_D
void GetViscosity_D(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matestar.cpp:359
Matestar::GetViscosity_BGeneral
IssmDouble GetViscosity_BGeneral(IssmDouble vx, IssmDouble vy, IssmDouble vz, IssmDouble *dvx, IssmDouble *dvy, IssmDouble *dvz, IssmDouble eps_eff, bool isdepthaveraged, Gauss *gauss)
Definition: Matestar.cpp:308
Matestar::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Matestar.cpp:103
Matestar::GetViscosityBar
void GetViscosityBar(IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
Definition: Matestar.cpp:232
Matestar::GetD
IssmDouble GetD(Gauss *gauss)
Definition: Matestar.cpp:172
Matestar::GetDbar
IssmDouble GetDbar(Gauss *gauss)
Definition: Matestar.cpp:176
Matestar::ViscosityBSSA
void ViscosityBSSA(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble eps_eff)
Definition: Matestar.cpp:452
Matestar::IsEnhanced
bool IsEnhanced()
Definition: Matestar.h:69
Matestar::GetViscosityDerivativeEpsSquare
void GetViscosityDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)
Definition: Matestar.cpp:244
Input2
Definition: Input2.h:18
Matestar::GetN
IssmDouble GetN()
Definition: Matestar.cpp:221
Matestar::ResetHooks
void ResetHooks()
Definition: Matestar.cpp:372
Matestar::GetViscosityComplement
void GetViscosityComplement(IssmDouble *pviscosity_complement, IssmDouble *pepsilon, Gauss *gauss)
Definition: Matestar.cpp:236
Loads
Declaration of Loads class.
Definition: Loads.h:16
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Matestar::helement
Hook * helement
Definition: Matestar.h:28
Matestar::IsDamage
bool IsDamage()
Definition: Matestar.cpp:367
Matestar::ViscosityFS
void ViscosityFS(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
Definition: Matestar.cpp:482
Matestar::GetViscosityDComplement
void GetViscosityDComplement(IssmDouble *, IssmDouble *, Gauss *gauss)
Definition: Matestar.cpp:240
Matestar::ViscosityHODerivativeEpsSquare
void ViscosityHODerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
Definition: Matestar.cpp:388
Matestar::GetAbar
IssmDouble GetAbar(Gauss *gauss)
Definition: Matestar.cpp:141
IoModel
Definition: IoModel.h:48
Matestar::GetA
IssmDouble GetA(Gauss *gauss)
Definition: Matestar.cpp:130
Matestar::element
Element * element
Definition: Matestar.h:29
Matestar::GetEsbar
IssmDouble GetEsbar(Gauss *gauss)
Definition: Matestar.cpp:211
Matestar::ViscosityL1L2
void ViscosityL1L2(IssmDouble *pviscosity, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *surf)
Definition: Matestar.cpp:567
Gauss
Definition: Gauss.h:8
Material.h
abstract class for Material object
Matestar::ViscosityHO
void ViscosityHO(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
Definition: Matestar.cpp:525