Ice Sheet System Model  4.18
Code documentation
Material.h
Go to the documentation of this file.
1 
5 #ifndef _MATERIAL_H_
6 #define _MATERIAL_H_
7 
8 /*Headers:*/
9 /*{{{*/
10 class Inputs;
11 template <class doubletype> class Vector;
12 #include "../../datastructures/datastructures.h"
13 #include "../../toolkits/toolkits.h"
14 class Element;
15 class Elements;
16 class Gauss;
17 class Input;
18 class Input2;
19 /*}}}*/
20 
21 class Material: public Object{
22 
23  public:
24  virtual ~Material(){};
25 
26  /*Numerics*/
27  virtual void Configure(Elements* elements)=0;
28  virtual Material* copy2(Element* element)=0;
29  virtual IssmDouble GetA(Gauss* gauss)=0;
30  virtual IssmDouble GetAbar(Gauss* gauss)=0;
31  virtual IssmDouble GetB(Gauss* gauss)=0;
32  virtual IssmDouble GetBbar(Gauss* gauss)=0;
33  virtual IssmDouble GetD(Gauss* gauss)=0;
34  virtual IssmDouble GetDbar(Gauss* gauss)=0;
35  virtual IssmDouble GetN()=0;
36  virtual void GetViscosity(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
37  virtual void GetViscosityBar(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
38  virtual void GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss)=0;
39  virtual void GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss)=0;
40  virtual void GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss)=0;
41  virtual void GetViscosity_B(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
42  virtual void GetViscosity_D(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
43  virtual void GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss)=0;
44  virtual bool IsDamage()=0;
45  virtual bool IsEnhanced()=0;
46  virtual void ResetHooks()=0;
47 
48  virtual void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
49  virtual void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
50  virtual void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
51  virtual void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input)=0;
52  virtual void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input)=0;
53  virtual void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf)=0;
54  virtual void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input)=0;
55  virtual void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble epseff)=0;
56  virtual void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble epseff)=0;
57  virtual void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble epseff)=0;
58 
59 };
60 #endif
Material::GetViscosityDComplement
virtual void GetViscosityDComplement(IssmDouble *pviscosity_complement, IssmDouble *pepsilon, Gauss *gauss)=0
IssmDouble
double IssmDouble
Definition: types.h:37
Material::~Material
virtual ~Material()
Definition: Material.h:24
Material::GetViscosityComplement
virtual void GetViscosityComplement(IssmDouble *pviscosity_complement, IssmDouble *pepsilon, Gauss *gauss)=0
Material::Configure
virtual void Configure(Elements *elements)=0
Material::GetViscosity_D
virtual void GetViscosity_D(IssmDouble *pviscosity, IssmDouble epseff, Gauss *gauss)=0
Material::IsEnhanced
virtual bool IsEnhanced()=0
Material::ViscosityHODerivativeEpsSquare
virtual void ViscosityHODerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)=0
Material::copy2
virtual Material * copy2(Element *element)=0
Elements
Declaration of Elements class.
Definition: Elements.h:17
Material::ViscosityHO
virtual void ViscosityHO(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)=0
Material
Definition: Material.h:21
Material::ViscosityFSDerivativeEpsSquare
virtual void ViscosityFSDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)=0
Material::IsDamage
virtual bool IsDamage()=0
Material::ViscosityBFS
virtual void ViscosityBFS(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input, IssmDouble epseff)=0
Material::ViscosityBHO
virtual void ViscosityBHO(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble epseff)=0
Element
Definition: Element.h:41
Object
Definition: Object.h:13
Material::ViscosityBSSA
virtual void ViscosityBSSA(IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble epseff)=0
Material::GetDbar
virtual IssmDouble GetDbar(Gauss *gauss)=0
Material::GetViscosityBar
virtual void GetViscosityBar(IssmDouble *pviscosity, IssmDouble epseff, Gauss *gauss)=0
Material::GetD
virtual IssmDouble GetD(Gauss *gauss)=0
Material::ViscosityFS
virtual void ViscosityFS(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)=0
Material::GetViscosity2dDerivativeEpsSquare
virtual void GetViscosity2dDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)=0
Material::GetAbar
virtual IssmDouble GetAbar(Gauss *gauss)=0
Material::GetViscosity
virtual void GetViscosity(IssmDouble *pviscosity, IssmDouble epseff, Gauss *gauss)=0
Input2
Definition: Input2.h:18
Material::ViscosityL1L2
virtual void ViscosityL1L2(IssmDouble *pviscosity, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *surf)=0
Material::GetBbar
virtual IssmDouble GetBbar(Gauss *gauss)=0
Material::GetB
virtual IssmDouble GetB(Gauss *gauss)=0
Material::GetA
virtual IssmDouble GetA(Gauss *gauss)=0
Material::ViscositySSA
virtual void ViscositySSA(IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)=0
Material::GetViscosityDerivativeEpsSquare
virtual void GetViscosityDerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)=0
Material::ViscositySSADerivativeEpsSquare
virtual void ViscositySSADerivativeEpsSquare(IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)=0
Material::ResetHooks
virtual void ResetHooks()=0
Vector
Definition: Vector.h:25
Material::GetViscosity_B
virtual void GetViscosity_B(IssmDouble *pviscosity, IssmDouble epseff, Gauss *gauss)=0
Gauss
Definition: Gauss.h:8
Material::GetN
virtual IssmDouble GetN()=0