NeoPZ
|
Implements computational element based on an interpolation space. Computational Element. More...
#include <pzintel.h>
Public Member Functions | |
TPZInterpolatedElement (TPZCompMesh &mesh, TPZGeoEl *reference, int64_t &index) | |
Constructor with a mesh and geometric element as arguments. More... | |
TPZInterpolatedElement (TPZCompMesh &mesh, const TPZInterpolatedElement ©) | |
Constructor aimed at creating a copy of an interpolated element within a new mesh. More... | |
TPZInterpolatedElement (TPZCompMesh &mesh, const TPZInterpolatedElement ©, std::map< int64_t, int64_t > &gl2lcElMap) | |
Copy the given element into a new patch mesh. More... | |
TPZInterpolatedElement () | |
virtual | ~TPZInterpolatedElement () |
Destructor, does nothing. More... | |
virtual void | SetCreateFunctions (TPZCompMesh *mesh) override |
Set create function in TPZCompMesh to create elements of this type. More... | |
int | ClassId () const override |
Define the class id associated with the class. More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Saves the element data to a stream. More... | |
void | Read (TPZStream &buf, void *context) override |
Reads the element data from a stream. More... | |
virtual void | SetInterface (int, int64_t) |
To enable to work with discontinuous element that can have interface elements. More... | |
virtual int | Interface (int) |
virtual int | CanHaveInterface () |
virtual void | DeleteInterfaces () |
REAL | MeanSolution (int var) |
Returns total mass contained into the element. More... | |
void | CalcIntegral (TPZElementMatrix &ef) |
Computes the integral over the finite element. More... | |
data access methods | |
Methods which allow to access the internal data structure of the element | |
virtual void | Print (std::ostream &out=std::cout) const override |
Prints the relevant data of the element to the output stream. More... | |
int | NShapeF () const override |
Returns the total number of shapefunctions. More... | |
int | NSideShapeF (int side) const |
Returns the number of shape functions on a side. More... | |
virtual int | NSideConnects (int iside) const override=0 |
Returns the number of dof nodes along side iside. More... | |
virtual int | SideConnectLocId (int icon, int is) const override=0 |
Returns the local node number of icon along is. More... | |
virtual int | MidSideConnectLocId (int is) const |
Returns the local id of the connect in the middle of the side. More... | |
virtual TPZConnect & | MidSideConnect (int is) const |
Returns a reference to the connect in the middle of the side. More... | |
int64_t | SideConnectIndex (int icon, int is) const |
Returns the index of the c th connect object along side is. More... | |
TPZConnect & | SideConnect (int icon, int is) |
Returns a pointer to the icon th connect object along side is. More... | |
virtual int | Dimension () const override=0 |
Returns the dimension of the element. More... | |
virtual int | NCornerConnects () const =0 |
Returns the number of corner connects of the element. More... | |
virtual int | NConnects () const override=0 |
Returns the number of connect objects of the element. More... | |
virtual void | BuildCornerConnectList (std::set< int64_t > &connectindexes) const override |
adds the connect indexes associated with base shape functions to the set More... | |
virtual void | GetInterpolationOrder (TPZVec< int > &ord)=0 |
Identifies the interpolation order of all connects of the element different from the corner connects. More... | |
virtual int | PreferredSideOrder (int iside)=0 |
Returns the preferred order of the polynomial along side iside. More... | |
int | AdjustPreferredSideOrder (int side, int order) |
Adjusts the preferredSideOrder for faces. More... | |
virtual int | EffectiveSideOrder (int side) const =0 |
Returns the actual interpolation order of the polynomial along the side. More... | |
bool | VerifyConstraintConsistency (int side, TPZCompElSide large) const |
return true if the connects associated with the side have dependency with large and if the dependency dimensions match More... | |
Data modification methods | |
These methods which will modify the local datastructure of the element | |
virtual void | SetConnectIndex (int i, int64_t connectindex) override=0 |
Sets the node pointer of node i to nod. More... | |
virtual void | SetIntegrationRule (int order) override |
virtual void | SetPreferredOrder (int order) override=0 |
Sets the preferred interpolation order along a side. More... | |
virtual void | SetSideOrder (int side, int order)=0 |
Sets the interpolation order of side to order. More... | |
virtual void | ForceSideOrder (int side, int order) |
Impose an interpolation order on a given side (without using computesideorder) More... | |
Computational methods | |
Methods used to perform computations on the interpolated element | |
virtual void | SideShapeFunction (int side, TPZVec< REAL > &point, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) override=0 |
Compute the values of the shape function along the side. More... | |
Post processing methods | |
The TPZInterpolatedElement class provides the user with a variety of methods for post-processing | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) override |
Computes solution and its derivatives in the local coordinate qsi. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data) override |
Compute shape functions based on master element in the classical FEM manne. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphix, const TPZFMatrix< REAL > &axes, TPZSolVec &sol, TPZGradSolVec &dsol) override |
Computes solution and its derivatives in local coordinate qsi. More... | |
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. This method will function for both volumetric and interface elements. More... | |
virtual REAL | CompareElement (int var, char *matname) override |
Compare the L2 norm of the difference between the švarš solution of the current element with the švarš solution of the element which is pointed to by the geometric element. More... | |
Data consistency methods | |
These methods are used during the debugging phase and check the consistency of the data structures | |
void | CheckConstraintConsistency (int side) |
Check the consistency of the constrained connects along a side. More... | |
void | CheckConstraintConsistency () |
Check the consistency of the constrained connects for all sides. More... | |
virtual int | CheckElementConsistency () |
Checks element data structure consistancy. More... | |
int | CompareShapeF (int sides, int sidel, TPZFMatrix< REAL > &phis, TPZFMatrix< REAL > &dphis, TPZFMatrix< REAL > &phil, TPZFMatrix< REAL > &dphil, TPZTransform<> &transform) |
Compare the shape functions of sides of an element. More... | |
virtual TPZTransform | TransformSideToElement (int side)=0 |
Returns the transformation which transform a point from the side to the interior of the element. More... | |
Public Member Functions inherited from TPZInterpolationSpace | |
TPZInterpolationSpace () | |
Default constructor. More... | |
virtual | ~TPZInterpolationSpace () |
Default destructor. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace ©) | |
Puts a copy of the element in the referred mesh. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace ©, std::map< int64_t, int64_t > &gl2lcElMap) | |
Puts a copy of the element in the patch mesh. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace ©, int64_t &index) | |
Copy of the element in the new mesh whit alocated index. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
Create a computational element within mesh. More... | |
virtual void | ComputeShape (TPZVec< REAL > &intpoint, TPZMaterialData &data) |
Compute shape functions based on master element in the classical FEM manne. More... | |
virtual void | InitMaterialData (TPZMaterialData &data) |
Initialize a material data and its attributes based on element dimension, number of state variables and material definitions. More... | |
virtual void | ComputeRequiredData (TPZMaterialData &data, TPZVec< REAL > &qsi) |
Compute and fill data with requested attributes. More... | |
virtual void | ComputeRequiredData (TPZVec< REAL > &intpointtemp, TPZVec< TPZTransform< REAL > > &trvec, TPZVec< TPZMaterialData > &datavec) |
Compute and fill data with requested attributes for each of the compels in fElementVec. More... | |
virtual void | ComputeNormal (TPZMaterialData &data) |
Computes the proper normal vector towards the neighbour element. More... | |
void | VectorialProd (TPZVec< REAL > &ivec, TPZVec< REAL > &jvec, TPZVec< REAL > &kvec, bool unitary=false) |
Computes the vectorial product of two vectors and normalize the result if unitary is set to true. More... | |
virtual void | CalcStiff (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
Computes the element stiffness matrix and right hand side. More... | |
virtual void | CalcResidual (TPZElementMatrix &ef) override |
Only computes the element residual. More... | |
virtual void | InitializeElementMatrix (TPZElementMatrix &ek, TPZElementMatrix &ef) |
Initialize element matrix in which is computed CalcStiff. More... | |
virtual void | InitializeElementMatrix (TPZElementMatrix &ef) |
Initialize element matrix in which is computed in CalcResidual. More... | |
void | MinMaxSolutionValues (TPZVec< STATE > &min, TPZVec< STATE > &max) |
Returns minimum and maximum values for each state variable. More... | |
virtual const TPZIntPoints & | GetIntegrationRule () const override=0 |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual TPZIntPoints & | GetIntegrationRule ()=0 |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual REAL | InnerRadius () |
Returns the inner radius value. More... | |
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. More... | |
void | InterpolateSolution (TPZInterpolationSpace &coarsel) |
Interpolates the solution into the degrees of freedom nodes from the degrees of freedom nodes from the coarse element. More... | |
void | CreateInterfaces (bool BetweenContinuous=false) |
Create interfaces between this and its neighbours. More... | |
TPZInterfaceElement * | CreateInterface (int side, bool BetweenContinuous=false) |
Create an interface between this and the neighbour by side side. More... | |
int | ExistsInterface (TPZGeoElSide geosd) |
Verify existence of interface. More... | |
void | RemoveInterfaces () |
Remove interfaces connected to this element. More... | |
void | RemoveInterface (int side) |
Remove interface which is neighbour from side side. More... | |
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. More... | |
virtual void | ComputeError (int errorid, TPZVec< REAL > &error) override |
Computes the element error estimator. More... | |
virtual TPZVec< STATE > | IntegrateSolution (int variable) const override |
Integrate a variable over the element. More... | |
virtual void | Integrate (int variable, TPZVec< STATE > &value) override |
Integrates a variable over the element. More... | |
void | ProjectFlux (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
Integrate the solution over the element. More... | |
virtual int | GetPreferredOrder () |
Returns the prefered order for the element. More... | |
virtual int | GetSideOrient (int side) |
It returns the normal orientation of the reference element by the side. Only side that has dimension larger than zero and smaller than me. More... | |
virtual void | SetSideOrient (int side, int sideorient) |
It set the normal orientation of the element by the side. Only side that has dimension equal to my dimension minus one. More... | |
void | BuildTransferMatrix (TPZInterpolationSpace &coarsel, TPZTransform<> &t, TPZTransfer< STATE > &transfer) |
Accumulates the transfer coefficients between the current element and the coarse element into the transfer matrix, using the transformation t. More... | |
int | NSideShapeF (int side) const |
Returns the number of shape functions on a side. More... | |
int64_t | SideConnectIndex (int icon, int is) const |
Returns the index of the c th connect object along side is. More... | |
TPZConnect & | SideConnect (int icon, int is) const |
Returns a pointer to the icon th connect object along side is. More... | |
virtual int | NConnectShapeF (int icon, int order) const =0 |
Returns the number of shapefunctions associated with a connect. More... | |
virtual int | MaxOrder () |
Returns the max order of interpolation. More... | |
virtual void | AdjustIntegrationRule () |
Adjust the integration rule according to the polynomial order of shape functions. More... | |
virtual int | ComputeIntegrationOrder () const override |
Compute integration order according to ... . More... | |
virtual void | Shape (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphidxi)=0 |
Computes the shape function set at the point x. More... | |
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. More... | |
Public Member Functions inherited from TPZCompEl | |
TPZCompEl () | |
Simple Constructor. More... | |
virtual | ~TPZCompEl () |
Simple destructor. More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh) const =0 |
Method for creating a copy of the element. More... | |
virtual TPZCompEl * | ClonePatchEl (TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const =0 |
Method for creating a copy of the element in a patch mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©) | |
Put a copy of the element in the referred mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©, std::map< int64_t, int64_t > &gl2lcElMap) | |
Put a copy of the element in the patch mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©, int64_t &index) | |
Copy of the element in the new mesh returning allocated index. More... | |
TPZCompEl (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
Creates a computational element within mesh. Inserts the element within the data structure of the mesh. More... | |
virtual REAL | VolumeOfEl () |
Returns the volume of the geometric element associated. More... | |
virtual void | LoadElementReference () |
Loads the geometric element reference. More... | |
virtual void | Assemble () |
Computes the element stifness matrix and right hand side in an internal data structure. Used for initializing condensed element data structures. More... | |
virtual bool | HasMaterial (const std::set< int > &materialids) const |
Verifies if the material associated with the element is contained in the set. More... | |
virtual void | CreateGraphicalElement (TPZGraphMesh &graphmesh, int dimension) |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files. More... | |
virtual void | GetMemoryIndices (TPZVec< int64_t > &indices) const |
Get the indices of the vector of element memory associated with the integration points. More... | |
virtual void | SetMemoryIndices (TPZVec< int64_t > &indices) |
Set the indices of the vector of element memory associated with the integration points. More... | |
virtual void | PrepareIntPtIndices () |
Prepare the vector of the material withmem with the correct integration point indexes. More... | |
virtual void | ForcePrepareIntPtIndices () |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class. More... | |
virtual void | SetFreeIntPtIndices () |
Frees the material damage varibles memory in the proper material class. More... | |
virtual int | NumberOfCompElementsInsideThisCompEl () |
Return the size of the elementvec in multiphysics, if it is not multiphysics, just return 1. More... | |
virtual void | TransferMultiphysicsElementSolution () |
virtual void | SetMultiphysicsElementSolution () |
virtual std::list< TPZOneShapeRestraint > | GetShapeRestraints () const |
Return a list with the shape restraints. More... | |
virtual void | ResetShapeRestraints () |
Return a list with the shape restraints. More... | |
virtual TPZVec< STATE > | IntegrateSolution (const std::string &varname, const std::set< int > &matids) |
Compute the integral of a variable defined by the string if the material id is included in matids. More... | |
virtual void | BuildConnectList (std::set< int64_t > &indepconnectlist, std::set< int64_t > &depconnectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (TPZStack< int64_t > &connectlist) const |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (std::set< int64_t > &connectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual int | HasDependency () |
Returns 1 if the element has at least one dependent node. Returns 0 otherwise. More... | |
virtual int | PressureConnectIndex () const |
Returns the index of the pressure connect. More... | |
virtual void | ReduceInternalNodes () |
Domain Decomposition. This method will eliminate the nodes which are internal to the element from the datastructure of the grid After calling this method, the superelement will statically condense the internal equations. More... | |
virtual void | CalcBlockDiagonal (TPZStack< int64_t > &connectlist, TPZBlockDiagonal< STATE > &block) |
Calculates the diagonal block. More... | |
REAL | MaximumRadiusOfEl () |
Will return the maximum distance between the nodes of the reference element. More... | |
REAL | LesserEdgeOfEl () |
Will return the smallest distance between two nodes of the reference element. More... | |
virtual void | InitializeIntegrationRule () |
virtual void | SetIntegrationRule (TPZIntPoints *intrule) |
Method to set a dynamically allocated integration rule. More... | |
virtual MElementType | Type () |
Return the type of the element. More... | |
virtual int | IsInterface () |
TPZGeoEl * | Reference () const |
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise. More... | |
void | SetReference (int64_t referenceindex) |
virtual bool | NeedsComputing (const std::set< int > &materialids) |
return true if the element has a variational statement associated with the material ids More... | |
virtual int | NEquations () |
Returns the number of equations of the element. More... | |
int64_t | Index () const |
Returns element index of the mesh fELementVec list. More... | |
void | SetIndex (int64_t index) |
Sets element index of the mesh fELementVec list. More... | |
virtual int64_t | ConnectIndex (int i) const =0 |
Returns the index of the ith connectivity of the element. More... | |
virtual TPZConnect & | Connect (int i) const |
Returns a pointer to the ith node. More... | |
virtual TPZMaterial * | Material () const |
Identify the material object associated with the element. More... | |
TPZGeoEl * | GetRefElPatch () |
Returns the reference geometric element patch. Look for a geometric element which refers to a computational element and is neighbour of the current element AND is larger than the current element. More... | |
virtual void | LoadSolution () |
Loads the solution within the internal data structure of the element. More... | |
void | SetMesh (TPZCompMesh *mesh) |
Sets the grid of the element. More... | |
TPZCompMesh * | Mesh () const |
Return a pointer to the grid of the element. More... | |
virtual void | PrintSolution (TPZVec< REAL > &point, const char *VarName, std::ostream &out) |
Prints the solution - sol - for the variable "VarName" at point specified in terms of the master element coordinates. More... | |
virtual void | PrintCoordinate (TPZVec< REAL > &point, int CoordinateIndex, std::ostream &out) |
Prints one coordinate index corresponding to the point to the output stream. More... | |
virtual void | PrintTitle (const char *VarName, std::ostream &out) |
Prints the variables names associated with the element material. More... | |
Public Member Functions inherited from TPZSavable | |
TPZSavable () | |
virtual | ~TPZSavable () |
virtual std::list< std::map< std::string, uint64_t > > | VersionHistory () const |
virtual std::pair< std::string, uint64_t > | Version () const |
virtual bool | Compare (TPZSavable *copy, bool override=false) |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
virtual bool | Compare (TPZSavable *copy, bool override=false) const |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
Public Member Functions inherited from TPZRegisterClassId | |
template<typename T > | |
TPZRegisterClassId (int(T::*)() const) | |
TPZRegisterClassId ()=default | |
Protected Member Functions | |
void | UpdateNeighbourSideOrder (int side, TPZVec< TPZCompElSide > &elvec) |
Updates the interpolation order of all neighbouring elements along side to have side order equal to the side order of the current element. More... | |
Protected Member Functions inherited from TPZInterpolationSpace | |
void | ExpandShapeFunctions (TPZVec< int64_t > &connectlist, TPZVec< int > &dependencyorder, TPZVec< int > &blocksizes, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Auxiliary method to expand a vector of shapefunctions and their derivatives to acount for constraints. More... | |
Static Protected Member Functions | |
static int | ComputeSideOrder (TPZVec< TPZCompElSide > &elementset) |
Computes the minimum interpolation order of the elements contained in elementset this method is used to identify the side order of a set of equal level elements. More... | |
Adaptivity methods | |
enum | MInsertMode { EInsert, EDelete } |
Defines a flag indicating the state of creation/deletion of the element This has an impact on how constraints are being computed. More... | |
void | Divide (int64_t index, TPZVec< int64_t > &sub, int interpolatesolution=0) override |
Implement the refinement of an interpolated element. More... | |
void | PRefine (int order) override |
Changes the interpolation order of a side. Updates all constraints and block sizes . More... | |
virtual void | RestrainSide (int side, TPZInterpolatedElement *neighbour, int neighbourside) |
Compute the shapefunction restraints which need to be applied to the shape functions on the side of the element. More... | |
virtual void | RemoveSideRestraintsII (MInsertMode mode) |
Delete the restraints on the nodes of the connected elements if necessary. More... | |
virtual void | RemoveSideRestraintWithRespectTo (int side, const TPZCompElSide &neighbour) |
Removes the side restraints of the current element along side with respect to neighbour/side. More... | |
void | RecomputeRestraints (int side) |
Will recompute the restraints of all connects which are restrained by this side. More... | |
virtual void | AddShapeRestraint (TPZOneShapeRestraint restraint) override |
Add a shape restraint (meant to fit the pyramid to restraint. More... | |
virtual void | BuildTransferMatrix (TPZInterpolatedElement &coarsel, TPZTransform<> &t, TPZTransfer< STATE > &transfer) |
Accumulates the transfer coefficients between the current element and the coarse element into the transfer matrix, using the transformation t. More... | |
virtual int64_t | CreateMidSideConnect (int side) |
Verify the neighbours of the element and create a node along this side. More... | |
virtual void | IdentifySideOrder (int side) |
Checks if the side order is consistent with the preferred side order and with the constraints and recomputes the constraints if necessary. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from TPZInterpolationSpace | |
static void | Convert2Axes (const TPZFMatrix< REAL > &dphi, const TPZFMatrix< REAL > &jacinv, TPZFMatrix< REAL > &dphidx) |
convert a shapefunction derivative in xi-eta to a function derivative in axes More... | |
Static Public Member Functions inherited from TPZCompEl | |
static int | StaticClassId () |
static void | SetgOrder (int order) |
Sets the value of the default interpolation order. More... | |
static int | GetgOrder () |
Set the default value of the interpolation order. More... | |
static void | SetOrthogonalFunction (void(*orthogonal)(REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)) |
Sets the orthogonal function which will be used throughout the program by default this function is the Chebyshev function. More... | |
static void | Chebyshev (REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Implements of the orthogonal Chebyshev functions. More... | |
Static Public Member Functions inherited from TPZSavable | |
static std::set< TPZRestoreClassBase * > & | RestoreClassSet () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::map< int, TPZRestore_t > & | ClassIdMap () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::pair< std::string, uint64_t > | NeoPZVersion () |
static void | Register (TPZRestoreClassBase *restore) |
static void | RegisterClassId (int classid, TPZRestore_t fun) |
static TPZSavable * | CreateInstance (const int &classId) |
Protected Attributes inherited from TPZInterpolationSpace | |
int | fPreferredOrder |
Preferred polynomial order. More... | |
Protected Attributes inherited from TPZCompEl | |
TPZCompMesh * | fMesh |
Computational mesh to which the element belongs. More... | |
int64_t | fIndex |
Element index into mesh element vector. More... | |
TPZIntPoints * | fIntegrationRule |
Integration rule established by the user. More... | |
Implements computational element based on an interpolation space. Computational Element.
All h and p adaptive methods are implemented in this class
derived classes need to implement the behaviour (interface) defined in this class
this makes the adaptive process extremely general
TPZInterpolatedElement::TPZInterpolatedElement | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | reference, | ||
int64_t & | index | ||
) |
Constructor with a mesh and geometric element as arguments.
mesh | mesh object into which the element will insert itself |
reference | reference object to which this element will refer |
index | index in the vector of elements of mesh where this element was inserted |
Definition at line 42 of file pzintel.cpp.
TPZInterpolatedElement::TPZInterpolatedElement | ( | TPZCompMesh & | mesh, |
const TPZInterpolatedElement & | copy | ||
) |
Constructor aimed at creating a copy of an interpolated element within a new mesh.
Definition at line 46 of file pzintel.cpp.
TPZInterpolatedElement::TPZInterpolatedElement | ( | TPZCompMesh & | mesh, |
const TPZInterpolatedElement & | copy, | ||
std::map< int64_t, int64_t > & | gl2lcElMap | ||
) |
Copy the given element into a new patch mesh.
mesh | patch mesh |
copy | element to be copied |
gl2lcElMap | map the indexes of the orginal mesh to the pacht mesh |
Definition at line 50 of file pzintel.cpp.
TPZInterpolatedElement::TPZInterpolatedElement | ( | ) |
Definition at line 56 of file pzintel.cpp.
|
virtual |
Destructor, does nothing.
Definition at line 60 of file pzintel.cpp.
|
inlineoverridevirtual |
Add a shape restraint (meant to fit the pyramid to restraint.
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElHDivBound2< TSHAPE >, and TPZCompElHDiv< TSHAPE >.
Definition at line 362 of file pzintel.h.
References BuildTransferMatrix(), CheckConstraintConsistency(), CheckElementConsistency(), CompareShapeF(), CreateMidSideConnect(), DebugStop, IdentifySideOrder(), and TransformSideToElement().
Referenced by TPZCompMeshTools::AddHDivPyramidRestraints().
int TPZInterpolatedElement::AdjustPreferredSideOrder | ( | int | side, |
int | order | ||
) |
Adjusts the preferredSideOrder for faces.
side | : side for which the order needs adjustment |
order | : original order which has to be compared with the sides |
Definition at line 1755 of file pzintel.cpp.
References TPZCompMesh::Block(), TPZMatrix< TVar >::Cols(), TPZInterpolationSpace::ComputeShape(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), DebugStop, Dimension(), TPZGeoElSide::Dimension(), fabs, fastAccessDx(), TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZVec< T >::Fill(), TPZElementMatrix::fMat, TPZInterpolationSpace::GetIntegrationRule(), TPZGeoElSide::HigherLevelCompElementList2(), LOGPZ_ERROR, LOGPZ_WARN, TPZGeoEl::LowerDimensionSides(), TPZCompEl::Material(), TPZCompEl::Mesh(), MidSideConnect(), MidSideConnectLocId(), NConnects(), TPZInterpolationSpace::NConnectShapeF(), TPZVec< T >::NElements(), TPZIntPoints::NPoints(), TPZConnect::NShape(), NShapeF(), TPZConnect::NState(), TPZMaterial::NStateVariables(), TPZConnect::Order(), TPZIntPoints::Point(), TPZBlock< TVar >::Position(), TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZElementMatrix::Reset(), TPZManVector< T, NumExtAlloc >::Resize(), TPZMatrix< TVar >::Rows(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZBlock< TVar >::SetNBlocks(), TPZGeoEl::SideDimension(), TPZBlock< TVar >::Size(), TPZVec< T >::size(), TPZCompMesh::Solution(), and val().
Referenced by TPZIntelGen< TSHAPE >::PreferredSideOrder(), and TPZCompElHDivBound2< TSHAPE >::PreferredSideOrder().
|
overridevirtual |
adds the connect indexes associated with base shape functions to the set
Implements TPZCompEl.
Definition at line 2053 of file pzintel.cpp.
References TPZCompEl::ConnectIndex(), and NCornerConnects().
|
virtual |
Accumulates the transfer coefficients between the current element and the coarse element into the transfer matrix, using the transformation t.
coarsel | larger element with respect to which the transfer matrix is computed |
t | transformation which maps the master element space of the current element into the master element space of the coarse element |
transfer | transfer matrix mapping the solution of the coarse mesh into the fine meshThis method forms the basis for the multigrid method |
Definition at line 447 of file pzintel.cpp.
References TPZTransfer< TVar >::AddBlockNumbers(), TPZTransform< T >::Apply(), TPZCompEl::BuildConnectList(), TPZConnect::BuildDependencyOrder(), TPZIntPoints::Clone(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZCompMesh::ConnectVec(), DebugStop, dimension, Dimension(), ELDLt, TPZInterpolationSpace::ExpandShapeFunctions(), TPZInterpolationSpace::GetIntegrationRule(), GetInterpolationOrder(), TPZIntPoints::GetOrder(), TPZMatrix< TVar >::GetSub(), TPZConnect::HasDependency(), TPZCompEl::HasDependency(), TPZTransfer< TVar >::HasRowDefinition(), TPZGeoEl::Jacobian(), LOGPZ_ERROR, TPZCompEl::Material(), TPZCompEl::Mesh(), MidSideConnect(), NConnects(), NCornerConnects(), TPZVec< T >::NElements(), Norm(), TPZIntPoints::NPoints(), TPZConnect::NShape(), NShapeF(), TPZMaterial::NStateVariables(), TPZConnect::Order(), TPZIntPoints::Point(), TPZBlock< TVar >::Position(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), TPZBlock< TVar >::Resequence(), TPZManVector< T, NumExtAlloc >::Resize(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZTransfer< TVar >::SetBlockMatrix(), TPZIntPoints::SetOrder(), TPZInterpolationSpace::Shape(), TPZBlock< TVar >::Size(), TPZMatrix< TVar >::SolveDirect(), pzgeom::tol, TPZGeoEl::X(), and TPZFMatrix< TVar >::Zero().
Referenced by AddShapeRestraint().
void TPZInterpolatedElement::CalcIntegral | ( | TPZElementMatrix & | ef | ) |
Computes the integral over the finite element.
Compute the contribution to stiffness matrix and load vector on the element
Definition at line 1674 of file pzintel.cpp.
References TPZCompMesh::Block(), TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), DebugStop, Dimension(), fabs, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZElementMatrix::fMat, TPZInterpolationSpace::GetIntegrationRule(), TPZGeoEl::Jacobian(), LOGPZ_ERROR, TPZCompEl::Material(), TPZCompEl::Mesh(), NConnects(), TPZInterpolationSpace::NConnectShapeF(), TPZIntPoints::NPoints(), TPZConnect::NShape(), NShapeF(), TPZConnect::NState(), TPZMaterial::NStateVariables(), TPZConnect::Order(), TPZIntPoints::Point(), TPZBlock< TVar >::Position(), TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZElementMatrix::Reset(), TPZManVector< T, NumExtAlloc >::Resize(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZBlock< TVar >::SetNBlocks(), TPZInterpolationSpace::Shape(), TPZBlock< TVar >::Size(), TPZCompMesh::Solution(), and TPZGeoEl::X().
Referenced by DeleteInterfaces().
|
inlinevirtual |
void TPZInterpolatedElement::CheckConstraintConsistency | ( | int | side | ) |
Check the consistency of the constrained connects along a side.
Definition at line 1215 of file pzintel.cpp.
References TPZCompEl::ConnectIndex(), TPZCompElSide::Element(), TPZCompElSide::Exists(), TPZConnect::TPZDepend::fDepConnectIndex, TPZConnect::FirstDepend(), TPZConnect::TPZDepend::fNext, TPZConnect::HasDependency(), LOGPZ_ERROR, TPZCompElSide::LowerLevelElementList(), TPZCompEl::Mesh(), NSideConnects(), Print(), TPZConnect::Print(), TPZCompElSide::Side(), SideConnect(), and SideConnectIndex().
Referenced by Divide().
void TPZInterpolatedElement::CheckConstraintConsistency | ( | ) |
Check the consistency of the constrained connects for all sides.
Definition at line 1087 of file pzintel.cpp.
References TPZGeoEl::NSides(), and TPZCompEl::Reference().
Referenced by AddShapeRestraint(), and RestrainSide().
|
virtual |
Checks element data structure consistancy.
Definition at line 1093 of file pzintel.cpp.
References TPZGeoEl::AllHigherDimensionSides(), TPZTransform< T >::Apply(), CompareShapeF(), TPZCompEl::Connect(), TPZGeoEl::CreateSideIntegrationRule(), Dimension(), TPZGeoElSide::Dimension(), EffectiveSideOrder(), TPZGeoElSide::Element(), LOGPZ_INFO, LOGPZ_WARN, TPZCompEl::Material(), TPZCompEl::Mesh(), NConnects(), TPZVec< T >::NElements(), TPZIntPoints::NPoints(), TPZConnect::NShape(), TPZGeoEl::NSides(), NSideShapeF(), TPZMaterial::NStateVariables(), TPZIntPoints::Point(), TPZCompEl::Reference(), TPZCompElSide::Reference(), and SideShapeFunction().
Referenced by AddShapeRestraint(), and TPZCheckMesh::CheckConnectOrderConsistency().
|
overridevirtual |
Define the class id associated with the class.
This id has to be unique for all classes A non unique id is flagged at the startup of the program
Reimplemented from TPZInterpolationSpace.
Definition at line 1935 of file pzintel.cpp.
References TPZInterpolationSpace::ClassId(), and Hash().
Referenced by TPZIntelGen< TSHAPE >::ClassId().
|
overridevirtual |
Compare the L2 norm of the difference between the švarš solution of the current element with the švarš solution of the element which is pointed to by the geometric element.
var | variable index indicating which difference is being integrated |
matname | reference material name In order to use this method, call ResetReference on the geometric mesh to which the geometric reference element belongs and call LoadReference on the mesh of the element with which to compare the solution This method only computes the error is the name of the material is matname |
Reimplemented from TPZCompEl.
Definition at line 1487 of file pzintel.cpp.
References Dimension(), error(), fabs, TPZInterpolationSpace::GetIntegrationRule(), TPZGeoEl::Jacobian(), LOGPZ_ERROR, TPZCompEl::Material(), TPZMaterial::Name(), TPZIntPoints::NPoints(), TPZMaterial::NSolutionVariables(), TPZIntPoints::Point(), PZError, TPZCompEl::Reference(), TPZGeoEl::Reference(), TPZInterpolationSpace::Solution(), and TPZCompEl::Solution().
Referenced by SetIntegrationRule().
int TPZInterpolatedElement::CompareShapeF | ( | int | sides, |
int | sidel, | ||
TPZFMatrix< REAL > & | phis, | ||
TPZFMatrix< REAL > & | dphis, | ||
TPZFMatrix< REAL > & | phil, | ||
TPZFMatrix< REAL > & | dphil, | ||
TPZTransform<> & | transform | ||
) |
Compare the shape functions of sides of an element.
sides | small side |
sidel | large side |
phis | small side function values |
dphis | small side gradient function values |
phil | large side function values |
dphil | large side gradient function values |
transform | transformation matrix from large side to small side |
Definition at line 1167 of file pzintel.cpp.
References TPZCompEl::Connect(), LOGPZ_ERROR, TPZTransform< T >::Mult(), TPZConnect::NShape(), NSideConnects(), TPZCompEl::Reference(), SideConnectLocId(), and TPZGeoEl::SideDimension().
Referenced by AddShapeRestraint(), and CheckElementConsistency().
|
staticprotected |
Computes the minimum interpolation order of the elements contained in elementset this method is used to identify the side order of a set of equal level elements.
elementset | vector of element/sides which will be used to compute the maximum order |
Definition at line 1371 of file pzintel.cpp.
References LOGPZ_DEBUG, LOGPZ_ERROR, TPZVec< T >::NElements(), and PreferredSideOrder().
Referenced by CreateMidSideConnect(), ForceSideOrder(), and IdentifySideOrder().
|
overridevirtual |
Computes solution and its derivatives in the local coordinate qsi.
Methods for error evaluation
Methods for computing derived post processed values (depending on the variational statement)
qsi | master element coordinate |
sol | finite element solution |
dsol | solution derivatives |
axes | axes indicating the direction of the derivatives |
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZCompElHDivPressure< TSHAPE >.
Definition at line 1956 of file pzintel.cpp.
References TPZGeoEl::Dimension(), TPZGeoEl::Jacobian(), LOGPZ_ERROR, NShapeF(), TPZCompEl::Reference(), and TPZInterpolationSpace::Shape().
Referenced by ComputeSolution(), and SetIntegrationRule().
|
overridevirtual |
Compute shape functions based on master element in the classical FEM manne.
[in] | qsi | point in master element coordinates |
[in] | data | stores all input data |
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZCompElHDivPressure< TSHAPE >.
Definition at line 1949 of file pzintel.cpp.
References TPZMaterialData::axes, ComputeSolution(), TPZMaterialData::dphix, TPZMaterialData::dsol, TPZMaterialData::phi, and TPZMaterialData::sol.
|
overridevirtual |
Computes solution and its derivatives in local coordinate qsi.
qsi | master element coordinate |
phi | matrix containing shape functions compute in qsi point |
dphix | matrix containing the derivatives of shape functions with respect of global coordinates: D[phi,x], D[phi,y], D[phi,z] |
axes | axes indicating the direction of the derivatives |
sol | finite element solution |
dsol | solution derivatives |
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZCompElHDivPressure< TSHAPE >.
Definition at line 2002 of file pzintel.cpp.
References TPZCompMesh::Block(), TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), TPZGeoEl::Dimension(), TPZVec< T >::Fill(), TPZCompEl::Material(), TPZCompEl::Mesh(), NConnects(), TPZMaterial::NStateVariables(), TPZBlock< TVar >::Position(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Size(), and TPZCompMesh::Solution().
|
overridevirtual |
Computes solution and its derivatives in the local coordinate qsi.
This method will function for both volumetric and interface elements.
qsi | master element coordinate of the interface element |
normal | unitary normal vector |
leftsol | finite element solution |
dleftsol | solution derivatives |
leftaxes | axes associated with the left solution |
rightsol | finite element solution |
drightsol | solution derivatives |
rightaxes | axes associated with the right solution |
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElHDiv< TSHAPE >.
Definition at line 2039 of file pzintel.cpp.
References TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::Resize(), and TPZFMatrix< TVar >::Zero().
|
virtual |
Verify the neighbours of the element and create a node along this side.
Definition at line 654 of file pzintel.cpp.
References TPZCompMesh::AllocateNewConnect(), TPZCompMesh::Block(), ComputeSideOrder(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZCompMesh::ConnectVec(), DebugStop, Dimension(), TPZGeoElSide::Dimension(), EffectiveSideOrder(), TPZCompElSide::Element(), TPZCompElSide::EqualLevelElementList(), TPZCompElSide::Exists(), TPZCompMesh::GetDefaultOrder(), TPZConnect::HasDependency(), TPZCompElSide::HigherLevelElementList(), IdentifySideOrder(), LOGPZ_ERROR, TPZCompElSide::LowerLevelElementList(), TPZCompEl::Material(), TPZGeoEl::MaterialId(), TPZCompEl::Mesh(), MidSideConnect(), MidSideConnectLocId(), TPZInterpolationSpace::NConnectShapeF(), NCornerConnects(), TPZVec< T >::NElements(), TPZMaterial::NStateVariables(), TPZConnect::Order(), PreferredSideOrder(), TPZConnect::Print(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), TPZCompElSide::Reference(), RemoveSideRestraintWithRespectTo(), TPZGeoEl::ResetReference(), TPZManVector< T, NumExtAlloc >::Resize(), RestrainSide(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), SetConnectIndex(), TPZConnect::SetNShape(), TPZGeoEl::SetReference(), SetSideOrder(), and TPZCompElSide::Side().
Referenced by AddShapeRestraint(), TPZCompElHDiv< TSHAPE >::TPZCompElHDiv(), TPZCompElHDivBound2< TSHAPE >::TPZCompElHDivBound2(), TPZCompElHDivPressureBound< TSHAPE >::TPZCompElHDivPressureBound(), and TPZIntelGen< TSHAPE >::TPZIntelGen().
|
inlinevirtual |
Definition at line 437 of file pzintel.h.
References CalcIntegral(), and MeanSolution().
|
overridepure virtual |
Returns the dimension of the element.
Implements TPZCompEl.
Implemented in TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by AdjustPreferredSideOrder(), BuildTransferMatrix(), CalcIntegral(), CheckElementConsistency(), CompareElement(), CreateMidSideConnect(), TPZMGAnalysis::ElementError(), ForceSideOrder(), MeanSolution(), Print(), and RecomputeRestraints().
|
overridevirtual |
Implement the refinement of an interpolated element.
index | [in] index of the current element in the mesh |
sub | [out] indices of the subelements (they are already inserted in the mesh) |
interpolatesolution | [in] if == 1 the solution of the original element is projected on the solution of the subelements |
Implement the refinement of an interpolated element
Reimplemented from TPZCompEl.
Definition at line 1396 of file pzintel.cpp.
References TPZCheckMesh::CheckConnectOrderConsistency(), CheckConstraintConsistency(), TPZCompMesh::CreateCompEl(), TPZGeoEl::Divide(), EDelete, TPZCompMesh::ElementVec(), EPoint, TPZCompMesh::ExpandSolution(), TPZCompEl::fMesh, TPZCompEl::Index(), TPZGeoEl::Index(), TPZInterpolationSpace::InterpolateSolution(), LOGPZ_DEBUG, LOGPZ_ERROR, LOGPZ_WARN, TPZCompEl::Mesh(), NConnects(), TPZVec< T >::NElements(), TPZGeoEl::NSides(), TPZGeoEl::NSubElements(), PreferredSideOrder(), TPZCompEl::Reference(), TPZInterpolationSpace::RemoveInterfaces(), RemoveSideRestraintsII(), TPZGeoEl::ResetReference(), TPZVec< T >::Resize(), TPZCompMesh::SetAllCreateFunctions(), TPZCompMesh::SetDefaultOrder(), and TPZCompEl::Type().
Referenced by TPZAnalysisError::HPAdapt(), SetIntegrationRule(), and TPZAnalysisError::ZoomInSingularity().
|
pure virtual |
Returns the actual interpolation order of the polynomial along the side.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZIntelGen< TSHAPE >, and TPZCompElHDivBound2< TSHAPE >.
Referenced by CheckElementConsistency(), CreateMidSideConnect(), TPZAnalysisError::HPAdapt(), IdentifySideOrder(), RecomputeRestraints(), RestrainSide(), and VerifyConstraintConsistency().
|
virtual |
Impose an interpolation order on a given side (without using computesideorder)
Definition at line 114 of file pzintel.cpp.
References ComputeSideOrder(), TPZCompEl::ConnectIndex(), DebugStop, dimension, Dimension(), TPZGeoElSide::Dimension(), TPZCompElSide::EqualLevelElementList(), TPZCompElSide::Exists(), TPZCompElSide::HigherLevelElementList(), IdentifySideOrder(), LOGPZ_ERROR, LOGPZ_INFO, TPZCompElSide::LowerLevelElementList(), MidSideConnect(), MidSideConnectLocId(), TPZVec< T >::NElements(), TPZConnect::Order(), TPZStack< T, NumExtAlloc >::Push(), RecomputeRestraints(), TPZCompEl::Reference(), TPZCompElSide::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), and SetSideOrder().
Referenced by SetIntegrationRule().
|
pure virtual |
Identifies the interpolation order of all connects of the element different from the corner connects.
Note there is a diference between the actual side order returned by this method and the side order which the element naturally would have, which is returned by PreferredSideOrder
ord | vector which will be filled with the side orders of the element |
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by BuildTransferMatrix(), and TPZMGAnalysis::ElementError().
|
virtual |
Checks if the side order is consistent with the preferred side order and with the constraints and recomputes the constraints if necessary.
Calls IdentifySideOrder on higher level (i.e. smaller) connected elements recursively
comparte the fPreferred Orders of the neighbouring elements
if the dimension of the side = 0 there will be no smaller connects depending on it
Now we will look at the smaller connects
Definition at line 216 of file pzintel.cpp.
References ComputeSideOrder(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), DebugStop, dimension, TPZGeoElSide::Dimension(), EffectiveSideOrder(), TPZCompElSide::Element(), TPZCompElSide::EqualLevelElementList(), TPZCompElSide::Exists(), TPZCompEl::HasDependency(), TPZCompElSide::HigherLevelElementList(), IdentifySideOrder(), TPZConnect::LagrangeMultiplier(), LOGPZ_WARN, TPZCompElSide::LowerLevelElementList(), TPZCompEl::Mesh(), MidSideConnect(), MidSideConnectLocId(), TPZVec< T >::NElements(), TPZConnect::Order(), TPZConnect::Print(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), TPZCompElSide::Reference(), RemoveSideRestraintWithRespectTo(), RestrainSide(), SetSideOrder(), TPZCompElSide::Side(), TPZGeoEl::SideDimension(), TPZVec< T >::size(), and VerifyConstraintConsistency().
Referenced by AddShapeRestraint(), CreateMidSideConnect(), ForceSideOrder(), IdentifySideOrder(), TPZCompElHDiv< TSHAPE >::PRefine(), PRefine(), RemoveSideRestraintsII(), TPZCompElHDiv< TSHAPE >::TPZCompElHDiv(), and UpdateNeighbourSideOrder().
|
inlinevirtual |
REAL TPZInterpolatedElement::MeanSolution | ( | int | var | ) |
Returns total mass contained into the element.
Compute the solution value at point integration
Definition at line 1630 of file pzintel.cpp.
References Dimension(), fabs, TPZInterpolationSpace::GetIntegrationRule(), TPZGeoEl::Jacobian(), LOGPZ_ERROR, TPZCompEl::Material(), TPZIntPoints::NPoints(), TPZMaterial::NSolutionVariables(), TPZIntPoints::Point(), TPZCompEl::Reference(), and TPZInterpolationSpace::Solution().
Referenced by DeleteInterfaces().
|
virtual |
Returns a reference to the connect in the middle of the side.
is | side which is being queried |
returns a reference to the connect in the middle of the side
is | side which is being queried |
Definition at line 94 of file pzintel.cpp.
References TPZCompEl::Connect(), DebugStop, MidSideConnectLocId(), and NSideConnects().
Referenced by AdjustPreferredSideOrder(), BuildTransferMatrix(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), CreateMidSideConnect(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZIntelGen< TSHAPE >::EffectiveSideOrder(), ForceSideOrder(), IdentifySideOrder(), TPZVTKGeoMesh::PrintPOrderPoints(), RestrainSide(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), UpdateNeighbourSideOrder(), and VerifyConstraintConsistency().
|
virtual |
Returns the local id of the connect in the middle of the side.
is | side which is being queried |
Definition at line 83 of file pzintel.cpp.
References NSideConnects(), and SideConnectLocId().
Referenced by AdjustPreferredSideOrder(), TPZCompElSide::ConnectIndex(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), CreateMidSideConnect(), ForceSideOrder(), TPZGeoElSide::HigherDimensionElementList(), IdentifySideOrder(), MidSideConnect(), TPZCompElSide::RemoveConnectDuplicates(), RemoveSideRestraintWithRespectTo(), RestrainSide(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), and VerifyConstraintConsistency().
|
overridepure virtual |
Returns the number of connect objects of the element.
Implements TPZCompEl.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by TPZCompMeshTools::AdjustFluxPolynomialOrders(), AdjustPreferredSideOrder(), BuildTransferMatrix(), CalcIntegral(), TPZCheckMesh::CheckConnectOrderConsistency(), TPZCheckMesh::CheckConstraintDimension(), CheckElementConsistency(), TPZCheckMesh::CheckElementShapeDimension(), ComputeSolution(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), Divide(), TPZMGAnalysis::ElementError(), FindCapElement(), TPZMHMixedMeshControl::HybridizeSkeleton(), TPZMGAnalysis::MeshError(), NShapeF(), PRefine(), Print(), and TPZMGAnalysis::UniformlyRefineMesh().
|
pure virtual |
Returns the number of corner connects of the element.
Implemented in TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by BuildCornerConnectList(), BuildTransferMatrix(), CreateMidSideConnect(), and RemoveSideRestraintsII().
|
overridevirtual |
Returns the total number of shapefunctions.
Implements TPZInterpolationSpace.
Definition at line 63 of file pzintel.cpp.
References TPZCompEl::Connect(), NConnects(), TPZInterpolationSpace::NConnectShapeF(), TPZConnect::Order(), and test::res.
Referenced by AdjustPreferredSideOrder(), BuildTransferMatrix(), CalcIntegral(), TPZCompElHDivPressureBound< TSHAPE >::ComputeShapeIndex(), TPZCompElHDivBound2< TSHAPE >::ComputeShapeIndex(), TPZCompElHDiv< TSHAPE >::ComputeShapeIndex(), TPZCompElHDivPressure< TSHAPE >::ComputeSolution(), ComputeSolution(), TPZCompElHDiv< TSHAPE >::ComputeSolution(), TPZMGAnalysis::ElementError(), and TPZCompElHDivBound2< TSHAPE >::IndexShapeToVec().
|
overridepure virtual |
Returns the number of dof nodes along side iside.
Implements TPZInterpolationSpace.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by TPZCompMeshTools::AdjustFluxPolynomialOrders(), CheckConstraintConsistency(), CompareShapeF(), FindCapElement(), TPZCheckMesh::FindElement(), TPZMHMixedHybridMeshControl::GroupElements(), TPZMHMixedMeshControl::HybridizeSkeleton(), TPZDohrStructMatrix::IdentifyExternalConnectIndexes(), TPZCreateApproximationSpace::MakeRaviartThomas(), MidSideConnect(), MidSideConnectLocId(), NSideShapeF(), Print(), TPZVTKGeoMesh::PrintPOrderPoints(), RemoveSideRestraintsII(), RemoveSideRestraintWithRespectTo(), RestrainSide(), TPZCheckRestraint::TPZCheckRestraint(), TPZCreateApproximationSpace::UndoMakeRaviartThomas(), and VerifyConstraintConsistency().
int TPZInterpolatedElement::NSideShapeF | ( | int | side | ) | const |
Returns the number of shape functions on a side.
Definition at line 73 of file pzintel.cpp.
References TPZCompEl::Connect(), TPZInterpolationSpace::NConnectShapeF(), NSideConnects(), TPZConnect::Order(), test::res, and SideConnectLocId().
Referenced by CheckElementConsistency(), RestrainSide(), TPZCompElHDivBound2< TSHAPE >::Shape(), TPZCompElHDiv< TSHAPE >::SideShapeFunction(), and TPZCheckRestraint::TPZCheckRestraint().
|
pure virtual |
Returns the preferred order of the polynomial along side iside.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by TPZCompMesh::AdjustBoundaryElements(), ComputeSideOrder(), TPZFlowCompMesh::ComputeTimeStep(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), CreateMidSideConnect(), Divide(), and TPZMGAnalysis::UniformlyRefineMesh().
|
overridevirtual |
Changes the interpolation order of a side. Updates all constraints and block sizes
.
order | interpolation order which the user requests |
Implements TPZInterpolationSpace.
Definition at line 1592 of file pzintel.cpp.
References TPZCompEl::Connect(), TPZCompEl::fMesh, IdentifySideOrder(), TPZCompEl::Index(), TPZGeoEl::Index(), LOGPZ_DEBUG, TPZGeoEl::Mesh(), TPZCompEl::Mesh(), NConnects(), TPZConnect::Order(), PZError, TPZCompEl::Reference(), TPZCompMesh::Reference(), and SetPreferredOrder().
Referenced by TPZCompMesh::AdjustBoundaryElements(), CreateCompMesh(), TPZAnalysisError::HPAdapt(), TPZHybridizeHDiv::HybridizeInternalSides(), SetIntegrationRule(), TPZCompMeshTools::SetPressureOrders(), TPZMGAnalysis::UniformlyRefineMesh(), and TPZAnalysisError::ZoomInSingularity().
|
overridevirtual |
Prints the relevant data of the element to the output stream.
Reimplemented from TPZInterpolationSpace.
Reimplemented in TPZCompElHDivBound2< TSHAPE >, and TPZCompElHDiv< TSHAPE >.
Definition at line 1528 of file pzintel.cpp.
References TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZGeoNode::Coord(), DebugStop, Dimension(), TPZCompEl::fIndex, TPZInterpolationSpace::GetIntegrationRule(), TPZIntPoints::GetOrder(), TPZMaterial::Id(), TPZCompEl::Material(), NConnects(), TPZInterpolationSpace::NConnectShapeF(), TPZGeoEl::NCornerNodes(), TPZVec< T >::NElements(), TPZGeoEl::NodePtr(), TPZConnect::NShape(), NSideConnects(), TPZGeoEl::NSides(), TPZConnect::Order(), TPZInterpolationSpace::Print(), TPZIntPoints::Print(), TPZCompEl::Reference(), and SideConnectLocId().
Referenced by TPZCheckMesh::CheckConnectOrderConsistency(), CheckConstraintConsistency(), TPZCheckMesh::CheckElementShapeDimension(), TPZCompElHDiv< TSHAPE >::Print(), and TPZCompElHDivBound2< TSHAPE >::Print().
|
overridevirtual |
Reads the element data from a stream.
Read the element data from a stream
Reimplemented from TPZInterpolationSpace.
Definition at line 1945 of file pzintel.cpp.
References TPZInterpolationSpace::Read().
Referenced by TPZIntelGen< TSHAPE >::Read(), TPZCompElHDivPressure< TSHAPE >::Read(), and TPZCompElHDiv< TSHAPE >::Read().
void TPZInterpolatedElement::RecomputeRestraints | ( | int | side | ) |
Will recompute the restraints of all connects which are restrained by this side.
side | side of the large elementThis method will be called for a side when a connected lower dimension side is changing order |
Definition at line 404 of file pzintel.cpp.
References dimension, Dimension(), EffectiveSideOrder(), TPZCompElSide::HigherLevelElementList(), TPZVec< T >::NElements(), TPZCompEl::Reference(), RemoveSideRestraintWithRespectTo(), TPZManVector< T, NumExtAlloc >::Resize(), RestrainSide(), and SetSideOrder().
Referenced by ForceSideOrder().
|
virtual |
Delete the restraints on the nodes of the connected elements if necessary.
mode | indicates insertion or deletion of element |
Definition at line 1286 of file pzintel.cpp.
References TPZGeoEl::Dimension(), EDelete, EInsert, TPZCompElSide::Element(), TPZCompElSide::EqualLevelElementList(), TPZCompElSide::Exists(), TPZCompElSide::HigherLevelElementList(), IdentifySideOrder(), LOGPZ_WARN, TPZCompElSide::LowerLevelElementList(), NCornerConnects(), TPZVec< T >::NElements(), NSideConnects(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZGeoEl::Reference(), RemoveSideRestraintWithRespectTo(), TPZGeoEl::ResetReference(), TPZManVector< T, NumExtAlloc >::Resize(), RestrainSide(), TPZGeoEl::SetReference(), and TPZCompElSide::Side().
Referenced by TPZCompMesh::Coarsen(), Divide(), TPZCompElHDivPressure< TSHAPE >::~TPZCompElHDivPressure(), and TPZIntelGen< TSHAPE >::~TPZIntelGen().
|
virtual |
Removes the side restraints of the current element along side with respect to neighbour/side.
side | side of the current element which contains the constrained connect |
neighbour | element/side with respect to which the connect is restrained This method checks (extensively) if the relative positions between both elements makes sense |
Definition at line 1253 of file pzintel.cpp.
References TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZCompElSide::Element(), TPZCompElSide::Exists(), TPZConnect::HasDependency(), LOGPZ_ERROR, LOGPZ_WARN, TPZCompElSide::LowerLevelElementList(), MidSideConnectLocId(), TPZGeoElSide::NeighbourExists(), NSideConnects(), TPZCompEl::Reference(), TPZCompElSide::Reference(), TPZConnect::RemoveDepend(), TPZCompElSide::Side(), SideConnectIndex(), and TPZGeoEl::SideDimension().
Referenced by CreateMidSideConnect(), IdentifySideOrder(), RecomputeRestraints(), and RemoveSideRestraintsII().
|
virtual |
Compute the shapefunction restraints which need to be applied to the shape functions on the side of the element.
no shape functions to restrain
Definition at line 849 of file pzintel.cpp.
References TPZConnect::AddDependency(), CheckConstraintConsistency(), TPZCheckRestraint::CheckRestraint(), TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZGeoEl::CreateSideIntegrationRule(), DebugStop, TPZCheckRestraint::Diagnose(), TPZGeoElSide::Dimension(), EffectiveSideOrder(), TPZCompElSide::Element(), ELU, EMathematicaInput, TPZCompElSide::Exists(), fabs, TPZConnect::TPZDepend::fDepMatrix, TPZConnect::HasDependency(), LOGPZ_DEBUG, LOGPZ_ERROR, LOGPZ_WARN, MidSideConnect(), MidSideConnectLocId(), TPZInterpolationSpace::NConnectShapeF(), TPZIntPoints::NPoints(), TPZConnect::NShape(), NSideConnects(), NSideShapeF(), TPZConnect::Order(), TPZIntPoints::Point(), TPZBlock< TVar >::Position(), TPZCheckRestraint::Print(), TPZMatrix< TVar >::Print(), TPZCompEl::Reference(), TPZCompElSide::Reference(), TPZBlock< TVar >::Resequence(), TPZCheckRestraint::RestraintMatrix(), TPZMatrix< TVar >::Rows(), TPZBlock< TVar >::Set(), TPZCompElSide::Side(), SideConnect(), SideConnectIndex(), SideConnectLocId(), pztopology::sidedimension, SideShapeFunction(), TPZGeoElSide::SideTransform3(), TPZBlock< TVar >::Size(), sqrt, and TPZFMatrix< TVar >::Zero().
Referenced by TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), CreateMidSideConnect(), TPZMHMixedMeshControl::CreateSkeleton(), IdentifySideOrder(), RecomputeRestraints(), RemoveSideRestraintsII(), and SetIntegrationRule().
|
overridepure virtual |
Sets the node pointer of node i to nod.
Implements TPZCompEl.
Implemented in TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by CreateMidSideConnect(), TPZHybridizeHDiv::SplitConnects(), and TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures().
|
overridevirtual |
Set create function in TPZCompMesh to create elements of this type.
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDiv< TSHAPE >, and TPZCompElHDivPressure< TSHAPE >.
Definition at line 2126 of file pzintel.cpp.
References TPZCompMesh::SetAllCreateFunctionsContinuous().
|
inlineoverridevirtual |
Reimplemented from TPZInterpolationSpace.
Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZIntelGen< TSHAPE >.
Definition at line 176 of file pzintel.h.
References CompareElement(), ComputeSolution(), Divide(), ForceSideOrder(), PRefine(), RestrainSide(), SetPreferredOrder(), SetSideOrder(), and SideShapeFunction().
|
inlinevirtual |
|
overridepure virtual |
Sets the preferred interpolation order along a side.
This method only updates the datastructure of the element In order to change the interpolation order of an element, use the method PRefine
Implements TPZInterpolationSpace.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by TPZMHMixedMeshControl::CreateHDivMHMMesh(), PRefine(), SetIntegrationRule(), and TPZHybridizeHDiv::SplitConnects().
|
pure virtual |
Sets the interpolation order of side to order.
This method only updates the datastructure of the element and updates the blocksize of the associated connect object
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZIntelGen< TSHAPE >, and TPZCompElHDivBound2< TSHAPE >.
Referenced by TPZCompMeshTools::AdjustFluxPolynomialOrders(), TPZMHMixedMeshControl::CreateHDivMHMMesh(), CreateMidSideConnect(), ForceSideOrder(), IdentifySideOrder(), RecomputeRestraints(), and SetIntegrationRule().
TPZConnect & TPZInterpolatedElement::SideConnect | ( | int | icon, |
int | is | ||
) |
Returns a pointer to the icon th connect object along side is.
Definition at line 105 of file pzintel.cpp.
References TPZCompMesh::ConnectVec(), TPZCompEl::fMesh, LOGPZ_ERROR, TPZCompEl::Reference(), and SideConnectIndex().
Referenced by CheckConstraintConsistency(), TPZMHMixedMeshControl::HybridizeSkeleton(), RestrainSide(), TPZHybridizeHDiv::RightElement(), TPZHybridizeHDiv::SplitConnects(), and VerifyConstraintConsistency().
int64_t TPZInterpolatedElement::SideConnectIndex | ( | int | icon, |
int | is | ||
) | const |
Returns the index of the c th connect object along side is.
Definition at line 101 of file pzintel.cpp.
References TPZCompEl::ConnectIndex(), and SideConnectLocId().
Referenced by TPZCompMeshTools::AdjustFluxPolynomialOrders(), CheckConstraintConsistency(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), FindCapElement(), TPZCheckMesh::FindElement(), TPZDohrStructMatrix::IdentifyExternalConnectIndexes(), TPZCreateApproximationSpace::MakeRaviartThomas(), RemoveSideRestraintWithRespectTo(), RestrainSide(), TPZCompMeshTools::SetPressureOrders(), SetupPyramidRestraint(), SideConnect(), TPZCheckRestraint::TPZCheckRestraint(), and VerifyConstraintConsistency().
|
overridepure virtual |
Returns the local node number of icon along is.
icon | connect number along side is |
is | side which is being queried |
Implements TPZInterpolationSpace.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by CompareShapeF(), TPZMHMixedHybridMeshControl::GroupElements(), TPZCreateApproximationSpace::MakeRaviartThomas(), MidSideConnectLocId(), NSideShapeF(), Print(), RestrainSide(), SideConnectIndex(), TPZHybridizeHDiv::SplitConnects(), TPZCheckRestraint::TPZCheckRestraint(), TPZCreateApproximationSpace::UndoMakeRaviartThomas(), TPZCompElHDiv< TSHAPE >::~TPZCompElHDiv(), and TPZCompElHDivBound2< TSHAPE >::~TPZCompElHDivBound2().
|
overridepure virtual |
Compute the values of the shape function along the side.
Reimplemented from TPZInterpolationSpace.
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by CheckElementConsistency(), TPZCheckRestraint::CheckRestraint(), RestrainSide(), and SetIntegrationRule().
|
pure virtual |
Returns the transformation which transform a point from the side to the interior of the element.
side | side from which the point will be tranformed (0<=side<=2) |
Implemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by AddShapeRestraint().
|
protected |
Updates the interpolation order of all neighbouring elements along side to have side order equal to the side order of the current element.
side | of the the element |
elvec | vector of elements whose side order will be set |
Definition at line 432 of file pzintel.cpp.
References IdentifySideOrder(), MidSideConnect(), TPZVec< T >::NElements(), and TPZConnect::Order().
bool TPZInterpolatedElement::VerifyConstraintConsistency | ( | int | side, |
TPZCompElSide | large | ||
) | const |
return true if the connects associated with the side have dependency with large and if the dependency dimensions match
the number of sides with nonzero number of shapefunctions
the number of rows of the dependency matrix is equal to the number of shape functions of the connect associated with the small side
the number of columns of the dependency matrix is equal to the number of shape functions of the connect of the large element
Definition at line 2062 of file pzintel.cpp.
References TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), DebugStop, TPZGeoElSide::Dimension(), EffectiveSideOrder(), TPZCompElSide::Element(), TPZConnect::TPZDepend::fDepConnectIndex, TPZConnect::TPZDepend::fDepMatrix, TPZConnect::FirstDepend(), TPZConnect::TPZDepend::fNext, MidSideConnect(), MidSideConnectLocId(), TPZConnect::NShape(), NSideConnects(), TPZConnect::NumDepend(), TPZConnect::Order(), TPZCompEl::Reference(), TPZMatrix< TVar >::Rows(), TPZCompElSide::Side(), SideConnect(), and SideConnectIndex().
Referenced by IdentifySideOrder().
|
overridevirtual |
Saves the element data to a stream.
Save the element data to a stream
Reimplemented from TPZInterpolationSpace.
Definition at line 1940 of file pzintel.cpp.
References TPZInterpolationSpace::Write().
Referenced by TPZIntelGen< TSHAPE >::Write(), TPZCompElHDivPressure< TSHAPE >::Write(), and TPZCompElHDiv< TSHAPE >::Write().