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

Last change on this file since 10937 was 10628, checked in by Mathieu Morlighem, 13 years ago

Better artificial diffusivity in thermal model

File size: 3.3 KB
Line 
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*/
25 void GetNodalFunctionsP1(double* l1l6, GaussPenta* gauss);
26 void GetNodalFunctionsMINI(double* l1l7, GaussPenta* gauss);
27 void GetNodalFunctionsP1Derivatives(double* dh1dh6,double* xyz_list, GaussPenta* gauss);
28 void GetNodalFunctionsMINIDerivatives(double* dh1dh7,double* xyz_list, GaussPenta* gauss);
29 void GetNodalFunctionsP1DerivativesReference(double* dl1dl6,GaussPenta* gauss);
30 void GetNodalFunctionsMINIDerivativesReference(double* dl1dl7,GaussPenta* gauss);
31 void GetQuadNodalFunctions(double* l1l4,GaussPenta* gauss,int index1,int index2,int index3,int index4);
32 void GetQuadJacobianDeterminant(double* Jdet, double xyz_list[4][3],GaussPenta* gauss);
33 void GetJacobian(double* J, double* xyz_list,GaussPenta* gauss);
34 void GetJacobianDeterminant(double* Jdet, double* xyz_list,GaussPenta* gauss);
35 void GetTriaJacobianDeterminant(double* Jdet, double* xyz_list,GaussPenta* gauss);
36 void GetSegmentJacobianDeterminant(double* Jdet, double* xyz_list,GaussPenta* gauss);
37 void GetJacobianInvert(double* Jinv, double* xyz_list,GaussPenta* gauss);
38 void GetBMacAyealPattyn(double* B, double* xyz_list, GaussPenta* gauss);
39 void GetBMacAyealStokes(double* B, double* xyz_list, GaussPenta* gauss);
40 void GetBPattyn(double* B, double* xyz_list, GaussPenta* gauss);
41 void GetBStokes(double* B, double* xyz_list, GaussPenta* gauss);
42 void GetBprimeMacAyealStokes(double* Bprime, double* xyz_list, GaussPenta* gauss);
43 void GetBprimePattyn(double* B, double* xyz_list, GaussPenta* gauss);
44 void GetBprimeStokes(double* B_prime, double* xyz_list, GaussPenta* gauss);
45 void GetBprimeVert(double* B, double* xyz_list, GaussPenta* gauss);
46 void GetBAdvec(double* B_advec, double* xyz_list, GaussPenta* gauss);
47 void GetBConduct(double* B_conduct, double* xyz_list, GaussPenta* gauss);
48 void GetBVert(double* B, double* xyz_list, GaussPenta* gauss);
49 void GetBprimeAdvec(double* Bprime_advec, double* xyz_list, GaussPenta* gauss);
50 void GetL(double* L, GaussPenta* gauss,int numdof);
51 void GetLStokes(double* LStokes, GaussPenta* gauss);
52 void GetLprimeStokes(double* LprimeStokes, double* xyz_list, GaussPenta* gauss);
53 void GetLMacAyealStokes(double* LMacAyealStokes, GaussPenta* gauss);
54 void GetLprimeMacAyealStokes(double* LprimeMacAyealStokes, double* xyz_list, GaussPenta* gauss);
55 void GetLStokesMacAyeal(double* LStokesMacAyeal, GaussPenta* gauss);
56 void GetLprimeStokesMacAyeal(double* LprimeStokesMacAyeal, double* xyz_list, GaussPenta* gauss);
57 void GetInputValue(double* pvalue,double* plist, GaussPenta* gauss);
58 void GetInputValue(double* pvalue,double* plist,GaussTria* gauss){_error_("only PentaGauss are supported");};
59 void GetInputDerivativeValue(double* pvalues, double* plist,double* xyz_list, GaussPenta* gauss);
60 void GetInputDerivativeValue(double* pvalues, double* plist,double* xyz_list, GaussTria* gauss){_error_("only PentaGauss are supported");};
61
62};
63#endif
Note: See TracBrowser for help on using the repository browser.