37 static LoggerPtr logger(Logger::getLogger(
"pz.mesh.tpzmultiphysiccompEl"));
40 template <
class TGeometry>
45 template <
class TGeometry>
53 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" this->Material() == NULL\n";
60 template <
class TGeometry>
63 std::map<int64_t,int64_t> & gl2lcConMap,
70 template <
class TGeometry>
75 template<
class TGeometry>
78 for (
int ic=0; ic<nc; ic++) {
83 template <
class TGeometry>
94 for (int64_t i = 0; i<nel; i++) {
104 if (gelside.NeighbourExists(gelmfside))
107 gelmfside.SideTransform3(gelside, trVec[i]);
119 thisgeoside.SideTransform3(neighgeoside, LocalTransf);
120 TPZGeoElSide highdim(neighgeoside.Element(), neighgeoside.Element()->NSides()-1);
127 template <
class TGeometry>
136 for (isub=0; isub<ncm; isub++) {
137 cmeshVec[isub]->LoadReferences();
141 for(int64_t i = 0; i< ncm; i++){
143 for (int64_t j=0; j<ncel; j++) {
144 TPZCompEl * cel = cmeshVec[i]->ElementVec()[j];
150 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" Geometry element null!\n";
162 refIndexVec.insert(geoel->
Index());
171 std::stringstream sout;
172 sout <<
"Number of elements : " << refIndexVec.size() << std::endl;
173 sout <<
"Reference index of elements : "<< std::endl;
174 std::set<int64_t>::iterator it;
175 for (it=refIndexVec.begin() ; it != refIndexVec.end(); it++ )
231 template <class TGeometry>
234 out << __PRETTY_FUNCTION__ << std::endl;
236 out <<
"Integration rule ";
240 out <<
"\nCenter coordinate: ";
244 this->
Reference()->
X(centerMaster,centerEuclid);
245 out << centerEuclid << std::endl;
249 out <<
"Material id " << this->
Material()->
Id() <<
"\n";
252 out <<
"No material\n";
255 out <<
"Number of connects = " <<
NConnects();
256 out <<
"Connect indexes : ";
264 out <<
"Reference Index = " << this->
Reference()->
Index() << std::endl;
267 if(restraints.size())
269 out <<
"One shape restraints\n";
270 for (std::list<TPZOneShapeRestraint>::const_iterator it = restraints.begin(); it != restraints.end(); it++) {
275 out <<
"\nComputational elements this multi-physics element: \n";
277 for(int64_t iel = 0; iel< nmesh; iel++ ){
279 out <<
"\nComputational element belonging to the mesh " << iel+1 <<
":\n";
282 out <<
"\n There is not element to computational mesh " << iel+1 <<
"\n";
291 out <<
"\n\tAffine transformation of the multiphysics element for this computational element:"<<
"\n";
293 out <<
"\t" << tr[iel];
298 template <
class TGeometry>
301 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" method is not implementedl!\n";
306 template <
class TGeometry>
308 std::map<int64_t,int64_t> & gl2lcConMap,
309 std::map<int64_t,int64_t> & gl2lcElMap)
const {
310 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" method is not implementedl!\n";
315 template <
class TGeometry>
320 template <
class TGeometry>
325 template <
class TGeometry>
329 for(int64_t el=0; el<elem; el++){
339 template <
class TGeometry>
353 template<
class TGeometry>
357 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" : no material for this element\n";
361 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" : no reference element\n";
370 if (nref != datavec.
size()) {
371 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" The number of materials can not be different from the size of the fElementVec !\n";
377 for (int64_t iref = 0; iref<nref; iref++)
413 template<
class TGeometry>
445 for (int64_t iref = 0; iref<nref; iref++)
452 trvec[iref].Apply(qsi, myqsi);
456 if(shapetype==datavec[iref].EVecandShape){
466 datavec[iref].x.
Resize(3);
470 material->
Solution(datavec, var, sol);
473 template <
class TGeometry>
476 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" method is not implementedl!\n";
480 template <
class TGeometry>
485 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" method is not implementedl!\n";
489 template <
class TGeometry>
492 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" method is not implementedl!\n";
496 template <
class TGeometry>
501 template <
class TGeometry>
512 for(ic=0; ic<ncon; ic++)
515 numeq += neqThisConn;
521 int numloadcases = 1;
522 for (int64_t iref=0; iref<nref; iref++) {
534 const int numstate = nstate;
541 for(i=0; i<ncon; i++){
554 for(i=0; i<ncon; i++){
562 template <
class TGeometry>
571 for(ic=0; ic<ncon; ic++)
574 numeq += neqThisConn;
580 int numloadcases = 1;
581 for (int64_t iref=0; iref<nref; iref++) {
593 const int numstate = nstate;
598 for(i=0; i<ncon; i++){
609 for(i=0; i<ncon; i++){
615 template <
class TGeometry>
621 if (nref != dataVec.
size()) {
622 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" The number of materials can not be different from the size of the fElementVec !\n";
627 int64_t nindices = indices->
size();
629 for (int64_t iref = 0; iref <nindices; iref++) {
630 int64_t indiciref = indices->operator[](iref);
633 dataVec[indiciref].gelElId =
fElementVec[indiciref].Element()->Reference()->Id();
644 for (int64_t iref = 0; iref < nref; iref++)
648 dataVec[iref].gelElId =
fElementVec[iref].Element()->Reference()->Id();
660 if (n_active_approx_spaces == 0) {
664 for (int64_t iref = 0; iref < nref; iref++) {
672 template <
class TGeometry>
677 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" this->Material() == NULL\n";
703 for (int64_t iref=0; iref<nref; iref++)
710 svec = ordervec.
size();
717 ordervec[svec-1] = datavec[iref].p;
726 int intrulepoints = intrule->
NPoints();
727 if(intrulepoints > 1000) {
733 for(
int int_ind = 0; int_ind < intrulepoints; ++int_ind)
735 intrule->
Point(int_ind,intpointtemp,weight);
736 ref->
Jacobian(intpointtemp, jac, axe, detJac , jacInv);
737 weight *=
fabs(detJac);
743 datavec[i].intLocPtIndex = int_ind;
753 template <
class TGeometry>
758 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" this->Material() == NULL\n";
783 for (int64_t iref=0; iref<nref; iref++)
790 svec = ordervec.
size();
797 ordervec[svec-1] = datavec[iref].p;
806 int intrulepoints = intrule->
NPoints();
807 if(intrulepoints > 1000) {
813 int nmeshes = datavec.
size();
814 for(
int int_ind = 0; int_ind < intrulepoints; ++int_ind)
816 intrule->
Point(int_ind,intpointtemp,weight);
817 ref->
Jacobian(intpointtemp, jac, axe, detJac , jacInv);
818 weight *=
fabs(detJac);
819 for (
int imesh = 0; imesh < nmeshes; imesh++) {
820 datavec[imesh].intLocPtIndex = int_ind;
833 template <
class TGeometry>
839 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" this->Material() == NULL\n";
843 if (this->
NConnects() == 0)
return result;
863 for (int64_t iref=0; iref<nref; iref++)
865 datavec[iref].fNeedsSol =
true;
871 svec = ordervec.
size();
878 ordervec[svec-1] = datavec[iref].p;
887 int intrulepoints = intrule->
NPoints();
888 if(intrulepoints > 1000) {
897 for(
int int_ind = 0; int_ind < intrulepoints; ++int_ind)
899 intrule->
Point(int_ind,intpointtemp,weight);
900 ref->
Jacobian(intpointtemp, jac, axe, detJac , jacInv);
901 weight *=
fabs(detJac);
902 datavec[0].intLocPtIndex = int_ind;
903 datavec[1].intLocPtIndex = int_ind;
908 material->
Solution(datavec, var, solout);
910 for (
int iv=0; iv<nvar; iv++) {
911 result[iv] += weight*solout[iv];
921 template <
class TGeometry>
925 for (int64_t iref = 0; iref < ElemVecSize; iref++)
934 trvec[iref].Apply(intpointtemp, intpoint);
940 template <
class TGeometry>
959 template <
class TGeometry>
968 PZError <<
"Error at " << __PRETTY_FUNCTION__ <<
" this->Material() == NULL\n";
981 for (int64_t iref=0; iref<nref; iref++)
992 svec = ordervec.
size();
999 ordervec[svec-1] = datavec[iref].p;
1009 template <
class TGeometry>
1018 template <
class TGeometry>
1029 template <
class TGeometry>
1037 PZError <<
"TPZInterpolatedElement::EvaluateError : no material for this element\n";
1041 if(dynamic_cast<TPZBndCond *>(material)) {
1042 LOGPZ_INFO(logger,
"Exiting EvaluateError - null error - boundary condition material.");
1062 const int order_limit = 15;
1063 if(maxIntOrder > order_limit)
1065 if (prevorder[0] > order_limit) {
1066 maxIntOrder = prevorder[0];
1070 maxIntOrder = order_limit;
1077 int nflux = material->
NFluxes();
1092 for (
unsigned int i = 0; i < nref; ++i) {
1095 datavec[i].fNeedsSol =
true;
1105 int nintpoints = intrule->
NPoints();
1110 for(
int nint = 0; nint < nintpoints; nint++) {
1112 intrule->
Point(nint,intpoint,weight);
1117 weight *=
fabs(datavec[iactive].detjac);
1122 fp(datavec[iactive].x,u_exact,du_exact);
1124 material->
Errors(datavec,u_exact,du_exact,values);
1126 for(
int ier = 0; ier < NErrors; ier++)
1128 errors[ier] += values[ier]*weight;
1133 for(
int ier = 0; ier < NErrors; ier++){
1134 errors[ier] =
sqrt(errors[ier]);
1139 int64_t index =
Index();
1141 if (elvals.
Cols() < NErrors) {
1142 std::cout <<
"The element solution of the mesh should be resized before EvaluateError\n";
1145 for (
int ier=0; ier <NErrors; ier++) {
1146 elvals(index,ier) = errors[ier];
1155 template <
class TGeometry>
1165 PZError <<
"TPZInterpolatedElement::EvaluateError : no material for this element\n";
1169 if(dynamic_cast<TPZBndCond *>(material)) {
1170 LOGPZ_INFO(logger,
"Exiting EvaluateError - null error - boundary condition material.");
1186 const int order_limit = 8;
1187 if(maxIntOrder > order_limit)
1189 if (prevorder[0] > order_limit) {
1190 maxIntOrder = prevorder[0];
1194 maxIntOrder = order_limit;
1201 int nflux = material->
NFluxes();
1215 datavec[0].fNeedsSol =
true;
1216 datavec[1].fNeedsSol =
true;
1221 int nintpoints = intrule->
NPoints();
1226 for(
int nint = 0; nint < nintpoints; nint++) {
1228 intrule->
Point(nint,intpoint,weight);
1230 ref->
Jacobian(intpoint, jac, axe, detJac , jacInv);
1233 weight *=
fabs(datavec[0].detjac);
1237 func.
Execute(datavec[0].x,u_exact,du_exact);
1238 material->
Errors(datavec,u_exact,du_exact,values);
1240 for(
int ier = 0; ier < NErrors; ier++)
1242 errors[ier] += values[ier]*weight;
1247 for(
int ier = 0; ier < NErrors; ier++){
1248 errors[ier] =
sqrt(errors[ier]);
1252 int64_t index =
Index();
1254 if (elvals.
Cols() < NErrors) {
1255 std::cout <<
"The element solution of the mesh should be resized before EvaluateError\n";
1258 for (
int ier=0; ier <NErrors; ier++) {
1259 elvals(index,ier) = errors[ier];
1266 template <
class TGeometry>
1270 for (int64_t iref = 0; iref < nref; iref++) {
1273 order[iref] = msp ? msp->
MaxOrder() : 0;
1287 template<
class TGeometry>
1307 template<
class TGeometry>
1323 int matid = material->
Id();
1324 int nsides = ref->
NSides();
1326 if(dimension == 2 && to_postpro){
1337 if(dimension == 3 && to_postpro){
1356 if(dimension == 1 && to_postpro){
bool Material_Is_PostProcessed(int matid)
Return a directive if the material id is being postprocessed.
virtual void Solution(TPZMaterialData &data, int var, TPZVec< STATE > &Solout)
Returns the solution associated with the var index based on the finite element approximation.
void HigherLevelCompElementList2(TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
Returns all connected computational elements which have level higher to the current element if onlyi...
TPZFMatrix< STATE > & ElementSolution()
Access method for the element solution vectors.
virtual void GetOrder(TPZVec< int > &ord) const =0
Gets the order of the integration rule for each dimension of the master element.
TPZGeoMesh * Reference() const
Returns a pointer to the geometrical mesh associated.
virtual void Execute(const TPZVec< REAL > &x, TPZVec< TVar > &f, TPZFMatrix< TVar > &df)
Performs function computation.
Represents a graphical mesh used for post processing purposes. Post processing.
TPZManVector< TPZCompElSide,5 > fElementVec
List of pointers to computational elements.
Contains the TPZGraphElTd class which implements the graphical discontinuous triangular element...
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ fabs
virtual int NPoints() const =0
Returns number of points for the cubature rule related.
TPZCompEl * CreateMultiphysicsQuadEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational quadrilateral element for Multiphysics approximate space.
virtual void SetConnectIndex(int inode, int64_t index) override
Set the index i to node inode.
int Set(const int index, const int dim, const int pos=-1)
Modifies existing block dimensions or creates a new block with given index.
Represents a set of shape functions associated with a computational element/side. Computational Eleme...
virtual void Errors(TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &errors)
Contains definitions to LOGPZ_DEBUG, LOGPZ_INFO, LOGPZ_WARN, LOGPZ_ERROR and LOGPZ_FATAL, and the implementation of the inline InitializePZLOG(string) function using log4cxx library or not. It must to be called out of "#ifdef LOG4CXX" scope.
To export a graphical one dimensional discontinuous element. Post processing.
virtual void InitMaterialData(TPZMaterialData &data)
Initialize a material data and its attributes based on element dimension, number of state variables a...
Implements a vector class which allows to use external storage provided by the user. Utility.
void GetReferenceIndexVec(TPZManVector< TPZCompMesh *> cmeshVec, std::set< int64_t > &refIndexVec)
Method to obtain an reference index set of multiphysics computational elements.
TPZCompEl * CreateMultiphysicsCubeElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational cube element for Multiphysics approximate space.
TPZCompEl * CreateMultiphysicsTriangleElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational triangular element for Multiphysics approximate space.
TPZCompEl * CreateMultiphysicsLinearEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational linear element for Multiphysics approximate space.
virtual void resize(const int64_t newsize)
TPZCompEl * CreateMultiphysicsCubeEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational cube element for Multiphysics approximate space.
Contains the declaration of the TPZCompElWithMem class, it is as TPZCompEl with enable material memor...
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)
TPZStack< int64_t > fConnect
Vector of pointers to TPZConnect objects.
TPZFNMatrix< 1000, STATE > fMat
Pointer to a blocked matrix object.
Contains declaration of TPZCompEl class which defines the interface of a computational element...
std::list< TPZOneShapeRestraint > fOneRestraints
list of one degree of freedom restraints
virtual TPZTransform< REAL > BuildTransform2(int side, TPZGeoEl *father, TPZTransform< REAL > &t)
Returns the transformation which maps the parameter side of the element/side into the parameter spac...
To export a graphical two-dimensional discontinuous element. Post processing.
To export a graphical three dimensional discontinuous element. Post processing.
Contains declaration of TPZInterpolationSpace class which implements the interface for interpolated c...
Contains the TPZGraphEl class which implements the graphical one-, two- and three-dimensional element...
virtual int NStateVariables() const =0
Returns the number of state variables associated with the material.
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
Implements the graphical element for a pyramid using a map to the cube element. Post processing...
This class implements a simple vector storage scheme for a templated class T. Utility.
REAL val(STATE &number)
Returns value of the variable.
int NDof(TPZCompMesh &mesh)
Number of degrees of freedom associated with the object.
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.
virtual void Contribute(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)=0
It computes a contribution to the stiffness matrix and load vector at one integration point...
TPZCompEl * CreateMultiphysicsTetraEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational tetrahedral element for Multiphysics approximate space.
TPZBlock< STATE > fBlock
Block structure associated with fMat.
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.
Contains the TPZGraphEl1d class which implements the graphical one dimensional element.
virtual void Print(std::ostream &out) const
Prints information of the cubature rule.
TPZCompEl * CreateMultiphysicsPyramElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational pyramidal element for Multiphysics approximate space.
TPZTransform< REAL > SideToSideTransform(TPZGeoElSide &higherdimensionside)
Compute the transformation between the master element space of one side of an element to the master e...
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 void Resize(const int64_t newsize, const T &object)
Resizes the vector object.
It has the declaration of the TPZMultiphysicsCompEl class.
virtual int ClassId() const override
Define the class id associated with the class.
Abstract class defining integration rules. Numerical Integration.
TPZManVector< int, 5 > fActiveApproxSpace
List of active approximation spaces.
This abstract class defines the behaviour which each derived class needs to implement.
Contains declaration of TPZElementMatrix struct which associates an element matrix with the coeficien...
virtual void CenterPoint(int side, TPZVec< REAL > &masscent) const =0
It returns the coordinates from the center of the side of the element in the element coordinate space...
virtual TPZIntPoints * CreateSideIntegrationRule(int side, int order)=0
Creates an integration rule for the topology of the corresponding side and able to integrate a polyno...
Contains the TPZBndCond class which implements a boundary condition for TPZMaterial objects...
virtual TPZMaterial * Material() const
Identify the material object associated with the element.
Implements a graphical element for a triangle mapped into de quadrilateral element. Post processing.
virtual void Print(std::ostream &out=std::cout) const override
Prints element data.
TPZCompEl * CreateMultiphysicsTetraElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational tetrahedral element for Multiphysics approximate space.
int64_t size() const
Returns the number of elements of the vector.
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object reallocating the necessary storage, copying the existing objects to the new...
virtual int IntegrationRuleOrder(int elPMaxOrder) const
Gets the order of the integration rule necessary to integrate an element with polinomial order p...
virtual int NEvalErrors()
Returns the number of norm errors. Default is 3: energy, L2 and H1.
#define LOGPZ_INFO(A, B)
Define log for informations.
Contains the TPZGraphElT3d class which implements the graphical representation of a tetrahedra elemen...
Implements the graphical element for a prism using a degenerated cube element. Post processing...
virtual void ComputeShape(TPZVec< REAL > &intpoint, TPZVec< REAL > &X, TPZFMatrix< REAL > &jacobian, TPZFMatrix< REAL > &axes, REAL &detjac, TPZFMatrix< REAL > &jacinv, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, TPZFMatrix< REAL > &dphidx)
Compute shape functions based on master element in the classical FEM manner.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
Contains the TPZGraphElQ2dd class which implements the graphical two-dimensional discontinuous elemen...
Implements the graphical representation of a tetrahedra element. Post processing. ...
int64_t Index() const
Returns the index of the element within the element vector of the mesh.
Contains the TPZGeoTetrahedra class which implements the geometry of a tetrahedral element...
virtual int NFluxes()
Returns the number of components which form the flux function.
virtual void FillDataRequirements(TPZMaterialData &data)
Fill material data parameter with necessary requirements for the.
#define DebugStop()
Returns a message to user put a breakpoint in.
virtual void SetOrder(TPZVec< int > &ord, int type=0)=0
Sets the order of the cubature rule.
Contains the TPZGraphElPrismMapped class which implements the graphical element for a prism using a d...
#define LOGPZ_DEBUG(A, B)
Define log for debug info.
void InitializeElementMatrix(TPZElementMatrix &ek, TPZElementMatrix &ef)
Initialize element matrix in which is computed CalcStiff.
This class defines the boundary condition for TPZMaterial objects.
TPZCompMesh * Mesh() const
Return a pointer to the grid of the element.
virtual int Dimension() const override
Dimension of the element.
Contains declaration of TPZConnect class which represents a set of shape functions associated with a ...
int Dimension() const
Returns the dimension of the simulation.
void Jacobian(TPZVec< REAL > &qsi, TPZFMatrix< REAL > &jac, TPZFMatrix< REAL > &axes, REAL &detjac, TPZFMatrix< REAL > &jacinv) const
Compute a decomposition of the gradient of the mapping function, as a rotation matrix (Jacobian) and ...
unsigned int NShape() const
virtual ~TPZMultiphysicsCompEl()
Default destructor.
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sqrt
virtual TPZVec< STATE > IntegrateSolution(int var) const override
Compute the integral of a variable.
Contains the TPZGraphElT class which implements the graphical triangular element. ...
This class implements the TPZCompEl structure to enable material memory feature. It should be instan...
Contains declaration of the TPZAutoPointer class which has Increment and Decrement actions are mutexe...
Contains the TPZGraphMesh class which represents a graphical mesh used for post processing purposes...
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 TPZGraphElPyramidMapped class which implements the graphical element for a pyramid using...
TPZIntPoints * fIntegrationRule
Integration rule established by the user.
int64_t Index() const
Returns element index of the mesh fELementVec list.
Contains the TPZMaterialData class which implements an interface between TPZCompEl::CalcStiff and TPZ...
TPZCompEl * CreateMultiphysicsPointEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational point element for Multiphysics approximate space.
int SetNBlocks(const int num_of_blocks)
Sets number of blocks on diagonal matrix.
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZMaterialData &data)
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
virtual TPZConnect & Connect(int i) const
Returns a pointer to the ith node.
Contains the TPZGeoCube class which implements the geometry of hexahedra element. ...
virtual TPZCompEl * Clone(TPZCompMesh &mesh) const override
Method for creating a copy of the element.
unsigned char NState() const
Number of state variables associated with the connect.
int32_t Hash(std::string str)
Contains the TPZGeoPoint class which implements the geometry of a point element or 0-D 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...
This class associates an element matrix with the coeficients of its contribution in the global stiffn...
TPZCompEl * CreateMultiphysicsPrismEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational prismal element for Multiphysics approximate space.
virtual int ClassId() const override
Define the class id associated with the class.
Implements the interfaces for TPZCompElDisc, TPZInterfaceElement and TPZInterpolatedElement. Computational element.
virtual int NConnects() const =0
Returns the number of nodes of the element.
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...
virtual void CalcResidual(TPZElementMatrix &ef) override
Computes the element stiffness matrix and right hand side.
virtual int Dimension() const =0
Returns the dimension of the element.
TPZGeoEl * Reference() const
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise.
virtual int NSolutionVariables(int var)
Returns the number of variables associated with the variable indexed by var.
virtual void X(TPZVec< REAL > &qsi, TPZVec< REAL > &result) const =0
Return the coordinate in real space of the point coordinate in the master element space...
This class implements a geometric mesh for the pz environment. Geometry.
virtual int GetMaxOrder() const
Returns the minimum order to integrate polinomials exactly for all implemented cubature rules...
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.
void Reset(TPZCompMesh *mesh=NULL, MType type=Unknown)
Reset the data structure.
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...
TPZCompEl * CreateMultiphysicsPyramEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational pyramidal element for Multiphysics approximate space.
virtual void Print(std::ostream &out=std::cout) const
Prints element data.
TPZVec< int64_t > fConnectIndexes
Indexes of the connects of the element.
virtual void Solution(TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol)
Calculates the solution - sol - for the variable var at point qsi, where qsi is expressed in terms of...
Contains the TPZGraphElT2dMapped class which implements a graphical element for a triangle mapped int...
int NumLoadCases()
returns the number of load cases for this material object
void Fill(const T ©, const int64_t from=0, const int64_t numelem=-1)
Will fill the elements of the vector with a copy object.
virtual std::list< TPZOneShapeRestraint > GetShapeRestraints() const override
Return a list with the shape restraints.
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.
int64_t Cols() const
Returns number of cols.
void RemoveDepend(int64_t myindex, int64_t dependindex)
Remove dependency between connects if exist.
virtual int MaxOrder()
Returns the max order of interpolation.
TPZCompEl * CreateMultiphysicsPointElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational point element for Multiphysics approximate space.
Contains the TPZGeoPyramid class which implements the geometry of pyramid element.
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) override
Computes solution and its derivatives in the local coordinate qsi.
int64_t NElements() const
Returns the number of elements of the vector.
Contains the TPZGraphEl1dd class which implements the graphical one dimensional discontinuous element...
virtual TPZIntPoints * Clone() const =0
Make a clone of the related cubature rule.
Contains the TPZGeoPrism class which implements the geometry of a prism element.
virtual void ComputeRequiredData(TPZMaterialData &data, TPZVec< REAL > &qsi)
Compute and fill data with requested attributes.
TPZCompEl * CreateMultiphysicsLinearElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational linear element for Multiphysics approximate space.
Groups all classes which model the geometry.
void ResetReference()
Resets all load references in elements and nodes.
TPZCompEl * CreateMultiphysicsTriangleEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational triangular element for Multiphysics approximate space.
Defines the interface of a computational element. Computational Element.
virtual int NConnects() const override
Returns the number of nodes of the element.
Contains the TPZGraphElQ3dd class which implements the graphical three dimensional discontinuous elem...
TPZCompEl * CreateMultiphysicsQuadElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational quadrilateral element for Multiphysics approximate space.
virtual void SetIntegrationRule(int int_order) override
virtual void Point(int i, TPZVec< REAL > &pos, REAL &w) const =0
Returns i-th point at master element and related weight.
#define PZError
Defines the output device to error messages and the DebugStop() function.
TPZCompEl * CreateMultiphysicsPrismElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Creates computational prismal element for Multiphysics approximate space.
TGeometry::IntruleType fIntRule
Integration rule associated with the element.
virtual void Integrate(int variable, TPZVec< STATE > &value) override
Post processing method which computes the solution for the var post processed variable.