source: issm/trunk-jpl/src/c/classes/objects/Materials/Matice.h@ 13119

Last change on this file since 13119 was 13119, checked in by cborstad, 13 years ago

NEW: damage inversion capability merged from branches/trunk-jpl-damage into trunk-jpl. This affects EVERYONE. You will need to initialize a new rheology parameter md.materials.rheology_Z in all your model runs. Check the updated .par files in test/Par for syntax.

File size: 2.7 KB
Line 
1/*!\file Matice.h
2 * \brief: header file for matice object
3 */
4
5#ifndef MATICE_H_
6#define MATICE_H_
7
8/*Headers:*/
9/*{{{*/
10#include "./Material.h"
11class IoModel;
12/*}}}*/
13
14class Matice: public Material{
15
16 private:
17 /*Id*/
18 int mid;
19
20 /*hooks: */
21 Hook* helement;
22
23 public:
24 /*WARNING: input should not be public but it is an easy way to update B from T (using UpdateFromSolution) from Pentas*/
25 Inputs* inputs;
26
27 /*Matice constructors, destructors: {{{*/
28 Matice();
29 Matice(int mid,int i, IoModel* iomodel);
30 ~Matice();
31 /*}}}*/
32 /*Object virtual functions definitions:{{{ */
33 void Echo();
34 void DeepEcho();
35 int Id();
36 int MyRank();
37 int ObjectEnum();
38 Object* copy();
39 /*}}}*/
40 /*Update virtual functions definitions: {{{*/
41 void InputUpdateFromVector(IssmDouble* vector, int name, int type);
42 void InputUpdateFromVector(int* vector, int name, int type);
43 void InputUpdateFromVector(bool* vector, int name, int type);
44 void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrow, int ncols, int name, int type);
45 void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
46 void InputUpdateFromVectorDakota(int* vector, int name, int type);
47 void InputUpdateFromVectorDakota(bool* vector, int name, int type);
48 void InputUpdateFromConstant(IssmDouble constant, int name);
49 void InputUpdateFromConstant(int constant, int name);
50 void InputUpdateFromConstant(bool constant, int name);
51 void InputUpdateFromSolution(IssmDouble* solution);
52 void InputUpdateFromIoModel(int index, IoModel* iomodel);
53 /*}}}*/
54 /*Material virtual functions resolution: {{{*/
55 void InputDuplicate(int original_enum,int new_enum);
56 void Configure(Elements* elements);
57 void GetVectorFromInputs(Vector* vector,int input_enum);
58 /*}}}*/
59 /*Matice Numerics: {{{*/
60 void SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin);
61 void GetViscosity2d(IssmDouble* pviscosity, IssmDouble* pepsilon);
62 void GetViscosity3d(IssmDouble* pviscosity3d, IssmDouble* pepsilon);
63 void GetViscosity3dStokes(IssmDouble* pviscosity3d, IssmDouble* epsilon);
64 void GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon);
65 void GetViscosityZComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon);
66 void GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
67 void GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
68 IssmDouble GetA();
69 IssmDouble GetB();
70 IssmDouble GetBbar();
71 IssmDouble GetN();
72 IssmDouble GetZ();
73 IssmDouble GetZbar();
74 bool IsInput(int name);
75 /*}}}*/
76};
77
78#endif /* _MATICE_H_ */
Note: See TracBrowser for help on using the repository browser.