| 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 | 
|---|