6 #ifndef PZTOPOLOGYTPZTETRAHEDRON_H 7 #define PZTOPOLOGYTPZTETRAHEDRON_H 36 friend void pztopology::GetPermutation<TPZTetrahedron>(
const int permute,
TPZVec<int> &permutation);
119 for(
int i = 0; i < pt.
size(); i++) xi[i]= pt[i].
val();
125 typename std::enable_if<std::is_same<T,Fad<REAL>>::value>::type* =
nullptr>
128 for(
int i = 0; i < qsiReal.size(); i++) qsiReal[i] = pt[i].
val();
242 template <
class TVar>
260 template <
class TVar>
static int bilinearounao[81]
static constexpr REAL RefElVolume()
Volume of the master element (measure)
static void CenterPoint(int side, TPZVec< REAL > ¢er)
Returns the barycentric coordinates in the master element space of the original element.
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
static int FaceNodes[4][3]
Nodes over quadrilateral sides (2d - faces).
static TPZIntPoints * CreateSideIntegrationRule(int side, int order)
Create an integration rule over side.
static bool CheckProjectionForSingularity(const int &side, const TPZVec< T > &xiInterior)
static int fPermutations[24][15]
Valid permutations between nodes.
static TPZTransform TransformElementToSide(int side)
Returns the transformation which projects a point from the interior of the element to the side...
static int SideDimension(int side)
Returns the dimension of the side.
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
static int SideNodes[6][2]
Nodes over lines sides (1d)
static void ComputeHCurlDirections(TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions, const TPZVec< int > &transformationIds)
TPZGraphElT3d GraphElType
Typedef to graphical element type.
Defines enum MElementType and contains the implementation of MElementType_NNodes(...) functions.
REAL val(STATE &number)
Returns value of the variable.
static int ShapeFaceId[4][3]
Ids of the shape face.
static int NContainedSides(int side)
Returns the number of nodes (not connectivities) associated with a side.
static void TShape(const TPZVec< T > &loc, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi)
Compute the shape being used to construct the x mapping from local parametric coordinates.
static int NumSides()
Number of connects of the element (27)
Abstract class defining integration rules. Numerical Integration.
static void ComputeHDivDirections(TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions)
Compute the directions of the HDiv vectors.
static MElementType Type()
Returns the type of the element as specified in file pzeltype.h.
static void BlendFactorForSide(const int &side, const TPZVec< T > &xi, T &blendFactor, TPZVec< T > &corrFactorDxi)
int64_t size() const
Returns the number of elements of the vector.
static TPZTransform SideToSideTransform(int sidefrom, int sideto)
Returns the transformation which takes a point from the side sidefrom to the side sideto...
Groups all classes defining the structure of the master element.
static int NSideNodes(int side)
Returns the number of nodes (not connectivities) associated with a side.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
Implements the graphical representation of a tetrahedra element. Post processing. ...
static void ComputeDirections(int side, TPZFMatrix< REAL > &gradx, TPZFMatrix< REAL > &directions, TPZVec< int > &sidevectors)
Contains TPZMatrixclass which implements full matrix (using column major representation).
virtual ~TPZTetrahedron()
Default destructor.
static TPZTransform TransformSideToElement(int side)
Returns the transformation which transform a point from the side to the interior of the element...
int ClassId() const override
Define the class id associated with the class.
static void MapToSide(int side, TPZVec< T > &InternalPar, TPZVec< T > &SidePar, TPZFMatrix< T > &JacToSide)
TPZIntTetra3D IntruleType
Typedef to numerical integration rule.
static int NBilinearSides()
static void RandomPoint(TPZVec< REAL > &pt)
Generates a random point in the master domain.
Defines the topology of the tetrahedron element. Topology Sides 0 to 3 are vertices, sides 4 to 9 are lines, sides 10 to 13 are triangles and side 14 is the tetrahedra.
MElementType
Define the element types.
Implements computational mesh. Computational Mesh.
static void GetSideHDivDirections(TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao)
static void Shape(TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Compute the shape being used to construct the x mapping from local parametric coordinates.
static int ContainedSideLocId(int side, int c)
Returns the local connect number of the connect "c" along side "side".
static bool IsInParametricDomain(const TPZVec< REAL > &pt, REAL tol=pztopology::gTolerance)
Verifies if the parametric point pt is in the element parametric domain.
static int GetTransformId(TPZVec< int64_t > &id)
Method which identifies the transformation based on the IDs of the corner nodes.
Defines the interface for saving and reading data. Persistency.
static int SideNodeLocId(int side, int node)
Returns the local node number of the node "node" along side "side".
Handles the numerical integration for three-dimensional problems using tetraedra elements. Numerical Integration.
This class defines the interface to save and restore objects from TPZStream objects. Persistency.
Defines the interface of a computational element. Computational Element.
static void LowerDimensionSides(int side, TPZStack< int > &smallsides)
Get all sides with lower dimension on side.
TPZTetrahedron()
Default constructor.
static void GetSideHDivPermutation(int transformationid, TPZVec< int > &permgather)
Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of o...
void Read(TPZStream &buf, void *context) override
read objects from the stream
static void ParametricDomainNodeCoord(int node, TPZVec< REAL > &nodeCoord)
static void HigherDimensionSides(int side, TPZStack< int > &high)
Returns all sides whose closure contains side.