21 template<
class TSHAPE>
46 std::map<int64_t,int64_t> & gl2lcConMap,
47 std::map<int64_t,int64_t> & gl2lcElMap);
73 virtual void Print(std::ostream &out = std::cout)
const override;
94 return TSHAPE::Dimension;
122 fRestraints.push_back(restraint);
149 virtual void SetSideOrient(
int side,
int sideorient)
override;
168 virtual void SetSideOrder(
int side,
int order)
override;
192 if (face < 0 || face >= TSHAPE::NFaces) {
196 return fSideOrient[face];
301 virtual void PRefine(
int order)
override;
305 template<
class TSHAPE>
312 template<
class TSHAPE>
Represents a graphical mesh used for post processing purposes. Post processing.
void Shape(TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) override
Computes the shape function set at the point x.
virtual void Print(std::ostream &out=std::cout) const override
Prints the relevant data of the element to the output stream.
TPZCompEl * CreateRefHDivTriangleEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
virtual void ResetShapeRestraints() override
Return a list with the shape restraints.
Contains declaration of TPZIntelGen class which implements a generic computational element...
virtual void GetInterpolationOrder(TPZVec< int > &ord) override
Identifies the interpolation order on the interior of the element.
TPZCompEl * CreateHDivPrismEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational prismal element for HDiv approximate space.
void FirstShapeIndex(TPZVec< int64_t > &Index) const
Returns the vector index of the first index shape associate to to each side Special implementation to...
TPZCompEl * CreateHDivCubeEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational cube element for HDiv approximate space.
virtual int GetSideOrient(int side) override
It returns the normal orientation of the reference element by the side. Only side that has dimension ...
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
int RestrainedFace()
return the first one dof restraint
virtual int NCornerConnects() const override
Returns the number of corner connects of the element.
TPZTransform TransformSideToElement(int side) override
Returns the transformation which transform a point from the side to the interior of the element...
TPZCompEl * CreateRefHDivQuadEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
TPZCompEl * CreateHDivBoundPointEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational point element for HDiv approximate space.
virtual MElementType Type() override
Return the type of the element.
TPZCompEl * CreateRefHDivCubeEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
virtual int ConnectSideLocId(int connect) const
return the local index for side
Definition of the retraint associated with the top of the pyramid.
virtual int ClassId() const override
returns the unique identifier for reading/writing objects to streams
virtual int Dimension() const override
Returns the dimension of the element.
std::list< TPZOneShapeRestraint > fRestraints
Data structure which defines the restraints.
TPZCompEl * CreateHDivTetraEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational tetrahedral element for HDiv approximate space.
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZVec< REAL > &normal, TPZSolVec &leftsol, TPZGradSolVec &dleftsol, TPZFMatrix< REAL > &leftaxes, TPZSolVec &rightsol, TPZGradSolVec &drightsol, TPZFMatrix< REAL > &rightaxes) override
Computes solution and its derivatives in the local coordinate qsi.
void Read(TPZStream &buf, void *context) override
Read the element data from a stream.
void IndexShapeToVec(TPZVec< int > &VectorSide, TPZVec< std::pair< int, int64_t > > &IndexVecShape, int pressureorder)
Returns a matrix index of the shape and vector associate to element.
virtual void PRefine(int order) override
Refinement along the element.
int NShapeContinuous(TPZVec< int > &order)
return the number of continuous functions
virtual void SetPreferredOrder(int order) override
Sets the preferred interpolation order along a side.
void Write(TPZStream &buf, int withclassid) const override
Save the element data to a stream.
virtual int MaxOrder() override
Return the maximum order??
virtual void Solution(TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol) override
Compute the solution for a given variable.
TPZCompEl * CreateHDivPyramEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational pyramidal element for HDiv approximate space.
virtual void InitMaterialData(TPZMaterialData &data) override
Initialize a material data and its attributes based on element dimension, number of state variables a...
void ComputeShapeIndex(TPZVec< int > &sides, TPZVec< int64_t > &shapeindex)
Compute the correspondence between the normal vectors and the shape functions.
virtual TPZCompEl * ClonePatchEl(TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override
Create a copy of the given element. The clone copy have the connect indexes mapped to the local clone...
TPZCompEl * CreateHDivTriangleEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational triangular element for HDiv approximate space.
int ClassId() const override
Returns the unique identifier for reading/writing objects to streams.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
#define DebugStop()
Returns a message to user put a breakpoint in.
void IndexShapeToVec2(TPZVec< int > &VectorSide, TPZVec< int > &bilinear, TPZVec< int > &direction, TPZVec< std::pair< int, int64_t > > &IndexVecShape, int pressureorder)
TPZCompEl * CreateRefHDivPyramEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
void SetAllCreateFunctionsHDiv()
virtual void SetConnectIndex(int i, int64_t connectindex) override
Sets the node pointer of node i to nod.
TPZCompEl * CreateHDivBoundTriangleEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational triangular element for HDiv approximate space.
virtual void SetSideOrient(int side, int sideorient) override
It set the normal orientation of the element by the side. Only side that has dimension equal to my di...
void CreateGraphicalElement(TPZGraphMesh &grafgrid, int dimension) override
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to ge...
virtual int NFluxShapeF() const
return the number of shape for flux(just for flux)
TPZCompEl * CreateRefHDivPrismEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
TPZCompEl * CreateHDivBoundQuadEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational quadrilateral element for HDiv approximate space.
virtual void ComputeRequiredData(TPZMaterialData &data, TPZVec< REAL > &qsi) override
Compute and fill data with requested attributes.
TPZCompEl * CreateRefHDivLinearEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
TPZCompEl * CreateRefHDivTetraEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
int64_t Index() const
Returns element index of the mesh fELementVec list.
void Append(TPZFMatrix< REAL > &u1, TPZFMatrix< REAL > &u2, TPZFMatrix< REAL > &u12)
To append vectors.
virtual void SetCreateFunctions(TPZCompMesh *mesh) override
Set create function in TPZCompMesh to create elements of this type.
virtual void AddShapeRestraint(TPZOneShapeRestraint restraint) override
Add a shape restraint (meant to fit the pyramid to restraint.
Contains declaration of TPZCompMesh class which is a repository for computational elements...
void FillOrder(TPZVec< int > &order) const
Fill the polynomial order needed from the continuous shape functions.
int SideOrient(int face)
the orientation of the face
int32_t Hash(std::string str)
virtual int PreferredSideOrder(int iside) override
Returns the preferred order of the polynomial along side iside.
virtual void SetSideOrder(int side, int order) override
Sets the interpolation order of side to order.
virtual int SideConnectLocId(int node, int side) const override
return the local index for connect
virtual int NConnects() const override
Returns the number of connect objects of the element.
MElementType
Define the element types.
virtual int NSideConnects(int side) const override
Returns the number of dof nodes along side iside.
void ComputeSolutionHDiv(TPZVec< REAL > &qsi, TPZMaterialData &data)
virtual int64_t ConnectIndex(int con) const override
Returns the index of the ith connectivity of the element.
TPZCompEl * CreateHDivBoundLinearEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational linear element for HDiv approximate space.
Implements computational mesh. Computational Mesh.
virtual void SideShapeFunction(int side, TPZVec< REAL > &point, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) override
Computes the values of the shape function of the side.
virtual std::list< TPZOneShapeRestraint > GetShapeRestraints() const override
Return a list with the shape restraints.
virtual int EffectiveSideOrder(int side) const override
Returns the actual interpolation order of the polynomial along the side.
Defines the interface for saving and reading data. Persistency.
TPZCompEl * CreateHDivQuadEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational quadrilateral element for HDiv approximate space.
virtual int ConnectOrder(int connect) const override
return the interpolation order of the polynomial for connect
Defines the interface of a computational element. Computational Element.
virtual int NConnectShapeF(int connect, int order) const override
Number of shapefunctions of the connect associated.
TPZCompEl * CreateHDivLinearEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational linear element for HDiv approximate space.
virtual void SetIntegrationRule(int ord) override
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) override
Computes solution and its derivatives in the local coordinate qsi.
TPZManVector< int, TSHAPE::NFaces > fSideOrient
vector which defines whether the normal is outward or not
virtual TPZCompEl * Clone(TPZCompMesh &mesh) const override
Method for creating a copy of the element.
Implements a generic computational element. Computational Element.