1 | /*!\file: PentaRef.h
|
---|
2 | * \brief abstract class for handling Penta oriented routines, like nodal functions,
|
---|
3 | * strain rate generation, etc ...
|
---|
4 | */
|
---|
5 |
|
---|
6 | #ifndef _PENTAREF_H_
|
---|
7 | #define _PENTAREF_H_
|
---|
8 |
|
---|
9 | class Gauss;
|
---|
10 | class PentaRef{
|
---|
11 |
|
---|
12 | public:
|
---|
13 | PentaRef();
|
---|
14 | ~PentaRef();
|
---|
15 |
|
---|
16 | /*Numerics*/
|
---|
17 | void BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement);
|
---|
18 | void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss,int finiteelement);
|
---|
19 | void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, Gauss* gauss,int finiteelement);
|
---|
20 | void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss);
|
---|
21 | void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
|
---|
22 | void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss* gauss);
|
---|
23 | void GetLprimeFSSSA(IssmDouble* LprimeFSSSA, IssmDouble* xyz_list, Gauss* gauss);
|
---|
24 | void GetNodalFunctions(IssmDouble* basis, Gauss* gauss,int finiteelement);
|
---|
25 | void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss,int finiteelement);
|
---|
26 | void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss,int finiteelement);
|
---|
27 | void GetQuadJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
|
---|
28 | void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
|
---|
29 | void GetTriaJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
|
---|
30 | void VerticalSegmentIndicesBase(int** pindices,int* pnumseg,int finiteelement);
|
---|
31 | void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*do nothing */};
|
---|
32 | int NumberofNodes(int finiteelement);
|
---|
33 | int PressureInterpolation(int fe_stokes);
|
---|
34 | void SurfaceNodeIndices(int* pnumindices,int** pindices,int finiteelement);
|
---|
35 | int TensorInterpolation(int fe_stokes);
|
---|
36 | int VelocityInterpolation(int fe_stokes);
|
---|
37 | };
|
---|
38 | #endif
|
---|