9#include "feddlib/core/FEDDCore.hpp"
10#include "feddlib/core/LinearAlgebra/Matrix.hpp"
11#include "feddlib/core/General/SmallMatrix.hpp"
38 vec2D_dbl_ptr_Type pointsRep,
39 vec_int_Type nodeList,
50 vec2D_dbl_ptr_Type pointsRep,
52 std::string FEType=
"P");
61 vec2D_dbl_ptr_Type pointsRep,
64 std::string FEType=
"P");
74 vec2D_dbl_ptr_Type pointsRep,
77 std::string FEType=
"P");
85 static void gradPhi(
int Dimension,
88 vec_dbl_Type &QuadPts,
89 vec_dbl_ptr_Type &value);
108 vec2D_dbl_ptr_Type &QuadPts,
109 vec_dbl_ptr_Type &QuadW,
129 vec_LO_Type surfaceIDs,
130 vec2D_dbl_ptr_Type points);
139 static int getDPhi( vec3D_dbl_ptr_Type &DPhi,
140 vec_dbl_ptr_Type &weightsDPhi,
158 static void applyBTinv( vec3D_dbl_ptr_Type& dPhiIn,
159 vec3D_dbl_Type& dPhiOut,
190 static int getPhi(vec2D_dbl_ptr_Type &Phi,
191 vec_dbl_ptr_Type &weightsPhi,
195 std::string FETypeQuadPoints=
"");
197 static int getFuncAtQuadNodes(vec_dbl_ptr_Type &funcVals, RhsFunc_Type &rhsFunc,
int dim, std::string FEType,
198 int Degree, std::string FETypeQuadPoints =
"");
206 static void phi(
int dim,
int intFE,
int i, vec_dbl_Type &p,
double *value);
208 static int getPhiGlobal(vec2D_dbl_ptr_Type &Phi,
209 vec_dbl_ptr_Type &weightsPhi,
213 { TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
"getPhiGlobal not implemented yet.");};
243 static UN requiredQuadratureDegreeForBasisfunction(UN dim, std::string FEType);
270 static UN requiredQuadratureDegreeForGradientOfBasisfunction(UN dim, std::string FEType);
static void buildTransformationSurface(const vec_int_Type &element, vec2D_dbl_ptr_Type pointsRep, SmallMatrix< SC > &B, vec_dbl_Type &b, std::string FEType="P")
Transformation of a surface to the reference element.
Definition Helper.cpp:79
static vec2D_dbl_Type getQuadratureValuesOnSurface(int dim, std::string FEType, vec_dbl_Type &QuadW, vec_LO_Type surfaceIDs, vec2D_dbl_ptr_Type points)
Returns quadrature formula on surface element.
Definition Helper.cpp:747
static UN determineDegree(UN dim, std::string FEType, VarType orderOfDerivative)
Determine polynomial degree of a finite element basis function or its gradient that is required to se...
Definition Helper.cpp:68
static void gradPhi(int Dimension, int intFE, int i, vec_dbl_Type &QuadPts, vec_dbl_ptr_Type &value)
Returning gradient of phi evaluated at the quadrature points.
Definition Helper.cpp:301
static void applyBTinv(vec3D_dbl_ptr_Type &dPhiIn, vec3D_dbl_Type &dPhiOut, const SmallMatrix< SC > &Binv)
Applying the transformation matriX B to the gradient of phi, as is done in when transforming the grad...
Definition Helper.cpp:200
VarType
Order of derivative of a function.
Definition Helper.hpp:26
@ Deriv0
order 0, f(x)
Definition Helper.hpp:27
@ Deriv1
order 1, gradient(f(x))
Definition Helper.hpp:28
static void buildTransformation(const vec_int_Type &element, vec2D_dbl_ptr_Type pointsRep, SmallMatrix< SC > &B, std::string FEType="P")
Build transformation of element to reference element depending on FEType.
Definition Helper.cpp:138
static int getPhi(vec2D_dbl_ptr_Type &Phi, vec_dbl_ptr_Type &weightsPhi, int dim, std::string FEType, int Degree, std::string FETypeQuadPoints="")
Get basisfunction phi per quadrature point.
Definition Helper.cpp:604
static void phi(int dim, int intFE, int i, vec_dbl_Type &p, double *value)
Get phi i.
Definition Helper.cpp:455
static void getDPhiAtCM(vec3D_dbl_ptr_Type &DPhi, int dim, std::string FEType)
Definition Helper.cpp:1470
static void computeSurfaceNormal(int dim, vec2D_dbl_ptr_Type pointsRep, vec_int_Type nodeList, vec_dbl_Type &v_E, double &norm_v_E)
Compute surface normal of corresponding surface.
Definition Helper.cpp:103
static int getDPhi(vec3D_dbl_ptr_Type &DPhi, vec_dbl_ptr_Type &weightsDPhi, int Dimension, std::string FEType, int Degree)
Full matrix representation of gradient of a basis function for each quadrature point.
Definition Helper.cpp:215
static void getQuadratureValues(int Dimension, int Degree, vec2D_dbl_ptr_Type &QuadPts, vec_dbl_ptr_Type &QuadW, std::string FEType)
Get quadrature formula.
Definition Helper.cpp:821
This class represents a templated small Matrix of type T. Primarily created for 2x2 and 3x3 matrices....
Definition SmallMatrix.hpp:22
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5