6 #ifndef PZTOPOLOGYTPZPRISM_H 7 #define PZTOPOLOGYTPZPRISM_H 36 friend void pztopology::GetPermutation<TPZPrism>(
const int permute,
TPZVec<int> &permutation);
40 virtual int ClassId()
const override;
122 for(
int i = 0; i < pt.
size(); i++) xi[i]= pt[i].
val();
235 template <
class TVar>
253 template <
class TVar>
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 bilinearounao[81]
static bool IsInParametricDomain(const TPZVec< REAL > &pt, REAL tol=pztopology::gTolerance)
Verifies if the parametric point pt is in the element parametric domain.
static void GetSideHDivPermutation(int transformationid, TPZVec< int > &permgather)
Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of o...
static void ParametricDomainNodeCoord(int node, TPZVec< REAL > &nodeCoord)
static MElementType Type()
Returns the type of the element as specified in file pzeltype.h.
virtual int ClassId() const override
Define the class id associated with the class.
static void ComputeHDivDirections(TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions)
Compute the directions of the HDiv vectors.
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
static void RandomPoint(TPZVec< REAL > &pt)
Generates a random point in the master domain.
TPZIntPrism3D IntruleType
Typedef to numerical integration rule.
static TPZIntPoints * CreateSideIntegrationRule(int side, int order)
Create an integration rule over side.
static int GetTransformId(TPZVec< int64_t > &id)
Method which identifies the transformation based on the IDs of the corner nodes.
static void MapToSide(int side, TPZVec< T > &InternalPar, TPZVec< T > &SidePar, TPZFMatrix< T > &JacToSide)
static void GetSideHDivDirections(TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao)
static void HigherDimensionSides(int side, TPZStack< int > &high)
Returns all sides whose closure contains side.
Defines enum MElementType and contains the implementation of MElementType_NNodes(...) functions.
static int NContainedSides(int side)
Returns the number of nodes (not connectivities) associated with a side.
REAL val(STATE &number)
Returns value of the variable.
static int SideDimension(int side)
Returns the dimension of the side.
static bool CheckProjectionForSingularity(const int &side, const TPZVec< T > &xiInterior)
static int NumSides()
Returns the number of connects of the element (21)
Abstract class defining integration rules. Numerical Integration.
static int ShapeFaceId[5][4]
Ids of the shape face.
int64_t size() const
Returns the number of elements of the vector.
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 void ComputeHCurlDirections(TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions, const TPZVec< int > &transformationIds)
static int SideNodeLocId(int side, int node)
Returns the local node number of the node "node" along side "side".
Groups all classes defining the structure of the master element.
static int SideNodes[9][2]
Nodes over lines sides (1d)
static TPZTransform TransformSideToElement(int side)
Returns the transformation which transform a point from the side to the interior of the element...
Implements the graphical element for a prism using a degenerated cube element. Post processing...
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
Handles the numerical integration for three-dimensional problems using prism elements. Numerical Integration This cubature rule uses a cubature rule for one dimension (zeta) and a cubature rule for triangle (base).
Contains TPZMatrixclass which implements full matrix (using column major representation).
static int ContainedSideLocId(int side, int c)
Returns the local connect number of the connect "c" along side "side".
void Read(TPZStream &buf, void *context) override
read objects from the stream
static int NBilinearSides()
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.
Defines the topology of a Prism. Topology Sides 0 to 7 are vertices, sides 7 to 14 are lines...
static void LowerDimensionSides(int side, TPZStack< int > &smallsides)
Get all sides with lower dimension on side.
static int fPermutations[12][21]
Valid permutations between nodes.
virtual ~TPZPrism()
Default destructor.
static void ComputeDirections(int side, TPZFMatrix< REAL > &gradx, TPZFMatrix< REAL > &directions, TPZVec< int > &sidevectors)
TPZGraphElPrismMapped GraphElType
Typedef to graphical element type.
static TPZTransform SideToSideTransform(int sidefrom, int sideto)
Returns the transformation which takes a point from the side sidefrom to the side sideto...
MElementType
Define the element types.
Implements computational mesh. Computational Mesh.
static int NSideNodes(int side)
Returns the number of nodes (not connectivities) associated with a side.
static TPZTransform TransformElementToSide(int side)
Returns the transformation which projects a point from the interior of the element to the side...
static void BlendFactorForSide(const int &side, const TPZVec< T > &xi, T &blendFactor, TPZVec< T > &corrFactorDxi)
Defines the interface for saving and reading data. Persistency.
static int FaceNodes[5][4]
Nodes over quadrilateral sides (2d - faces).
This class defines the interface to save and restore objects from TPZStream objects. Persistency.
Defines the interface of a computational element. Computational Element.
Contains declaration of the TPZNumeric class which implements several methods to calculation.
static constexpr REAL RefElVolume()
Volume of the master element.
TPZPrism()
Default constructor.