NeoPZ
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TPZInterpolationSpace Class Referenceabstract

Implements the interfaces for TPZCompElDisc, TPZInterfaceElement and TPZInterpolatedElement. Computational element. More...

#include <pzinterpolationspace.h>

Inheritance diagram for TPZInterpolationSpace:
[legend]
Collaboration diagram for TPZInterpolationSpace:
[legend]

Public Member Functions

virtual int ClassId () const override
 Define the class id associated with the class. More...
 
 TPZInterpolationSpace ()
 Default constructor. More...
 
virtual ~TPZInterpolationSpace ()
 Default destructor. More...
 
 TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace &copy)
 Puts a copy of the element in the referred mesh. More...
 
 TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace &copy, std::map< int64_t, int64_t > &gl2lcElMap)
 Puts a copy of the element in the patch mesh. More...
 
 TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace &copy, 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 TPZIntPointsGetIntegrationRule () const override=0
 Returns a reference to an integration rule suitable for integrating the interior of the element. More...
 
virtual TPZIntPointsGetIntegrationRule ()=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...
 
TPZInterfaceElementCreateInterface (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 void SetPreferredOrder (int order)=0
 Defines the desired order for entire element. More...
 
virtual int GetPreferredOrder ()
 Returns the prefered order for the element. More...
 
virtual void PRefine (int order)=0
 Change the preferred order for the element and proceed the adjust of the aproximation space
taking in acount the type of formulation and the neighbours of 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...
 
virtual void Write (TPZStream &buf, int withclassid) const override
 Saves the element data to a stream. More...
 
virtual void Read (TPZStream &buf, void *context) override
 Reads the element data from a stream. 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...
 
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 NSideShapeF (int side) const
 Returns the number of shape functions on a side. More...
 
virtual int NSideConnects (int iside) const =0
 Returns the number of dof nodes along side iside. More...
 
virtual int SideConnectLocId (int icon, int is) const =0
 Returns the local node number of icon along is. More...
 
int64_t SideConnectIndex (int icon, int is) const
 Returns the index of the c th connect object along side is. More...
 
TPZConnectSideConnect (int icon, int is) const
 Returns a pointer to the icon th connect object along side is. More...
 
virtual int NShapeF () const =0
 It returns the shapes number of the element. 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 SetIntegrationRule (int order) override
 
virtual void Shape (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphidxi)=0
 Computes the shape function set at the point x. More...
 
- Public Member Functions inherited from TPZCompEl
 TPZCompEl ()
 Simple Constructor. More...
 
virtual ~TPZCompEl ()
 Simple destructor. More...
 
virtual TPZCompElClone (TPZCompMesh &mesh) const =0
 Method for creating a copy of the element. More...
 
virtual TPZCompElClonePatchEl (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 &copy)
 Put a copy of the element in the referred mesh. More...
 
 TPZCompEl (TPZCompMesh &mesh, const TPZCompEl &copy, std::map< int64_t, int64_t > &gl2lcElMap)
 Put a copy of the element in the patch mesh. More...
 
 TPZCompEl (TPZCompMesh &mesh, const TPZCompEl &copy, 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 void SetCreateFunctions (TPZCompMesh *mesh)
 Sets create function in TPZCompMesh to create elements of this type. More...
 
virtual REAL VolumeOfEl ()
 Returns the volume of the geometric element associated. More...
 
virtual void LoadElementReference ()
 Loads the geometric element reference. More...
 
virtual REAL CompareElement (int var, char *matname)
 This method computes the norm of the difference of a post processed variable with @ the same post processed variable of the element pointed to by the geometric element. 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 Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0)
 Divide the computational element. If interpolate = 1, the solution is interpolated to the sub elements. 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 void AddShapeRestraint (TPZOneShapeRestraint restraint)
 Add a shape restraint (meant to fit the pyramid to restraint. More...
 
virtual std::list< TPZOneShapeRestraintGetShapeRestraints () 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 ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data)
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes)
 Computes solution and its derivatives in the 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)
 Computes solution and its derivatives in the local coordinate qsi.
This method will function for both volumetric and interface elements. More...
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphix, const TPZFMatrix< REAL > &axes, TPZSolVec &sol, TPZGradSolVec &dsol)
 Computes solution and its derivatives in local coordinate qsi. More...
 
virtual void BuildCornerConnectList (std::set< int64_t > &connectindexes) const =0
 adds the connect indexes associated with base shape functions to the set 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 SetConnectIndex (int inode, int64_t index)=0
 Set the index i to node inode. 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 ()
 
TPZGeoElReference () 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 NConnects () const =0
 Returns the number of nodes of the element. 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 TPZConnectConnect (int i) const
 Returns a pointer to the ith node. More...
 
virtual int Dimension () const =0
 Dimension of the element. More...
 
virtual TPZMaterialMaterial () const
 Identify the material object associated with the element. More...
 
TPZGeoElGetRefElPatch ()
 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...
 
TPZCompMeshMesh () 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 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...
 

Protected Attributes

int fPreferredOrder
 Preferred polynomial order. More...
 
- Protected Attributes inherited from TPZCompEl
TPZCompMeshfMesh
 Computational mesh to which the element belongs. More...
 
int64_t fIndex
 Element index into mesh element vector. More...
 
TPZIntPointsfIntegrationRule
 Integration rule established by the user. More...
 

Computational methods

Methods used to perform computations on the interpolated element

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...
 
virtual void SideShapeFunction (int side, TPZVec< REAL > &point, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Compute the values of the shape function along the side. More...
 
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...
 

Additional Inherited Members

- 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 TPZSavableCreateInstance (const int &classId)
 

Detailed Description

Implements the interfaces for TPZCompElDisc, TPZInterfaceElement and TPZInterpolatedElement. Computational element.

Since
April 11, 2007

Definition at line 17 of file pzinterpolationspace.h.

Constructor & Destructor Documentation

◆ TPZInterpolationSpace() [1/5]

TPZInterpolationSpace::TPZInterpolationSpace ( )

Default constructor.

Definition at line 22 of file pzinterpolationspace.cpp.

References fPreferredOrder.

◆ ~TPZInterpolationSpace()

TPZInterpolationSpace::~TPZInterpolationSpace ( )
virtual

Default destructor.

Definition at line 52 of file pzinterpolationspace.cpp.

◆ TPZInterpolationSpace() [2/5]

TPZInterpolationSpace::TPZInterpolationSpace ( TPZCompMesh mesh,
const TPZInterpolationSpace copy 
)

Puts a copy of the element in the referred mesh.

Definition at line 28 of file pzinterpolationspace.cpp.

References fPreferredOrder.

◆ TPZInterpolationSpace() [3/5]

TPZInterpolationSpace::TPZInterpolationSpace ( TPZCompMesh mesh,
const TPZInterpolationSpace copy,
std::map< int64_t, int64_t > &  gl2lcElMap 
)

Puts a copy of the element in the patch mesh.

Definition at line 34 of file pzinterpolationspace.cpp.

References fPreferredOrder.

◆ TPZInterpolationSpace() [4/5]

TPZInterpolationSpace::TPZInterpolationSpace ( TPZCompMesh mesh,
const TPZInterpolationSpace copy,
int64_t &  index 
)

Copy of the element in the new mesh whit alocated index.

Definition at line 40 of file pzinterpolationspace.cpp.

References fPreferredOrder.

◆ TPZInterpolationSpace() [5/5]

TPZInterpolationSpace::TPZInterpolationSpace ( TPZCompMesh mesh,
TPZGeoEl gel,
int64_t &  index 
)

Create a computational element within mesh.

Parameters
meshmesh wher will be created the element
gelgeometrical element to insert
indexnew elemen indexInserts the element within the data structure of the mesh

Definition at line 46 of file pzinterpolationspace.cpp.

References fPreferredOrder, and TPZCompMesh::GetDefaultOrder().

Member Function Documentation

◆ AdjustIntegrationRule()

void TPZInterpolationSpace::AdjustIntegrationRule ( )
virtual

Adjust the integration rule according to the polynomial order of shape functions.

Definition at line 71 of file pzinterpolationspace.cpp.

References TPZMaterial::IntegrationRuleOrder(), TPZCompEl::Material(), MaxOrder(), and SetIntegrationRule().

Referenced by TPZIntelGen< TSHAPE >::SetSideOrder(), SideConnect(), and TPZIntelGen< TSHAPE >::TPZIntelGen().

◆ BuildTransferMatrix()

void TPZInterpolationSpace::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.

Parameters
coarsellarger element with respect to which the transfer matrix is computed
ttransformation which maps the master element space of the current element into the master element space of the coarse element
transfertransfer matrix mapping the solution of the coarse mesh into the fine mesh This method forms the basis for the multigrid method

Definition at line 1444 of file pzinterpolationspace.cpp.

References TPZTransfer< TVar >::AddBlockNumbers(), TPZTransform< T >::Apply(), TPZCompEl::BuildConnectList(), TPZConnect::BuildDependencyOrder(), TPZIntPoints::Clone(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZCompMesh::ConnectVec(), DebugStop, dimension, TPZCompEl::Dimension(), ELDLt, ExpandShapeFunctions(), GetIntegrationRule(), TPZIntPoints::GetOrder(), TPZMatrix< TVar >::GetSub(), TPZConnect::HasDependency(), TPZCompEl::HasDependency(), TPZTransfer< TVar >::HasRowDefinition(), TPZGeoEl::Jacobian(), LOGPZ_DEBUG, LOGPZ_ERROR, TPZCompEl::Material(), MaxOrder(), TPZCompEl::Mesh(), TPZCompEl::NConnects(), NConnectShapeF(), TPZVec< T >::NElements(), Norm(), TPZIntPoints::NPoints(), TPZConnect::NShape(), NShapeF(), TPZMaterial::NStateVariables(), TPZConnect::Order(), TPZIntPoints::Point(), TPZBlock< TVar >::Position(), Print(), TPZConnect::Print(), TPZMatrix< TVar >::Print(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), TPZBlock< TVar >::Resequence(), TPZManVector< T, NumExtAlloc >::Resize(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZTransfer< TVar >::SetBlockMatrix(), TPZIntPoints::SetOrder(), Shape(), TPZBlock< TVar >::Size(), TPZMatrix< TVar >::SolveDirect(), pzgeom::tol, TPZGeoEl::X(), and TPZFMatrix< TVar >::Zero().

Referenced by TPZCompMesh::BuildTransferMatrix(), and GetPreferredOrder().

◆ CalcResidual()

void TPZInterpolationSpace::CalcResidual ( TPZElementMatrix ef)
overridevirtual

◆ CalcStiff()

void TPZInterpolationSpace::CalcStiff ( TPZElementMatrix ek,
TPZElementMatrix ef 
)
overridevirtual

◆ ClassId()

int TPZInterpolationSpace::ClassId ( ) const
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 TPZCompEl.

Reimplemented in TPZCompElDisc, TPZCompElHDiv< TSHAPE >, TPZAgglomerateElement, TPZReducedSpace, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, TPZIntelGen< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, and TPZInterpolatedElement.

Definition at line 1774 of file pzinterpolationspace.cpp.

References TPZCompEl::ClassId(), and Hash().

Referenced by TPZInterpolatedElement::ClassId(), TPZReducedSpace::ClassId(), and TPZCompElDisc::ClassId().

◆ ComputeError()

void TPZInterpolationSpace::ComputeError ( int  errorid,
TPZVec< REAL > &  error 
)
overridevirtual

◆ ComputeIntegrationOrder()

int TPZInterpolationSpace::ComputeIntegrationOrder ( ) const
overridevirtual

Compute integration order according to ... .

Reimplemented from TPZCompEl.

Definition at line 85 of file pzinterpolationspace.cpp.

References DebugStop.

Referenced by SideConnect().

◆ ComputeNormal()

void TPZInterpolationSpace::ComputeNormal ( TPZMaterialData data)
virtual

◆ ComputeRequiredData() [1/2]

void TPZInterpolationSpace::ComputeRequiredData ( TPZMaterialData data,
TPZVec< REAL > &  qsi 
)
virtual

◆ ComputeRequiredData() [2/2]

virtual void TPZInterpolationSpace::ComputeRequiredData ( TPZVec< REAL > &  intpointtemp,
TPZVec< TPZTransform< REAL > > &  trvec,
TPZVec< TPZMaterialData > &  datavec 
)
inlinevirtual

◆ ComputeShape() [1/2]

void TPZInterpolationSpace::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 
)
virtual

◆ ComputeShape() [2/2]

void TPZInterpolationSpace::ComputeShape ( TPZVec< REAL > &  intpoint,
TPZMaterialData data 
)
virtual

Compute shape functions based on master element in the classical FEM manne.

Parameters
[in]intpointpoint in master element coordinates
[in]datastores all input data

Reimplemented in TPZCompElDisc, TPZCompElHDivBound2< TSHAPE >, and TPZReducedSpace.

Definition at line 112 of file pzinterpolationspace.cpp.

References TPZMaterialData::axes, ComputeShape(), TPZMaterialData::detjac, TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZMaterialData::phi, and TPZMaterialData::x.

◆ Convert2Axes()

void TPZInterpolationSpace::Convert2Axes ( const TPZFMatrix< REAL > &  dphi,
const TPZFMatrix< REAL > &  jacinv,
TPZFMatrix< REAL > &  dphidx 
)
static

convert a shapefunction derivative in xi-eta to a function derivative in axes

convert a shapefunction derivative in xi-eta to a function derivative in x,y,z

Definition at line 1731 of file pzinterpolationspace.cpp.

References TPZMatrix< TVar >::Cols(), TPZFMatrix< TVar >::GetVal(), PZError, TPZFMatrix< TVar >::Resize(), and TPZMatrix< TVar >::Rows().

Referenced by ComputeShape(), TPZCompElDisc::ComputeShape(), TPZSBFemVolume::ExtendShapeFunctions(), and SetIntegrationRule().

◆ CreateInterface()

TPZInterfaceElement * TPZInterpolationSpace::CreateInterface ( int  side,
bool  BetweenContinuous = false 
)

Create an interface between this and the neighbour by side side.

Parameters
side: side where interface must be created
BetweenContinuousallows to create interface between two elements that are not TPZCompElDisc. If param is false, it is necessary to have at least one TPZCompElDisc. Returns the interface created.

GeoBlend verifications

faces internas

GeoBlend verifications

Definition at line 710 of file pzinterpolationspace.cpp.

References TPZGeoEl::CreateBCGeoEl(), DebugStop, TPZCompEl::Dimension(), TPZCompElSide::Element(), TPZCompElSide::EqualLevelElementList(), TPZCompElSide::Exists(), TPZCompEl::fMesh, TPZMaterial::Id(), TPZGeoMesh::InterfaceMaterial(), TPZGeoEl::IsGeoBlendEl(), TPZGeoEl::IsLinearMapping(), TPZInterfaceElement::LeftElement(), LOGPZ_DEBUG, LOGPZ_ERROR, LOGPZ_WARN, TPZCompElSide::LowerLevelElementList(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZVec< T >::NElements(), TPZCompEl::Print(), TPZGeoEl::Print(), TPZCompEl::Reference(), TPZCompMesh::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZInterfaceElement::RightElement(), and TPZCompElSide::Side().

Referenced by ComputeRequiredData(), and CreateInterfaces().

◆ CreateInterfaces()

void TPZInterpolationSpace::CreateInterfaces ( bool  BetweenContinuous = false)

◆ EvaluateError()

void TPZInterpolationSpace::EvaluateError ( std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)>  func,
TPZVec< REAL > &  errors,
bool  store_error 
)
overridevirtual

◆ ExistsInterface()

int TPZInterpolationSpace::ExistsInterface ( TPZGeoElSide  geosd)

◆ ExpandShapeFunctions()

void TPZInterpolationSpace::ExpandShapeFunctions ( TPZVec< int64_t > &  connectlist,
TPZVec< int > &  dependencyorder,
TPZVec< int > &  blocksizes,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
protected

Auxiliary method to expand a vector of shapefunctions and their derivatives to acount for constraints.

Parameters
connectlist(input) vector of all connects to which the element will contribute
dependencyorder(input) vector of indices which indicate the order in which the connects will be processed
blocksizes(output) number of shapefunctions associated with each connect
phi(input/output) values of the shapefunctions
dphi(input/output) values of the derivatives of the shapefunctions As input the regular values of the shapefunctions are given and their derivatives
if these shapefunctions are dependent upon other shapefunctions (because of constraints) then the vectors are expanded to include the value of the independent shapefunctions and their derivatives as well

Definition at line 1675 of file pzinterpolationspace.cpp.

References TPZCompMesh::ConnectVec(), TPZConnect::ExpandShape(), TPZCompEl::Mesh(), and TPZVec< T >::NElements().

Referenced by BuildTransferMatrix(), TPZInterpolatedElement::BuildTransferMatrix(), and GetPreferredOrder().

◆ GetIntegrationRule() [1/2]

virtual const TPZIntPoints& TPZInterpolationSpace::GetIntegrationRule ( ) const
overridepure virtual

◆ GetIntegrationRule() [2/2]

virtual TPZIntPoints& TPZInterpolationSpace::GetIntegrationRule ( )
pure virtual

Returns a reference to an integration rule suitable for integrating the interior of the element.

Implemented in TPZSBFemVolume, TPZCompElDisc, TPZReducedSpace, and TPZIntelGen< TSHAPE >.

◆ GetPreferredOrder()

virtual int TPZInterpolationSpace::GetPreferredOrder ( )
inlinevirtual

◆ GetSideOrient()

int TPZInterpolationSpace::GetSideOrient ( int  side)
virtual

It returns the normal orientation of the reference element by the side. Only side that has dimension larger than zero and smaller than me.

Parameters
sideside of the reference elemen

Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZCompElHDivBound2< TSHAPE >.

Definition at line 1696 of file pzinterpolationspace.cpp.

References DebugStop, EQuadrilateral, TPZGeoEl::NCornerNodes(), TPZGeoEl::NormalOrientation(), TPZGeoEl::NSides(), TPZCompEl::Reference(), and TPZGeoEl::Type().

Referenced by TPZBuildMultiphysicsMesh::AddWrap(), and GetPreferredOrder().

◆ InitializeElementMatrix() [1/2]

void TPZInterpolationSpace::InitializeElementMatrix ( TPZElementMatrix ek,
TPZElementMatrix ef 
)
virtual

◆ InitializeElementMatrix() [2/2]

void TPZInterpolationSpace::InitializeElementMatrix ( TPZElementMatrix ef)
virtual

◆ InitMaterialData()

void TPZInterpolationSpace::InitMaterialData ( TPZMaterialData data)
virtual

Initialize a material data and its attributes based on element dimension, number of state variables and material definitions.

Reimplemented in TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZReducedSpace, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZSBFemVolume.

Definition at line 127 of file pzinterpolationspace.cpp.

References TPZMaterialData::axes, DebugStop, TPZCompEl::Dimension(), TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::dsol, TPZMaterialData::EScalarShape, TPZMaterial::FillDataRequirements(), TPZMaterialData::fNeedsSol, TPZMaterialData::fShapeType, TPZMaterialData::gelElId, TPZGeoEl::Id(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZCompEl::Material(), NShapeF(), TPZMaterial::NStateVariables(), TPZMaterialData::phi, TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::size(), TPZMaterialData::sol, and TPZMaterialData::x.

Referenced by TPZCompElPostProc< TCOMPEL >::CalcResidual(), CalcResidual(), TPZAgglomerateElement::CalcStiff(), CalcStiff(), ComputeError(), TPZSBFemVolume::ComputeKMatrices(), TPZSBFemVolume::ComputeSolution(), EvaluateError(), TPZCompElDisc::EvaluateSquareResidual2D(), TPZInterfaceElement::InitMaterialData(), TPZCompElHDivBound2< TSHAPE >::InitMaterialData(), TPZCompElHDiv< TSHAPE >::InitMaterialData(), TPZMultiphysicsCompEl< TGeometry >::InitMaterialData(), TPZMultiphysicsCompEl< TGeometry >::Integrate(), IntegrateSolution(), ProjectFlux(), TPZSBFemVolume::Shape(), SideShapeFunction(), TPZMultiphysicsCompEl< TGeometry >::Solution(), and Solution().

◆ InnerRadius()

REAL TPZInterpolationSpace::InnerRadius ( )
virtual

◆ Integrate()

void TPZInterpolationSpace::Integrate ( int  variable,
TPZVec< STATE > &  value 
)
overridevirtual

Integrates a variable over the element.

Reimplemented from TPZCompEl.

Definition at line 1297 of file pzinterpolationspace.cpp.

References IntegrateSolution().

Referenced by ComputeRequiredData().

◆ IntegrateSolution()

TPZVec< STATE > TPZInterpolationSpace::IntegrateSolution ( int  variable) const
overridevirtual

◆ InterpolateSolution()

void TPZInterpolationSpace::InterpolateSolution ( TPZInterpolationSpace coarsel)

◆ MaxOrder()

int TPZInterpolationSpace::MaxOrder ( )
virtual

◆ MinMaxSolutionValues()

void TPZInterpolationSpace::MinMaxSolutionValues ( TPZVec< STATE > &  min,
TPZVec< STATE > &  max 
)

Returns minimum and maximum values for each state variable.

It is not a cheap method because it computes solution for all integration points ( with intrule.MaxOrder() )

Definition at line 1403 of file pzinterpolationspace.cpp.

References TPZIntPoints::Clone(), TPZCompEl::ComputeSolution(), DebugStop, TPZCompEl::Dimension(), GetIntegrationRule(), TPZIntPoints::GetMaxOrder(), TPZIntPoints::GetOrder(), TPZVec< T >::NElements(), TPZIntPoints::NPoints(), TPZIntPoints::Point(), and TPZIntPoints::SetOrder().

Referenced by ComputeRequiredData().

◆ NConnectShapeF()

virtual int TPZInterpolationSpace::NConnectShapeF ( int  icon,
int  order 
) const
pure virtual

◆ NShapeF()

virtual int TPZInterpolationSpace::NShapeF ( ) const
pure virtual

◆ NSideConnects()

virtual int TPZInterpolationSpace::NSideConnects ( int  iside) const
pure virtual

◆ NSideShapeF()

int TPZInterpolationSpace::NSideShapeF ( int  side) const
inline

Returns the number of shape functions on a side.

Definition at line 59 of file pzinterpolationspace.h.

References NShapeF(), NSideConnects(), and SideConnectLocId().

◆ PRefine()

virtual void TPZInterpolationSpace::PRefine ( int  order)
pure virtual

Change the preferred order for the element and proceed the adjust of the aproximation space
taking in acount the type of formulation and the neighbours of the element.

Implemented in TPZCompElDisc, TPZInterpolatedElement, TPZCompElHDiv< TSHAPE >, TPZSBFemVolume, and TPZReducedSpace.

Referenced by GetPreferredOrder(), and TPZSBFemVolume::PRefine().

◆ Print()

void TPZInterpolationSpace::Print ( std::ostream &  out = std::cout) const
overridevirtual

◆ ProjectFlux()

void TPZInterpolationSpace::ProjectFlux ( TPZElementMatrix ek,
TPZElementMatrix ef 
)
overridevirtual

Integrate the solution over the element.

Will project the flux associated with the variational statement onto the finite element interpolation space

Parameters
ekprojection matrix
efinner product of the flux with the finite element interpolation space The ek matrix corresponds to an L2 (scalar) projection, the ef matrix contains multiple right hand sides, one for each component of the flux

Reimplemented from TPZCompEl.

Definition at line 1339 of file pzinterpolationspace.cpp.

References TPZMaterialData::axes, ComputeShape(), TPZCompEl::ComputeSolution(), TPZCompEl::ConnectIndex(), TPZMaterialData::detjac, TPZCompEl::Dimension(), TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::dsol, fabs, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZMaterial::Flux(), TPZElementMatrix::fMat, GetIntegrationRule(), InitMaterialData(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, LOGPZ_ERROR, TPZCompEl::Material(), TPZCompEl::NConnects(), TPZMaterial::NFluxes(), TPZIntPoints::NPoints(), NShapeF(), TPZMaterialData::phi, TPZIntPoints::Point(), Print(), TPZElementMatrix::Reset(), TPZFMatrix< TVar >::Resize(), TPZBlock< TVar >::SetNBlocks(), TPZMaterialData::sol, and TPZMaterialData::x.

Referenced by ComputeRequiredData().

◆ Read()

void TPZInterpolationSpace::Read ( TPZStream buf,
void *  context 
)
overridevirtual

◆ RemoveInterface()

void TPZInterpolationSpace::RemoveInterface ( int  side)

◆ RemoveInterfaces()

void TPZInterpolationSpace::RemoveInterfaces ( )

◆ SetIntegrationRule()

virtual void TPZInterpolationSpace::SetIntegrationRule ( int  order)
inlineoverridevirtual

Reimplemented from TPZCompEl.

Reimplemented in TPZSBFemVolume, TPZInterpolatedElement, TPZCompElHDiv< TSHAPE >, and TPZIntelGen< TSHAPE >.

Definition at line 106 of file pzinterpolationspace.h.

References ComputeShape(), Convert2Axes(), and Shape().

Referenced by AdjustIntegrationRule().

◆ SetPreferredOrder()

virtual void TPZInterpolationSpace::SetPreferredOrder ( int  order)
pure virtual

◆ SetSideOrient()

void TPZInterpolationSpace::SetSideOrient ( int  side,
int  sideorient 
)
virtual

◆ Shape()

virtual void TPZInterpolationSpace::Shape ( TPZVec< REAL > &  qsi,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphidxi 
)
pure virtual

Computes the shape function set at the point x.

Parameters
qsipoint in master element coordinates
phivector of values of shapefunctions, dimension (numshape,1)
dphimatrix of derivatives of shapefunctions in master element coordinates, dimension (dim,numshape) This method uses the order of interpolation of the element along the sides to compute the number of shapefunctions

Implemented in TPZSBFemVolume, TPZCompElHDiv< TSHAPE >, TPZCompElDisc, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, TPZIntelGen< TSHAPE >, and TPZReducedSpace.

Referenced by BuildTransferMatrix(), TPZInterpolatedElement::BuildTransferMatrix(), TPZInterpolatedElement::CalcIntegral(), ComputeShape(), TPZInterpolatedElement::ComputeSolution(), TPZMGAnalysis::ElementError(), SetIntegrationRule(), and SideShapeFunction().

◆ SideConnect()

TPZConnect& TPZInterpolationSpace::SideConnect ( int  icon,
int  is 
) const
inline

Returns a pointer to the icon th connect object along side is.

Definition at line 85 of file pzinterpolationspace.h.

References AdjustIntegrationRule(), ComputeIntegrationOrder(), TPZCompEl::Connect(), MaxOrder(), NConnectShapeF(), NShapeF(), and SideConnectLocId().

◆ SideConnectIndex()

int64_t TPZInterpolationSpace::SideConnectIndex ( int  icon,
int  is 
) const
inline

Returns the index of the c th connect object along side is.

Definition at line 78 of file pzinterpolationspace.h.

References TPZCompEl::ConnectIndex(), and SideConnectLocId().

◆ SideConnectLocId()

virtual int TPZInterpolationSpace::SideConnectLocId ( int  icon,
int  is 
) const
pure virtual

◆ SideShapeFunction()

virtual void TPZInterpolationSpace::SideShapeFunction ( int  side,
TPZVec< REAL > &  point,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
inlinevirtual

◆ Solution()

void TPZInterpolationSpace::Solution ( TPZVec< REAL > &  qsi,
int  var,
TPZVec< STATE > &  sol 
)
overridevirtual

Post processing method which computes the solution for the var post processed variable.

Parameters
qsicoordinate of the point in master element space where the solution will be evaluated
varvariable which will be computed
sol(output) solution computed at the given point
See also
TPZMaterial::VariableIndex
TPZMaterial::NSolutionVariables
TPZMaterial::SolutionThe var index is obtained by calling the TPZMaterial::VariableIndex method with a The Post Processing classes. processing name

Reimplemented from TPZCompEl.

Reimplemented in TPZSBFemVolume, TPZCompElHDiv< TSHAPE >, and TPZCompElHDivPressure< TSHAPE >.

Definition at line 508 of file pzinterpolationspace.cpp.

References ComputeShape(), TPZCompEl::ComputeSolution(), TPZVec< T >::Fill(), GetPreferredOrder(), InitMaterialData(), TPZCompEl::Material(), MaxOrder(), TPZMaterial::NSolutionVariables(), TPZMaterialData::p, TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::Resize(), TPZMaterial::Solution(), TPZCompEl::Solution(), TPZMaterialData::x, and TPZGeoEl::X().

Referenced by TPZInterpolatedElement::CompareElement(), ComputeRequiredData(), TPZInterpolatedElement::MeanSolution(), and TPZCompElHDiv< TSHAPE >::Solution().

◆ VectorialProd()

void TPZInterpolationSpace::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.

Definition at line 288 of file pzinterpolationspace.cpp.

References TPZVec< T >::Resize(), and sqrt.

Referenced by ComputeNormal(), and ComputeRequiredData().

◆ Write()

void TPZInterpolationSpace::Write ( TPZStream buf,
int  withclassid 
) const
overridevirtual

Member Data Documentation

◆ fPreferredOrder

int TPZInterpolationSpace::fPreferredOrder
protected

The documentation for this class was generated from the following files: