[3828] | 1 | /*!\file: TriaRef.h
|
---|
| 2 | * \brief abstract class for handling Tria oriented routines, like nodal functions,
|
---|
| 3 | * strain rate generation, etc ...
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 |
|
---|
| 7 | #ifndef _TRIAREF_H_
|
---|
| 8 | #define _TRIAREF_H_
|
---|
| 9 |
|
---|
[5625] | 10 | class GaussTria;
|
---|
| 11 |
|
---|
[3828] | 12 | class TriaRef{
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 | public:
|
---|
[4739] | 16 | int* element_type_list; //P1CG, P1DG, MINI, P2...
|
---|
| 17 | int element_type;
|
---|
[3828] | 18 |
|
---|
| 19 | TriaRef();
|
---|
[4739] | 20 | TriaRef(const int nummodels);
|
---|
[3828] | 21 | ~TriaRef();
|
---|
| 22 |
|
---|
[4769] | 23 | /*Management*/
|
---|
[4739] | 24 | void SetElementType(int type,int type_counter);
|
---|
| 25 |
|
---|
[4769] | 26 | /*Numerics*/
|
---|
[12471] | 27 | void GetBMacAyeal(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 28 | void GetBMacAyealStokes(IssmDouble* B , IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 29 | void GetBprimeMacAyeal(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 30 | void GetBprimeMacAyealStokes(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 31 | void GetBprimePrognostic(IssmDouble* Bprime_prog, IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 32 | void GetBPrognostic(IssmDouble* B_prog, IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 33 | void GetL(IssmDouble* L, IssmDouble* xyz_list,GaussTria* gauss,int numdof);
|
---|
| 34 | void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussTria* gauss);
|
---|
| 35 | void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
|
---|
| 36 | void GetJacobianDeterminant2d(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
|
---|
| 37 | void GetJacobianDeterminant3d(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
|
---|
| 38 | void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,GaussTria* gauss);
|
---|
| 39 | void GetNodalFunctions(IssmDouble* l1l2l3,GaussTria* gauss);
|
---|
| 40 | void GetSegmentNodalFunctions(IssmDouble* l1l2l3,GaussTria* gauss, int index1,int index2);
|
---|
| 41 | void GetSegmentBFlux(IssmDouble* B,GaussTria* gauss, int index1,int index2);
|
---|
| 42 | void GetSegmentBprimeFlux(IssmDouble* Bprime,GaussTria* gauss, int index1,int index2);
|
---|
| 43 | void GetNodalFunctionsDerivatives(IssmDouble* l1l2l3,IssmDouble* xyz_list, GaussTria* gauss);
|
---|
| 44 | void GetNodalFunctionsDerivativesReference(IssmDouble* dl1dl3,GaussTria* gauss);
|
---|
| 45 | void GetInputValue(IssmDouble* pp, IssmDouble* plist, GaussTria* gauss);
|
---|
| 46 | void GetInputDerivativeValue(IssmDouble* pp, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss);
|
---|
[4769] | 47 |
|
---|
[3828] | 48 | };
|
---|
| 49 | #endif
|
---|