Ice Sheet System Model  4.18
Code documentation
Public Member Functions | Data Fields
Matlitho Class Reference

#include <Matlitho.h>

Inheritance diagram for Matlitho:
Material Object

Public Member Functions

 Matlitho ()
 
 Matlitho (int matlitho_id, IoModel *iomodel)
 
 ~Matlitho ()
 
void SetMid (int matlitho_mid)
 
Objectcopy ()
 
void DeepEcho ()
 
void Echo ()
 
int Id ()
 
void Marshall (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
 
int ObjectEnum ()
 
Materialcopy2 (Element *element)
 
void Configure (Elements *elements)
 
void GetViscosity (IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
 
void GetViscosityBar (IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
 
void GetViscosityComplement (IssmDouble *pviscosity_complement, IssmDouble *pepsilon, Gauss *gauss)
 
void GetViscosityDComplement (IssmDouble *pviscosity_complement, IssmDouble *pepsilon, Gauss *gauss)
 
void GetViscosityDerivativeEpsSquare (IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)
 
void GetViscosity_B (IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
 
void GetViscosity_D (IssmDouble *pviscosity, IssmDouble eps_eff, Gauss *gauss)
 
void GetViscosity2dDerivativeEpsSquare (IssmDouble *pmu_prime, IssmDouble *pepsilon, Gauss *gauss)
 
IssmDouble GetA (Gauss *gauss)
 
IssmDouble GetAbar (Gauss *gauss)
 
IssmDouble GetB (Gauss *gauss)
 
IssmDouble GetBbar (Gauss *gauss)
 
IssmDouble GetD (Gauss *gauss)
 
IssmDouble GetDbar (Gauss *gauss)
 
IssmDouble GetN ()
 
bool IsDamage ()
 
bool IsEnhanced ()
 
void ResetHooks ()
 
void ViscosityFSDerivativeEpsSquare (IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
 
void ViscosityHODerivativeEpsSquare (IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
 
void ViscositySSADerivativeEpsSquare (IssmDouble *pmu_prime, IssmDouble *epsilon, Gauss *gauss)
 
void ViscosityFS (IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
 
void ViscosityHO (IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void ViscosityL1L2 (IssmDouble *pviscosity, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *surf)
 
void ViscositySSA (IssmDouble *pviscosity, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void ViscosityBFS (IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input, IssmDouble epseff)
 
void ViscosityBHO (IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble epseff)
 
void ViscosityBSSA (IssmDouble *pmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, IssmDouble epseff)
 
- Public Member Functions inherited from Material
virtual ~Material ()
 
- Public Member Functions inherited from Object
virtual ~Object ()
 

Data Fields

int mid
 
int numlayers
 
IssmDoubleradius
 
IssmDoubleviscosity
 
IssmDoublelame_lambda
 
IssmDoublelame_mu
 
IssmDoubleburgers_viscosity
 
IssmDoubleburgers_mu
 
IssmDoubledensity
 
IssmDoubleisburgers
 
IssmDoubleissolid
 

Detailed Description

Definition at line 14 of file Matlitho.h.

Constructor & Destructor Documentation

◆ Matlitho() [1/2]

Matlitho::Matlitho ( )

Definition at line 15 of file Matlitho.cpp.

15  {/*{{{*/
16  this->numlayers=0;
17  this->radius=NULL;
18  this->viscosity=NULL;
19  this->lame_lambda=NULL;
20  this->lame_mu=NULL;
21  this->burgers_viscosity=NULL;
22  this->burgers_mu=NULL;
23  this->density=NULL;
24  this->isburgers=NULL;
25  this->issolid=NULL;
26  return;
27 }

◆ Matlitho() [2/2]

Matlitho::Matlitho ( int  matlitho_id,
IoModel iomodel 
)

Definition at line 29 of file Matlitho.cpp.

29  {/*{{{*/
30 
31  IssmDouble* isburgersd=NULL;
32  IssmDouble* issolidd=NULL;
33 
34  this->mid=matlitho_mid;
35  iomodel->FindConstant(&this->numlayers,"md.materials.numlayers");
36 
37  this->radius=xNew<IssmDouble>(this->numlayers+1);
38  xMemCpy<IssmDouble>(this->radius, iomodel->Data("md.materials.radius"),this->numlayers+1);
39 
40  this->viscosity=xNew<IssmDouble>(this->numlayers);
41  xMemCpy<IssmDouble>(this->viscosity, iomodel->Data("md.materials.viscosity"),this->numlayers);
42 
43  this->lame_lambda=xNew<IssmDouble>(this->numlayers);
44  xMemCpy<IssmDouble>(this->lame_lambda, iomodel->Data("md.materials.lame_lambda"),this->numlayers);
45 
46  this->lame_mu=xNew<IssmDouble>(this->numlayers);
47  xMemCpy<IssmDouble>(this->lame_mu, iomodel->Data("md.materials.lame_mu"),this->numlayers);
48 
49  this->burgers_viscosity=xNew<IssmDouble>(this->numlayers);
50  xMemCpy<IssmDouble>(this->burgers_viscosity, iomodel->Data("md.materials.burgers_viscosity"),this->numlayers);
51 
52  this->burgers_mu=xNew<IssmDouble>(this->numlayers);
53  xMemCpy<IssmDouble>(this->burgers_mu, iomodel->Data("md.materials.burgers_mu"),this->numlayers);
54 
55  this->density=xNew<IssmDouble>(this->numlayers);
56  xMemCpy<IssmDouble>(this->density, iomodel->Data("md.materials.density"),this->numlayers);
57 
58  this->isburgers=xNew<IssmDouble>(this->numlayers);
59  xMemCpy<IssmDouble>(this->isburgers, iomodel->Data("md.materials.isburgers"),this->numlayers);
60 
61  this->issolid=xNew<IssmDouble>(this->numlayers);
62  xMemCpy<IssmDouble>(this->issolid, iomodel->Data("md.materials.issolid"),this->numlayers);
63 
64  /*isburgersd= xNew<IssmDouble>(this->numlayers);
65  this->isburgers=xNew<bool>(this->numlayers);
66  xMemCpy<IssmDouble>(isburgersd, iomodel->Data("md.materials.isburgers"),this->numlayers);
67  for (int i=0;i<this->numlayers;i++)this->isburgers[i]=reCast<bool,IssmDouble>(isburgersd[i]);
68 
69  issolidd= xNew<IssmDouble>(this->numlayers);
70  this->issolid=xNew<bool>(this->numlayers);
71  xMemCpy<IssmDouble>(issolidd, iomodel->Data("md.materials.issolid"),this->numlayers);
72  for (int i=0;i<this->numlayers;i++)this->issolid[i]=reCast<bool,IssmDouble>(issolidd[i]);*/
73 
74  /*free ressources: */
75  xDelete<IssmDouble>(isburgersd);
76  xDelete<IssmDouble>(issolidd);
77 }

◆ ~Matlitho()

Matlitho::~Matlitho ( )

Definition at line 79 of file Matlitho.cpp.

79  {/*{{{*/
80 
81  xDelete<IssmDouble>(radius);
82  xDelete<IssmDouble>(viscosity);
83  xDelete<IssmDouble>(lame_lambda);
84  xDelete<IssmDouble>(lame_mu);
85  xDelete<IssmDouble>(burgers_viscosity);
86  xDelete<IssmDouble>(burgers_mu);
87  xDelete<IssmDouble>(density);
88  xDelete<IssmDouble>(isburgers);
89  xDelete<IssmDouble>(issolid);
90 
91  return;
92 }

Member Function Documentation

◆ SetMid()

void Matlitho::SetMid ( int  matlitho_mid)

Definition at line 94 of file Matlitho.cpp.

94  {/*{{{*/
95  this->mid=matlitho_mid;
96 }

◆ copy()

Object * Matlitho::copy ( void  )
virtual

Implements Object.

Definition at line 100 of file Matlitho.cpp.

100  {/*{{{*/
101 
102  /*Output*/
103  Matlitho* matlitho;
104 
105  /*Initialize output*/
106  matlitho=new Matlitho(*this);
107 
108  /*copy fields: */
109  matlitho->mid=this->mid;
110  matlitho->numlayers=this->numlayers;
111  if(matlitho->numlayers){
112  matlitho->radius=xNew<IssmDouble>(this->numlayers+1); xMemCpy<IssmDouble>(matlitho->radius, this->radius,this->numlayers+1);
113  matlitho->viscosity=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->viscosity, this->viscosity,this->numlayers);
114  matlitho->lame_lambda=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->lame_lambda, this->lame_lambda,this->numlayers);
115  matlitho->lame_mu=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->lame_mu, this->lame_mu,this->numlayers);
116  matlitho->burgers_viscosity=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->burgers_viscosity, this->burgers_viscosity,this->numlayers);
117  matlitho->burgers_mu=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->burgers_mu, this->burgers_mu,this->numlayers);
118  matlitho->density=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->density, this->density,this->numlayers);
119  matlitho->isburgers=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->isburgers, this->isburgers,this->numlayers);
120  matlitho->issolid=xNew<IssmDouble>(this->numlayers); xMemCpy<IssmDouble>(matlitho->issolid, this->issolid,this->numlayers);
121  /*matlitho->isburgers=xNew<bool>(this->numlayers); for(int i=0;i<this->numlayers;i++)matlitho->isburgers[i]=this->isburgers[i];
122  matlitho->issolid=xNew<bool>(this->numlayers); for(int i=0;i<this->numlayers;i++)matlitho->issolid[i]=this->issolid[i];*/
123  }
124 
125  return matlitho;
126 }

◆ DeepEcho()

void Matlitho::DeepEcho ( void  )
virtual

Implements Object.

Definition at line 128 of file Matlitho.cpp.

128  {/*{{{*/
129 
130  this->Echo();
131 }

◆ Echo()

void Matlitho::Echo ( void  )
virtual

Implements Object.

Definition at line 133 of file Matlitho.cpp.

133  {/*{{{*/
134 
135  _printf_("Matlitho:\n");
136  _printf_(" mid: " << mid << "\n");
137  _printf_(" numlayers: " << numlayers << "\n");
138  _printf_("layer radius viscosity lame_lambda lame_mu burgers_viscosity burgers_mu density isburgers issolid\n");
139  for (int i=0;i<numlayers;i++){
140  _printf_(i << " " << radius[i] << " " << viscosity[i] << " " << lame_lambda[i] << " " << lame_mu[i] << " " << burgers_viscosity[i] << " " << burgers_mu[i] << " " << density[i] << " " << isburgers[i] << " " << issolid[i]);
141  }
142  return;
143 }

◆ Id()

int Matlitho::Id ( void  )
virtual

Implements Object.

Definition at line 145 of file Matlitho.cpp.

145 { return mid; }/*{{{*/

◆ Marshall()

void Matlitho::Marshall ( char **  pmarshalled_data,
int *  pmarshalled_data_size,
int  marshall_direction 
)
virtual

◆ ObjectEnum()

int Matlitho::ObjectEnum ( void  )
virtual

Implements Object.

Definition at line 177 of file Matlitho.cpp.

177  {/*{{{*/
178 
179  return MatlithoEnum;
180 
181 }

◆ copy2()

Material* Matlitho::copy2 ( Element element)
inlinevirtual

Implements Material.

Definition at line 43 of file Matlitho.h.

43 {_error_("not implemented");};

◆ Configure()

void Matlitho::Configure ( Elements elements)
virtual

Implements Material.

Definition at line 185 of file Matlitho.cpp.

185  {/*{{{*/
186  /*don't do anything, we don't have a hook to an element! As there is only
187  * one Matlitho object!*/
188 }

◆ GetViscosity()

void Matlitho::GetViscosity ( IssmDouble pviscosity,
IssmDouble  eps_eff,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 45 of file Matlitho.h.

45 {_error_("not supported");};

◆ GetViscosityBar()

void Matlitho::GetViscosityBar ( IssmDouble pviscosity,
IssmDouble  eps_eff,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 46 of file Matlitho.h.

46 {_error_("not supported");};

◆ GetViscosityComplement()

void Matlitho::GetViscosityComplement ( IssmDouble pviscosity_complement,
IssmDouble pepsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 47 of file Matlitho.h.

47 {_error_("not supported");};

◆ GetViscosityDComplement()

void Matlitho::GetViscosityDComplement ( IssmDouble pviscosity_complement,
IssmDouble pepsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 48 of file Matlitho.h.

48 {_error_("not supported");};

◆ GetViscosityDerivativeEpsSquare()

void Matlitho::GetViscosityDerivativeEpsSquare ( IssmDouble pmu_prime,
IssmDouble pepsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 49 of file Matlitho.h.

49 {_error_("not supported");};

◆ GetViscosity_B()

void Matlitho::GetViscosity_B ( IssmDouble pviscosity,
IssmDouble  eps_eff,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 50 of file Matlitho.h.

50 {_error_("not supported");};

◆ GetViscosity_D()

void Matlitho::GetViscosity_D ( IssmDouble pviscosity,
IssmDouble  eps_eff,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 51 of file Matlitho.h.

51 {_error_("not supported");};

◆ GetViscosity2dDerivativeEpsSquare()

void Matlitho::GetViscosity2dDerivativeEpsSquare ( IssmDouble pmu_prime,
IssmDouble pepsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 52 of file Matlitho.h.

52 {_error_("not supported");};

◆ GetA()

IssmDouble Matlitho::GetA ( Gauss gauss)
inlinevirtual

Implements Material.

Definition at line 53 of file Matlitho.h.

53 {_error_("not supported");};

◆ GetAbar()

IssmDouble Matlitho::GetAbar ( Gauss gauss)
inlinevirtual

Implements Material.

Definition at line 54 of file Matlitho.h.

54 {_error_("not supported");};

◆ GetB()

IssmDouble Matlitho::GetB ( Gauss gauss)
inlinevirtual

Implements Material.

Definition at line 55 of file Matlitho.h.

55 {_error_("not supported");};

◆ GetBbar()

IssmDouble Matlitho::GetBbar ( Gauss gauss)
inlinevirtual

Implements Material.

Definition at line 56 of file Matlitho.h.

56 {_error_("not supported");};

◆ GetD()

IssmDouble Matlitho::GetD ( Gauss gauss)
inlinevirtual

Implements Material.

Definition at line 57 of file Matlitho.h.

57 {_error_("not supported");};

◆ GetDbar()

IssmDouble Matlitho::GetDbar ( Gauss gauss)
inlinevirtual

Implements Material.

Definition at line 58 of file Matlitho.h.

58 {_error_("not supported");};

◆ GetN()

IssmDouble Matlitho::GetN ( )
inlinevirtual

Implements Material.

Definition at line 59 of file Matlitho.h.

59 {_error_("not supported");};

◆ IsDamage()

bool Matlitho::IsDamage ( )
inlinevirtual

Implements Material.

Definition at line 60 of file Matlitho.h.

60 {_error_("not supported");};

◆ IsEnhanced()

bool Matlitho::IsEnhanced ( )
inlinevirtual

Implements Material.

Definition at line 61 of file Matlitho.h.

61 {_error_("not supported");};

◆ ResetHooks()

void Matlitho::ResetHooks ( )
virtual

Implements Material.

Definition at line 190 of file Matlitho.cpp.

190  {/*{{{*/
191  /*don't do anything, we don't have a hook to an element! As there is only
192  * one Matlitho object!*/
193  return;
194 }

◆ ViscosityFSDerivativeEpsSquare()

void Matlitho::ViscosityFSDerivativeEpsSquare ( IssmDouble pmu_prime,
IssmDouble epsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 64 of file Matlitho.h.

64 {_error_("not supported");};

◆ ViscosityHODerivativeEpsSquare()

void Matlitho::ViscosityHODerivativeEpsSquare ( IssmDouble pmu_prime,
IssmDouble epsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 65 of file Matlitho.h.

65 {_error_("not supported");};

◆ ViscositySSADerivativeEpsSquare()

void Matlitho::ViscositySSADerivativeEpsSquare ( IssmDouble pmu_prime,
IssmDouble epsilon,
Gauss gauss 
)
inlinevirtual

Implements Material.

Definition at line 66 of file Matlitho.h.

66 {_error_("not supported");};

◆ ViscosityFS()

void Matlitho::ViscosityFS ( IssmDouble pviscosity,
int  dim,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input,
Input2 vz_input 
)
inlinevirtual

Implements Material.

Definition at line 68 of file Matlitho.h.

68 {_error_("not supported");};

◆ ViscosityHO()

void Matlitho::ViscosityHO ( IssmDouble pviscosity,
int  dim,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input 
)
inlinevirtual

Implements Material.

Definition at line 69 of file Matlitho.h.

69 {_error_("not supported");};

◆ ViscosityL1L2()

void Matlitho::ViscosityL1L2 ( IssmDouble pviscosity,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input,
Input2 surf 
)
inlinevirtual

Implements Material.

Definition at line 70 of file Matlitho.h.

70 {_error_("not supported");};

◆ ViscositySSA()

void Matlitho::ViscositySSA ( IssmDouble pviscosity,
int  dim,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input 
)
inlinevirtual

Implements Material.

Definition at line 71 of file Matlitho.h.

71 {_error_("not supported");};

◆ ViscosityBFS()

void Matlitho::ViscosityBFS ( IssmDouble pmudB,
int  dim,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input,
Input2 vz_input,
IssmDouble  epseff 
)
inlinevirtual

Implements Material.

Definition at line 72 of file Matlitho.h.

72 {_error_("not supported");};

◆ ViscosityBHO()

void Matlitho::ViscosityBHO ( IssmDouble pmudB,
int  dim,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input,
IssmDouble  epseff 
)
inlinevirtual

Implements Material.

Definition at line 73 of file Matlitho.h.

73 {_error_("not supported");};

◆ ViscosityBSSA()

void Matlitho::ViscosityBSSA ( IssmDouble pmudB,
int  dim,
IssmDouble xyz_list,
Gauss gauss,
Input2 vx_input,
Input2 vy_input,
IssmDouble  epseff 
)
inlinevirtual

Implements Material.

Definition at line 74 of file Matlitho.h.

74 {_error_("not supported");};

Field Documentation

◆ mid

int Matlitho::mid

Definition at line 17 of file Matlitho.h.

◆ numlayers

int Matlitho::numlayers

Definition at line 18 of file Matlitho.h.

◆ radius

IssmDouble* Matlitho::radius

Definition at line 19 of file Matlitho.h.

◆ viscosity

IssmDouble* Matlitho::viscosity

Definition at line 20 of file Matlitho.h.

◆ lame_lambda

IssmDouble* Matlitho::lame_lambda

Definition at line 21 of file Matlitho.h.

◆ lame_mu

IssmDouble* Matlitho::lame_mu

Definition at line 22 of file Matlitho.h.

◆ burgers_viscosity

IssmDouble* Matlitho::burgers_viscosity

Definition at line 23 of file Matlitho.h.

◆ burgers_mu

IssmDouble* Matlitho::burgers_mu

Definition at line 24 of file Matlitho.h.

◆ density

IssmDouble* Matlitho::density

Definition at line 25 of file Matlitho.h.

◆ isburgers

IssmDouble* Matlitho::isburgers

Definition at line 26 of file Matlitho.h.

◆ issolid

IssmDouble* Matlitho::issolid

Definition at line 27 of file Matlitho.h.


The documentation for this class was generated from the following files:
Matlitho::viscosity
IssmDouble * viscosity
Definition: Matlitho.h:20
Matlitho::Matlitho
Matlitho()
Definition: Matlitho.cpp:15
Matlitho::Echo
void Echo()
Definition: Matlitho.cpp:133
IssmDouble
double IssmDouble
Definition: types.h:37
_printf_
#define _printf_(StreamArgs)
Definition: Print.h:22
MARSHALLING_ENUM
#define MARSHALLING_ENUM(EN)
Definition: Marshalling.h:14
Matlitho::issolid
IssmDouble * issolid
Definition: Matlitho.h:27
Matlitho::numlayers
int numlayers
Definition: Matlitho.h:18
MARSHALLING_DYNAMIC
#define MARSHALLING_DYNAMIC(FIELD, TYPE, SIZE)
Definition: Marshalling.h:61
IoModel::FindConstant
void FindConstant(bool *pvalue, const char *constant_name)
Definition: IoModel.cpp:2362
MARSHALLING
#define MARSHALLING(FIELD)
Definition: Marshalling.h:29
Matlitho::lame_lambda
IssmDouble * lame_lambda
Definition: Matlitho.h:21
Matlitho::density
IssmDouble * density
Definition: Matlitho.h:25
Matlitho::isburgers
IssmDouble * isburgers
Definition: Matlitho.h:26
MatlithoEnum
@ MatlithoEnum
Definition: EnumDefinitions.h:1170
IoModel::Data
IssmDouble * Data(const char *data_name)
Definition: IoModel.cpp:437
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Matlitho
Definition: Matlitho.h:14
Matlitho::burgers_viscosity
IssmDouble * burgers_viscosity
Definition: Matlitho.h:23
Matlitho::radius
IssmDouble * radius
Definition: Matlitho.h:19
Matlitho::lame_mu
IssmDouble * lame_mu
Definition: Matlitho.h:22
Matlitho::burgers_mu
IssmDouble * burgers_mu
Definition: Matlitho.h:24
Matlitho::mid
int mid
Definition: Matlitho.h:17