source: issm/trunk-jpl/src/c/objects/Elements/PentaRef.h@ 12471

Last change on this file since 12471 was 12471, checked in by utke, 13 years ago

type renames

File size: 3.5 KB
RevLine 
[4882]1/*!\file: PentaRef.h
2 * \brief abstract class for handling Penta oriented routines, like nodal functions,
3 * strain rate generation, etc ...
4 */
5
6
7#ifndef _PENTAREF_H_
8#define _PENTAREF_H_
9
10class PentaRef{
11
12
13 public:
14 int* element_type_list; //P1CG, P1DG, MINI, P2...
15 int element_type;
16
17 PentaRef();
18 PentaRef(const int nummodels);
19 ~PentaRef();
20
21 /*Management*/
22 void SetElementType(int type,int type_counter);
23
24 /*Numerics*/
[12471]25 void GetNodalFunctionsP1(IssmDouble* l1l6, GaussPenta* gauss);
26 void GetNodalFunctionsMINI(IssmDouble* l1l7, GaussPenta* gauss);
27 void GetNodalFunctionsP1Derivatives(IssmDouble* dh1dh6,IssmDouble* xyz_list, GaussPenta* gauss);
28 void GetNodalFunctionsMINIDerivatives(IssmDouble* dh1dh7,IssmDouble* xyz_list, GaussPenta* gauss);
29 void GetNodalFunctionsP1DerivativesReference(IssmDouble* dl1dl6,GaussPenta* gauss);
30 void GetNodalFunctionsMINIDerivativesReference(IssmDouble* dl1dl7,GaussPenta* gauss);
31 void GetQuadNodalFunctions(IssmDouble* l1l4,GaussPenta* gauss,int index1,int index2,int index3,int index4);
32 void GetQuadJacobianDeterminant(IssmDouble* Jdet, IssmDouble xyz_list[4][3],GaussPenta* gauss);
33 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussPenta* gauss);
34 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss);
35 void GetTriaJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss);
36 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss);
37 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,GaussPenta* gauss);
38 void GetBMacAyealPattyn(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
39 void GetBMacAyealStokes(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
40 void GetBPattyn(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
41 void GetBStokes(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
42 void GetBprimeMacAyealStokes(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss);
43 void GetBprimePattyn(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
44 void GetBprimeStokes(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss);
45 void GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
46 void GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, GaussPenta* gauss);
47 void GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, GaussPenta* gauss);
48 void GetBVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
49 void GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, GaussPenta* gauss);
50 void GetL(IssmDouble* L, GaussPenta* gauss,int numdof);
51 void GetLStokes(IssmDouble* LStokes, GaussPenta* gauss);
52 void GetLprimeStokes(IssmDouble* LprimeStokes, IssmDouble* xyz_list, GaussPenta* gauss);
53 void GetLMacAyealStokes(IssmDouble* LMacAyealStokes, GaussPenta* gauss);
54 void GetLprimeMacAyealStokes(IssmDouble* LprimeMacAyealStokes, IssmDouble* xyz_list, GaussPenta* gauss);
55 void GetLStokesMacAyeal(IssmDouble* LStokesMacAyeal, GaussPenta* gauss);
56 void GetLprimeStokesMacAyeal(IssmDouble* LprimeStokesMacAyeal, IssmDouble* xyz_list, GaussPenta* gauss);
57 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, GaussPenta* gauss);
58 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error_("only PentaGauss are supported");};
59 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussPenta* gauss);
60 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){_error_("only PentaGauss are supported");};
[5647]61
[4882]62};
63#endif
Note: See TracBrowser for help on using the repository browser.