6 #ifndef PZTOPOLOGYTPZQUADRILATERAL_H 7 #define PZTOPOLOGYTPZQUADRILATERAL_H 40 friend void pztopology::GetPermutation<TPZQuadrilateral>(
const int permute,
TPZVec<int> &permutation);
126 for(
int i = 0; i < pt.
size(); i++) xi[i]= pt[i].
val();
132 typename std::enable_if<std::is_same<T,Fad<REAL>>::value>::type* =
nullptr>
135 for(
int i = 0; i < qsiReal.size(); i++) qsiReal[i] = pt[i].
val();
254 template <
class TVar>
272 template <
class TVar>
282 template <
class TVar>
static int FaceNodes[1][4]
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 bilinearounao[81]
static void BlendFactorForSide(const int &side, const TPZVec< T > &xi, T &blendFactor, TPZVec< T > &corrFactorDxi)
Contains the TPZInt1d, TPZIntTriang, TPZIntQuad, TPZIntCube3D, TPZIntTetra3D, TPZIntPyram3D and TPZIn...
TPZGraphElQ2dd GraphElType
Typedef to graphical element type.
static void CenterPoint(int side, TPZVec< REAL > ¢er)
returns the barycentric coordinates in the master element space of the original element ...
static void GetGatherPermute(int transformid, TPZVec< int > &permute)
return the vector which permutes the connects according to the transformation id
static REAL fTangentVectors[16][2]
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
TPZIntQuad IntruleType
Typedef to numerical integration rule.
To export a graphical two-dimensional discontinuous element. Post processing.
static void GetSideHDivPermutation(int transformid, TPZVec< int > &permgather)
Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of o...
static TPZTransform TransformElementToSide(int side)
Returns the transformation which transform a point from the interior of the element to the side...
static void ComputeDirections(int is, TPZFMatrix< REAL > &gradx, TPZFMatrix< REAL > &directions, TPZVec< int > &sidevectors)
static int NSideNodes(int side)
return the number of vertices (not connectivities) associated with a side
Defines enum MElementType and contains the implementation of MElementType_NNodes(...) functions.
REAL val(STATE &number)
Returns value of the variable.
static int fPermutations[8][9]
Valid permutations between nodes.
static TPZTransform SideToSideTransform(int sidefrom, int sideto)
returns the transformation which takes a point from the side sidefrom to the side sideto ...
virtual ~TPZQuadrilateral()
Default destructor.
Abstract class defining integration rules. Numerical Integration.
static void GetSideHDivDirections(TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao)
int ClassId() const override
Define the class id associated with the class.
static int SideNodes[4][2]
int64_t size() const
Returns the number of elements of the vector.
Handles the numerical integration for two-dimensional problems using quadrilateral elements...
Groups all classes defining the structure of the master element.
static void ComputeHDivDirections(TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions)
Compute the directions of the HDiv vectors.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
void Read(TPZStream &buf, void *context) override
read objects from the stream
Contains TPZMatrixclass which implements full matrix (using column major representation).
static void ComputeHCurlFaceDirections(TPZVec< TVar > &v1, TPZVec< TVar > &v2, int transformationId)
static void LowerDimensionSides(int side, TPZStack< int > &smallsides)
Get all sides with lower dimension on side.
static void ParametricDomainNodeCoord(int node, TPZVec< REAL > &nodeCoord)
static bool CheckProjectionForSingularity(const int &side, const TPZVec< T > &xiInterior)
static constexpr REAL RefElVolume()
Volume of the master element (measure)
static void RandomPoint(TPZVec< REAL > &pt)
Generates a random point in the master domain.
static void MapToSide(int side, TPZVec< T > &InternalPar, TPZVec< T > &SidePar, TPZFMatrix< T > &JacToSide)
static TPZTransform TransformSideToElement(int side)
Returns the transformation which transform a point from the side to the interior of the element...
static MElementType Type()
Returns the type of the element as specified in file pzeltype.h.
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
static int NContainedSides(int side)
return the number of sides contained in the closure of a side
static int NumSides()
Returns number of sides of the element (9)
static int ContainedSideLocId(int side, int c)
returns the local side number of the side "c" contained in the closure of side "side" ...
MElementType
Define the element types.
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 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.
Implements computational mesh. Computational Mesh.
Defines the topology of a quadrilateral element. Topology Sides 0 to 3 are vertices, sides 4 to 7 are lines, side 8 is the quadrilateral.
static void SetHdivType(EHdivType val)
static int GetTransformId(TPZVec< int64_t > &id)
Method which identifies the transformation based on the IDs of the corner nodes.
static int SideDimension(int side)
returns the dimension of the side
Defines the interface for saving and reading data. Persistency.
This class defines the interface to save and restore objects from TPZStream objects. Persistency.
static int SideNodeLocId(int side, int node)
returns the local node number of the node "node" along side "side"
TPZQuadrilateral()
Default constructor.
Defines the interface of a computational element. Computational Element.
static int NBilinearSides()
static void ComputeHCurlDirections(TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions, const TPZVec< int > &transformationIds)
static TPZIntPoints * CreateSideIntegrationRule(int side, int order)
Create an integration rule over side.
static void HigherDimensionSides(int side, TPZStack< int > &high)
returns all sides whose closure contains side