6 #ifndef PZMULTIPHYSICCOMPELH 7 #define PZMULTIPHYSICCOMPELH 21 template <
class TGeometry>
53 std::map<int64_t,int64_t> & gl2lcConMap,
54 std::map<int64_t,int64_t> & gl2lcElMap);
103 std::map<int64_t,int64_t> & gl2lcConMap,
104 std::map<int64_t,int64_t> & gl2lcElMap)
const override;
112 return fElementVec.
size();
121 virtual int64_t
ConnectIndex(
int elem,
int connect)
const ;
220 if (fElementVec.
size() <= meshindex)
222 fElementVec.
resize(meshindex+1);
229 fElementVec[meshindex] = celside;
240 if (fElementVec.
size() <= meshindex)
242 fElementVec.
resize(meshindex+1);
245 fElementVec[meshindex] = celside;
250 return fElementVec[elindex].Element();
258 if (fElementVec.
size() <= mesh) {
259 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" index does not exist!\n";
264 return fElementVec[mesh].Element();
274 fConnectIndexes = indexes;
281 virtual void Print(std::ostream &out = std::cout)
const override;
329 virtual int ClassId()
const override;
386 template<
class TGeometry>
Represents a graphical mesh used for post processing purposes. Post processing.
TPZCompEl * CreateMultiphysicsQuadElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational quadrilateral element for Multiphysics approximate space.
TPZManVector< TPZCompElSide,5 > fElementVec
List of pointers to computational elements.
virtual void ComputeRequiredData(TPZVec< REAL > &point, TPZVec< TPZTransform<> > &trvec, TPZVec< TPZMaterialData > &datavec, TPZVec< int64_t > indices)
TPZCompEl * CreateMultiphysicsPrismElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational prismal element for Multiphysics approximate space.
TPZCompEl * CreateMultiphysicsPyramEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational pyramidal element for Multiphysics approximate space.
Contains declaration of TPZIntelGen class which implements a generic computational element...
virtual void SetConnectIndex(int inode, int64_t index) override
Set the index i to node inode.
Implements computational element and a side. Computational Element.
Implements a vector class which allows to use external storage provided by the user. Utility.
virtual int64_t NMeshes() override
Return the number of meshes associated with the element.
void GetReferenceIndexVec(TPZManVector< TPZCompMesh *> cmeshVec, std::set< int64_t > &refIndexVec)
Method to obtain an reference index set of multiphysics computational elements.
TPZCompEl * CreateMultiphysicsLinearElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational linear element for Multiphysics approximate space.
virtual void resize(const int64_t newsize)
virtual void AffineTransform(TPZVec< TPZTransform<> > &trVec) const override
Compute the map of a paramenter point in the multiphysic element to a parameter point in the super el...
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
virtual TPZCompEl * ReferredElement(int64_t mesh) override
Returns referred element of this.
Contains the declaration of the TPZMultiphysicsElement class. This class is abstract.
TPZCompEl * CreateMultiphysicsTriangleElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational triangular element for Multiphysics approximate space.
REAL val(STATE &number)
Returns value of the variable.
virtual void InitializeIntegrationRule() override
After adding the elements initialize the integration rule.
virtual int NSides() const =0
Returns the number of connectivities of the element.
TPZCompEl * CreateMultiphysicsTriangleEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational triangular element for Multiphysics approximate space.
virtual TPZCompEl * ClonePatchEl(TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override
Method for creating a copy of the element in a patch mesh.
TPZMultiphysicsCompEl()
Default constructor.
virtual void Solution(TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol) override
Post processing method which computes the solution for the var post processed variable.
virtual int NumberOfCompElementsInsideThisCompEl() override
Return the size of the elementvec in multiphysics, if it is not multiphysics, just return 1...
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object.
Abstract class defining integration rules. Numerical Integration.
TPZManVector< int, 5 > fActiveApproxSpace
List of active approximation spaces.
virtual void ComputeRequiredData(TPZMaterialData &data, TPZVec< REAL > &point) override
Compute and fill data with requested attributes.
virtual void Print(std::ostream &out=std::cout) const override
Prints element data.
int64_t size() const
Returns the number of elements of the vector.
TPZCompEl * CreateMultiphysicsPyramElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational pyramidal element for Multiphysics approximate space.
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.
virtual void SetCreateFunctions(TPZCompMesh *mesh) override
Sets create function in TPZCompMesh to create elements of this type.
void InitializeElementMatrix(TPZElementMatrix &ek, TPZElementMatrix &ef)
Initialize element matrix in which is computed CalcStiff.
virtual int Dimension() const override
Dimension of the element.
TPZCompEl * CreateMultiphysicsTetraEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational tetrahedral element for Multiphysics approximate space.
virtual ~TPZMultiphysicsCompEl()
Default destructor.
virtual TPZVec< STATE > IntegrateSolution(int var) const override
Compute the integral of a variable.
virtual void PolynomialOrder(TPZVec< int > &order) const override
virtual void CalcStiff(TPZElementMatrix &ek, TPZElementMatrix &ef) override
Computes the element stiffness matrix and right hand side.
Contains the TPZMaterialData class which implements an interface between TPZCompEl::CalcStiff and TPZ...
Contains declaration of TPZCompMesh class which is a repository for computational elements...
virtual TPZCompEl * Clone(TPZCompMesh &mesh) const override
Method for creating a copy of the element.
void InitMaterialData(TPZVec< TPZMaterialData > &dataVec, TPZVec< int64_t > *indices=0) override
Initialize a material data vector and its attributes based on element dimension, number of state vari...
TPZCompEl * CreateMultiphysicsTetraElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational tetrahedral element for Multiphysics approximate space.
This class associates an element matrix with the coeficients of its contribution in the global stiffn...
virtual int ClassId() const override
Define the class id associated with the class.
class to create a compute element multiphysics
virtual const TPZIntPoints & GetIntegrationRule() const override
Returns a reference to an integration rule suitable for integrating the interior of the element...
TPZCompEl * CreateMultiphysicsPointElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational point element for Multiphysics approximate space.
virtual void CalcResidual(TPZElementMatrix &ef) override
Computes the element stiffness matrix and right hand side.
TPZGeoEl * Reference() const
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise.
TPZCompEl * CreateMultiphysicsPointEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational point element for Multiphysics approximate space.
TPZCompEl * CreateMultiphysicsCubeElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational cube element for Multiphysics approximate space.
virtual void ComputeRequiredData(TPZVec< REAL > &point, TPZVec< TPZTransform<> > &trvec, TPZVec< TPZMaterialData > &datavec)
Compute and fill data with requested attributes for each of the compels in fElementVec.
TPZCompEl * CreateMultiphysicsPrismEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational prismal element for Multiphysics approximate space.
virtual int64_t ConnectIndex(int i) const override
Returns the index of the ith connectivity of the element.
Implements computational mesh. Computational Mesh.
virtual void CreateGraphicalElement(TPZGraphMesh &grmesh, int dimension) override
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to ge...
TPZVec< int64_t > fConnectIndexes
Indexes of the connects of the element.
virtual void EvaluateError(std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)> func, TPZVec< REAL > &errors, bool store_error) override
Performs an error estimate on the elemen.
virtual TPZManVector< TPZCompElSide, 5 > & ElementVec() override
Returns a reference to the element pointers vector.
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) override
Computes solution and its derivatives in the local coordinate qsi.
virtual TPZCompEl * Element(int64_t elindex) override
int64_t NElements() const
Returns the number of elements of the vector.
virtual void SetConnectIndexes(TPZVec< int64_t > &indexes) override
Sets indexes of the connects of the element.
Contains the declaration of the Reduced Space class.
TPZCompEl * CreateMultiphysicsLinearEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational linear element for Multiphysics approximate space.
Defines the interface of a computational element. Computational Element.
void SetAllCreateFunctionsMultiphysicElem()
virtual int NConnects() const override
Returns the number of nodes of the element.
virtual void SetIntegrationRule(int int_order) override
TPZCompEl * CreateMultiphysicsQuadEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational quadrilateral element for Multiphysics approximate space.
TPZCompEl * CreateMultiphysicsCubeEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational cube element for Multiphysics approximate space.
#define PZError
Defines the output device to error messages and the DebugStop() function.
TGeometry::IntruleType fIntRule
Integration rule associated with the element.
virtual void AddElement(TPZCompEl *cel, int64_t meshindex) override
add an element to the datastructure
virtual void Integrate(int variable, TPZVec< STATE > &value) override
Post processing method which computes the solution for the var post processed variable.
virtual void AddElement(const TPZCompElSide &celside, int64_t meshindex) override
add an element to the datastructure