NeoPZ
|
Implements the interfaces for TPZCompElDisc, TPZInterfaceElement and TPZInterpolatedElement. Computational element. More...
#include <pzinterpolationspace.h>
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 ©) | |
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 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... | |
TPZConnect & | SideConnect (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 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 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< 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 | 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 () |
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 | 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 TPZConnect & | Connect (int i) const |
Returns a pointer to the ith node. More... | |
virtual int | Dimension () const =0 |
Dimension of the element. 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 | 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 | |
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... | |
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 TPZSavable * | CreateInstance (const int &classId) |
Implements the interfaces for TPZCompElDisc, TPZInterfaceElement and TPZInterpolatedElement. Computational element.
Definition at line 17 of file pzinterpolationspace.h.
TPZInterpolationSpace::TPZInterpolationSpace | ( | ) |
Default constructor.
Definition at line 22 of file pzinterpolationspace.cpp.
References fPreferredOrder.
|
virtual |
Default destructor.
Definition at line 52 of file pzinterpolationspace.cpp.
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::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::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::TPZInterpolationSpace | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | gel, | ||
int64_t & | index | ||
) |
Create a computational element within mesh.
mesh | mesh wher will be created the element |
gel | geometrical element to insert |
index | new elemen indexInserts the element within the data structure of the mesh |
Definition at line 46 of file pzinterpolationspace.cpp.
References fPreferredOrder, and TPZCompMesh::GetDefaultOrder().
|
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().
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.
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 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().
|
overridevirtual |
Only computes the element residual.
ef | element residual |
Reimplemented from TPZCompEl.
Reimplemented in TPZAgglomerateElement.
Definition at line 377 of file pzinterpolationspace.cpp.
References TPZIntPoints::Clone(), ComputeRequiredData(), TPZMaterial::Contribute(), TPZMaterialData::detjac, TPZCompEl::Dimension(), fabs, TPZElementMatrix::fMat, GetIntegrationRule(), InitializeElementMatrix(), InitMaterialData(), TPZMaterialData::intLocPtIndex, TPZCompEl::Material(), MaxOrder(), TPZCompEl::NConnects(), TPZIntPoints::NPoints(), TPZMaterialData::p, TPZIntPoints::Point(), PZError, and TPZElementMatrix::Reset().
Referenced by ComputeRequiredData().
|
overridevirtual |
Computes the element stiffness matrix and right hand side.
ek | element matrix |
ef | element right hand side |
Reimplemented from TPZCompEl.
Reimplemented in TPZAgglomerateElement.
Definition at line 306 of file pzinterpolationspace.cpp.
References TPZIntPoints::Clone(), ComputeRequiredData(), TPZMaterial::Contribute(), TPZMaterialData::detjac, TPZCompEl::Dimension(), fabs, TPZElementMatrix::fMat, GetIntegrationRule(), TPZMaterial::Id(), InitializeElementMatrix(), InitMaterialData(), TPZMaterialData::intLocPtIndex, LOGPZ_DEBUG, TPZCompEl::Material(), TPZGeoEl::MaterialId(), MaxOrder(), TPZCompEl::NConnects(), TPZIntPoints::NPoints(), TPZMaterialData::p, TPZIntPoints::Point(), PZError, TPZCompEl::Reference(), and TPZElementMatrix::Reset().
Referenced by TPZAgglomerateElement::CalcStiff(), and ComputeRequiredData().
|
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().
|
overridevirtual |
Computes the element error estimator.
Reimplemented from TPZCompEl.
Definition at line 1180 of file pzinterpolationspace.cpp.
References TPZMaterialData::axes, TPZIntPoints::Clone(), ComputeShape(), TPZCompEl::ComputeSolution(), TPZMaterial::ContributeErrors(), TPZMaterialData::detjac, TPZCompEl::Dimension(), TPZMaterialData::dphix, TPZMaterialData::dsol, fabs, TPZVec< T >::Fill(), GetIntegrationRule(), TPZIntPoints::GetOrder(), TPZMaterialData::HSize, InitMaterialData(), InnerRadius(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZCompEl::Material(), MaxOrder(), TPZIntPoints::NPoints(), TPZMaterialData::p, TPZMaterialData::phi, TPZIntPoints::Point(), TPZIntPoints::SetOrder(), TPZMaterialData::sol, and TPZMaterialData::x.
Referenced by ComputeRequiredData().
|
overridevirtual |
Compute integration order according to ... .
Reimplemented from TPZCompEl.
Definition at line 85 of file pzinterpolationspace.cpp.
References DebugStop.
Referenced by SideConnect().
|
virtual |
Computes the proper normal vector towards the neighbour element.
Definition at line 203 of file pzinterpolationspace.cpp.
References TPZMaterialData::axes, TPZGeoEl::CenterPoint(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), TPZCompMesh::FindMaterial(), TPZGeoEl::MaterialId(), TPZCompEl::Mesh(), TPZGeoElSide::Neighbour(), TPZGeoEl::Neighbour(), TPZMaterialData::normal, TPZGeoEl::NSides(), PZError, TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), VectorialProd(), and TPZGeoEl::X().
Referenced by TPZReducedSpace::ComputeRequiredData(), and ComputeRequiredData().
|
virtual |
Compute and fill data with requested attributes.
Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZReducedSpace.
Definition at line 158 of file pzinterpolationspace.cpp.
References TPZMaterialData::axes, ComputeNormal(), ComputeShape(), TPZCompEl::ComputeSolution(), TPZCompEl::Dimension(), TPZGeoEl::Dimension(), TPZMaterialData::dsol, EQuadrilateral, ETriangle, TPZMaterialData::fNeedsHSize, TPZMaterialData::fNeedsNormal, TPZMaterialData::fNeedsSol, TPZMaterialData::HSize, InnerRadius(), TPZMaterialData::intGlobPtIndex, TPZMaterialData::phi, TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZMatrix< TVar >::Rows(), TPZMaterialData::sol, TPZCompEl::Type(), TPZMaterialData::x, TPZGeoEl::X(), TPZMaterialData::XCenter, and TPZMaterialData::xParametric.
Referenced by TPZCompElPostProc< TCOMPEL >::CalcResidual(), CalcResidual(), CalcStiff(), TPZSBFemVolume::ComputeKMatrices(), TPZMultiphysicsElement::ComputeRequiredData(), TPZMultiphysicsCompEl< TGeometry >::ComputeRequiredData(), TPZCompElHDiv< TSHAPE >::ComputeRequiredData(), TPZSBFemVolume::ComputeSolution(), EvaluateError(), IntegrateSolution(), TPZSBFemVolume::Shape(), SideShapeFunction(), and TPZMultiphysicsCompEl< TGeometry >::Solution().
|
inlinevirtual |
Compute and fill data with requested attributes for each of the compels in fElementVec.
Definition at line 173 of file pzinterpolationspace.h.
References CalcResidual(), CalcStiff(), ComputeError(), ComputeNormal(), CreateInterface(), CreateInterfaces(), DebugStop, error(), EvaluateError(), ExistsInterface(), GetIntegrationRule(), InitializeElementMatrix(), InnerRadius(), Integrate(), IntegrateSolution(), InterpolateSolution(), MinMaxSolutionValues(), ProjectFlux(), PZError, RemoveInterface(), RemoveInterfaces(), Solution(), val(), and VectorialProd().
|
virtual |
Compute shape functions based on master element in the classical FEM manner.
Reimplemented in TPZSBFemVolume, TPZCompElDisc, and TPZCompElHDivBound2< TSHAPE >.
Definition at line 96 of file pzinterpolationspace.cpp.
References Convert2Axes(), TPZGeoEl::Jacobian(), PZError, TPZCompEl::Reference(), and Shape().
Referenced by TPZInterpolatedElement::AdjustPreferredSideOrder(), TPZCompElPostProc< TCOMPEL >::CalcResidual(), ComputeError(), TPZInterfaceElement::ComputeRequiredData(), ComputeRequiredData(), ComputeShape(), TPZCompElHDivPressure< TSHAPE >::ComputeSolution(), TPZCompElHDiv< TSHAPE >::ComputeSolutionHDiv(), TPZCompElHDivPressure< TSHAPE >::ComputeSolutionPressureHDiv(), EvaluateError(), InterpolateSolution(), ProjectFlux(), SetIntegrationRule(), SideShapeFunction(), TPZCompElHDivPressure< TSHAPE >::Solution(), TPZMultiphysicsCompEl< TGeometry >::Solution(), and Solution().
|
virtual |
Compute shape functions based on master element in the classical FEM manne.
[in] | intpoint | point in master element coordinates |
[in] | data | stores 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.
|
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().
TPZInterfaceElement * TPZInterpolationSpace::CreateInterface | ( | int | side, |
bool | BetweenContinuous = false |
||
) |
Create an interface between this and the neighbour by side side.
side | : side where interface must be created |
BetweenContinuous | allows 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().
void TPZInterpolationSpace::CreateInterfaces | ( | bool | BetweenContinuous = false | ) |
Create interfaces between this and its neighbours.
BetweenContinuous | allows to create interface between two elements that are not TPZCompElDisc.If param is false, it is necessary to have at least one TPZCompElDisc. |
Definition at line 658 of file pzinterpolationspace.cpp.
References CreateInterface(), TPZMaterial::Dimension(), ExistsInterface(), TPZCompElSide::HigherLevelElementList(), TPZCompEl::Material(), TPZVec< T >::NElements(), TPZGeoEl::NSides(), PZError, TPZCompEl::Reference(), TPZCompElSide::Reference(), and TPZGeoEl::SideDimension().
Referenced by ComputeRequiredData(), TPZCreateApproximationSpace::CreateInterfaceElements(), TPZCreateApproximationSpace::CreateInterfaces(), TPZCompMesh::Discontinuous2Continuous(), and TPZCompMesh::RemakeAllInterfaceElements().
|
overridevirtual |
Performs an error estimate on the elemen.
fp | function pointer which computes the exact solution |
errors | (output) the L2 norm or true error of the error of the solution |
flux | (input) value of the interpolated flux values |
Reimplemented from TPZCompEl.
Reimplemented in TPZSBFemVolume.
Definition at line 1067 of file pzinterpolationspace.cpp.
References TPZMaterialData::axes, TPZIntPoints::Clone(), TPZMatrix< TVar >::Cols(), ComputeRequiredData(), ComputeShape(), TPZCompEl::ComputeSolution(), DebugStop, TPZMaterialData::detjac, TPZCompMesh::Dimension(), TPZCompEl::Dimension(), TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::dsol, TPZCompMesh::ElementSolution(), TPZMaterial::Errors(), TPZMaterial::ErrorsHdiv(), TPZMaterialData::EVecandShape, fabs, TPZVec< T >::Fill(), TPZMaterialData::fShapeType, TPZMaterialData::fVecShapeIndex, GetIntegrationRule(), TPZIntPoints::GetMaxOrder(), TPZIntPoints::GetOrder(), TPZCompEl::Index(), InitMaterialData(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, LOGPZ_INFO, TPZCompEl::Material(), TPZCompEl::Mesh(), TPZVec< T >::NElements(), TPZMaterial::NEvalErrors(), TPZMaterial::NFluxes(), TPZIntPoints::NPoints(), TPZMaterial::NStateVariables(), TPZMaterialData::phi, TPZIntPoints::Point(), Print(), PZError, TPZCompEl::Reference(), TPZVec< T >::Resize(), TPZIntPoints::SetOrder(), TPZMaterialData::sol, sqrt, rdt::values, TPZMaterialData::x, and TPZGeoEl::X().
Referenced by ComputeRequiredData().
int TPZInterpolationSpace::ExistsInterface | ( | TPZGeoElSide | geosd | ) |
Verify existence of interface.
Definition at line 964 of file pzinterpolationspace.cpp.
References EInterface, TPZGeoElSide::Element(), TPZCompElSide::Element(), TPZGeoElSide::Neighbour(), TPZGeoElSide::Reference(), and TPZCompEl::Type().
Referenced by ComputeRequiredData(), and CreateInterfaces().
|
protected |
Auxiliary method to expand a vector of shapefunctions and their derivatives to acount for constraints.
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().
|
overridepure virtual |
Returns a reference to an integration rule suitable for integrating the interior of the element.
Reimplemented from TPZCompEl.
Implemented in TPZSBFemVolume, TPZCompElDisc, TPZReducedSpace, and TPZIntelGen< TSHAPE >.
Referenced by TPZInterpolatedElement::AdjustPreferredSideOrder(), TPZPostProcAnalysis::AutoBuildDisc(), BuildTransferMatrix(), TPZInterpolatedElement::BuildTransferMatrix(), TPZInterpolatedElement::CalcIntegral(), CalcResidual(), CalcStiff(), TPZInterpolatedElement::CompareElement(), ComputeError(), TPZSBFemVolume::ComputeKMatrices(), ComputeRequiredData(), TPZMGAnalysis::ElementError(), EvaluateError(), TPZCompElDisc::EvaluateSquareResidual2D(), TPZReducedSpace::GetIntegrationRule(), IntegrateSolution(), InterpolateSolution(), TPZInterpolatedElement::MeanSolution(), MinMaxSolutionValues(), TPZInterpolatedElement::Print(), and ProjectFlux().
|
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 >.
|
inlinevirtual |
Returns the prefered order for the element.
Definition at line 304 of file pzinterpolationspace.h.
References BuildTransferMatrix(), ExpandShapeFunctions(), fPreferredOrder, GetSideOrient(), PRefine(), Read(), SetSideOrient(), and Write().
Referenced by TPZPostProcAnalysis::AutoBuildDisc(), TPZSBFemVolume::SetSkeleton(), and Solution().
|
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.
side | side 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().
|
virtual |
Initialize element matrix in which is computed CalcStiff.
Reimplemented in TPZReducedSpace.
Definition at line 429 of file pzinterpolationspace.cpp.
References TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), DebugStop, TPZElementMatrix::EF, TPZElementMatrix::EK, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZElementMatrix::fMat, TPZElementMatrix::fMesh, TPZElementMatrix::fOneRestraints, TPZElementMatrix::fType, TPZCompEl::GetShapeRestraints(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZCompEl::NConnects(), NConnectShapeF(), TPZConnect::NShape(), NShapeF(), TPZConnect::NState(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), TPZConnect::Order(), TPZFMatrix< TVar >::Redim(), TPZManVector< T, NumExtAlloc >::Resize(), TPZBlock< TVar >::Set(), and TPZBlock< TVar >::SetNBlocks().
Referenced by CalcResidual(), CalcStiff(), TPZSBFemVolume::ComputeKMatrices(), ComputeRequiredData(), TPZStructMatrixOR::ThreadData::ThreadWork(), TPZStructMatrixOT::ThreadData::ThreadWork(), and TPZStructMatrixOT::ThreadData::ThreadWorkResidual().
|
virtual |
Initialize element matrix in which is computed in CalcResidual.
Reimplemented in TPZReducedSpace.
Definition at line 479 of file pzinterpolationspace.cpp.
References TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), DebugStop, TPZElementMatrix::EF, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZElementMatrix::fMat, TPZElementMatrix::fMesh, TPZElementMatrix::fOneRestraints, TPZElementMatrix::fType, TPZCompEl::GetShapeRestraints(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZCompEl::NConnects(), NConnectShapeF(), TPZConnect::NShape(), NShapeF(), TPZConnect::NState(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), TPZConnect::Order(), TPZFMatrix< TVar >::Redim(), TPZManVector< T, NumExtAlloc >::Resize(), TPZBlock< TVar >::Set(), and TPZBlock< TVar >::SetNBlocks().
|
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().
|
virtual |
Returns the inner radius value.
Reimplemented in TPZAgglomerateElement.
Definition at line 119 of file pzinterpolationspace.cpp.
References TPZGeoEl::ElementRadius(), PZError, and TPZCompEl::Reference().
Referenced by ComputeError(), TPZReducedSpace::ComputeRequiredData(), ComputeRequiredData(), and TPZAgglomerateElement::InnerRadius().
|
overridevirtual |
Integrates a variable over the element.
Reimplemented from TPZCompEl.
Definition at line 1297 of file pzinterpolationspace.cpp.
References IntegrateSolution().
Referenced by ComputeRequiredData().
|
overridevirtual |
Integrate a variable over the element.
Reimplemented from TPZCompEl.
Definition at line 1216 of file pzinterpolationspace.cpp.
References TPZTransform< T >::Apply(), TPZMaterialData::axes, ComputeRequiredData(), DebugStop, TPZMaterialData::detjac, TPZCompMesh::Dimension(), TPZCompEl::Dimension(), fabs, TPZVec< T >::Fill(), TPZMaterialData::fNeedsSol, GetIntegrationRule(), InitMaterialData(), TPZMaterialData::intLocPtIndex, TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZGeoEl::Jacobian(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZTransform< T >::Multiply(), TPZGeoElSide::Neighbour(), TPZIntPoints::NPoints(), TPZGeoEl::NSides(), TPZMaterial::NSolutionVariables(), TPZIntPoints::Point(), PZError, TPZCompEl::Reference(), and TPZMaterial::Solution().
Referenced by ComputeRequiredData(), and Integrate().
void TPZInterpolationSpace::InterpolateSolution | ( | TPZInterpolationSpace & | coarsel | ) |
Interpolates the solution into the degrees of freedom nodes from the degrees of freedom nodes from the coarse element.
Definition at line 542 of file pzinterpolationspace.cpp.
References TPZTransform< T >::Apply(), TPZCompMesh::Block(), TPZGeoEl::BuildTransform2(), TPZIntPoints::Clone(), ComputeShape(), TPZCompEl::ComputeSolution(), TPZCompEl::Connect(), dimension, TPZCompEl::Dimension(), ELU, fabs, GetIntegrationRule(), TPZIntPoints::GetMaxOrder(), TPZIntPoints::GetOrder(), TPZCompEl::Material(), MaxOrder(), TPZCompEl::Mesh(), TPZCompEl::NConnects(), TPZIntPoints::NPoints(), NShapeF(), TPZGeoEl::NSides(), TPZMaterial::NStateVariables(), TPZIntPoints::Point(), PZError, TPZCompEl::Reference(), TPZVec< T >::resize(), TPZConnect::SequenceNumber(), TPZIntPoints::SetOrder(), TPZBlock< TVar >::Size(), TPZMatrix< TVar >::SolveDirect(), and val().
Referenced by ComputeRequiredData(), TPZCompMesh::Discontinuous2Continuous(), TPZCompElDisc::Divide(), TPZInterpolatedElement::Divide(), and TPZCompElDisc::EvaluateSquareResidual2D().
|
virtual |
Returns the max order of interpolation.
Reimplemented in TPZCompElDisc, TPZCompElHDiv< TSHAPE >, and TPZReducedSpace.
Definition at line 55 of file pzinterpolationspace.cpp.
References TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZCompEl::NConnects(), and TPZConnect::Order().
Referenced by AdjustIntegrationRule(), BuildTransferMatrix(), TPZCompElPostProc< TCOMPEL >::CalcResidual(), CalcResidual(), TPZInterfaceElement::CalcResidual(), TPZMultiphysicsCompEl< TGeometry >::CalcResidual(), TPZMultiphysicsInterfaceElement::CalcStiff(), CalcStiff(), TPZInterfaceElement::CalcStiff(), TPZMultiphysicsCompEl< TGeometry >::CalcStiff(), ComputeError(), TPZInterfaceElement::ComputeErrorFace(), TPZInterfaceElement::ComputeIntegrationOrder(), TPZInterfaceElement::ComputeRequiredData(), TPZCompElDisc::EvaluateSquareResidual2D(), TPZCreateApproximationSpace::Hybridize(), TPZInterfaceElement::InitializeIntegrationRule(), TPZMultiphysicsCompEl< TGeometry >::InitializeIntegrationRule(), TPZInterfaceElement::IntegrateInterface(), TPZMultiphysicsCompEl< TGeometry >::IntegrateSolution(), InterpolateSolution(), TPZReducedSpace::MaxOrder(), TPZCompElHDiv< TSHAPE >::MaxOrder(), TPZCompElDisc::MaxOrder(), TPZCompElDisc::MaxOrderExceptExternalShapes(), TPZMultiphysicsCompEl< TGeometry >::PolynomialOrder(), SideConnect(), TPZMultiphysicsCompEl< TGeometry >::Solution(), and Solution().
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().
|
pure virtual |
Returns the number of shapefunctions associated with a connect.
Implemented in TPZCompElDisc, TPZSBFemVolume, TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivBound2< TSHAPE >, TPZReducedSpace, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by TPZInterpolatedElement::AdjustPreferredSideOrder(), TPZPostProcAnalysis::AutoBuildDisc(), BuildTransferMatrix(), TPZInterpolatedElement::CalcIntegral(), TPZCheckMesh::CheckConnectOrderConsistency(), TPZCheckMesh::CheckElementShapeDimension(), TPZInterpolatedElement::CreateMidSideConnect(), TPZInterfaceElement::InitializeElementMatrix(), InitializeElementMatrix(), TPZInterpolatedElement::NShapeF(), TPZInterpolatedElement::NSideShapeF(), TPZInterpolatedElement::Print(), TPZInterpolatedElement::RestrainSide(), SideConnect(), and TPZCheckRestraint::TPZCheckRestraint().
|
pure virtual |
It returns the shapes number of the element.
Implemented in TPZCompElDisc, TPZSBFemVolume, TPZInterpolatedElement, and TPZReducedSpace.
Referenced by BuildTransferMatrix(), TPZInterfaceElement::InitializeElementMatrix(), InitializeElementMatrix(), InitMaterialData(), InterpolateSolution(), NSideShapeF(), ProjectFlux(), and SideConnect().
|
pure virtual |
Returns the number of dof nodes along side iside.
Implemented in TPZCompElDisc, TPZSBFemVolume, TPZCompElHDiv< TSHAPE >, TPZInterpolatedElement, TPZCompElHDivBound2< TSHAPE >, TPZIntelGen< TSHAPE >, and TPZReducedSpace.
Referenced by NSideShapeF(), and hdivCurvedJCompAppMath::SetupDisconnectedHdivboud().
|
inline |
Returns the number of shape functions on a side.
Definition at line 59 of file pzinterpolationspace.h.
References NShapeF(), NSideConnects(), and SideConnectLocId().
|
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().
|
overridevirtual |
Prints the relevant data of the element to the output stream.
Reimplemented from TPZCompEl.
Reimplemented in TPZSBFemVolume, TPZCompElDisc, TPZAgglomerateElement, TPZCompElHDivBound2< TSHAPE >, TPZInterpolatedElement, and TPZCompElHDiv< TSHAPE >.
Definition at line 90 of file pzinterpolationspace.cpp.
References fPreferredOrder, and TPZCompEl::Print().
Referenced by BuildTransferMatrix(), TPZCompMesh::BuildTransferMatrix(), EvaluateError(), TPZInterpolatedElement::Print(), ProjectFlux(), and RemoveInterface().
|
overridevirtual |
Integrate the solution over the element.
Will project the flux associated with the variational statement onto the finite element interpolation space
ek | projection matrix |
ef | inner 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().
|
overridevirtual |
Reads the element data from a stream.
Read the element data from a stream
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElDisc, TPZCompElHDiv< TSHAPE >, TPZAgglomerateElement, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, TPZIntelGen< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZReducedSpace, and TPZInterpolatedElement.
Definition at line 1724 of file pzinterpolationspace.cpp.
References fPreferredOrder, TPZStream::Read(), and TPZCompEl::Read().
Referenced by GetPreferredOrder(), TPZInterpolatedElement::Read(), TPZReducedSpace::Read(), and TPZCompElDisc::Read().
void TPZInterpolationSpace::RemoveInterface | ( | int | side | ) |
Remove interface which is neighbour from side side.
Definition at line 1032 of file pzinterpolationspace.cpp.
References EInterface, TPZCompElSide::EqualLevelElementList(), TPZCompEl::Index(), LOGPZ_DEBUG, TPZVec< T >::NElements(), TPZGeoEl::NumInterfaces(), Print(), TPZGeoEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZCompEl::Type().
Referenced by ComputeRequiredData(), and RemoveInterfaces().
void TPZInterpolationSpace::RemoveInterfaces | ( | ) |
Remove interfaces connected to this element.
Definition at line 977 of file pzinterpolationspace.cpp.
References DebugStop, TPZMaterial::Dimension(), TPZGeoElSide::Dimension(), EInterface, TPZCompElSide::HigherLevelElementList(), LOGPZ_DEBUG, LOGPZ_ERROR, LOGPZ_FATAL, TPZCompEl::Material(), TPZVec< T >::NElements(), TPZGeoEl::NSides(), TPZStack< T, NumExtAlloc >::Push(), PZError, TPZCompEl::Reference(), TPZCompElSide::Reference(), RemoveInterface(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZCompEl::Type().
Referenced by TPZCompMesh::Coarsen(), ComputeRequiredData(), TPZCompMesh::Discontinuous2Continuous(), TPZCompElDisc::Divide(), TPZInterpolatedElement::Divide(), and TPZCompMesh::RemakeAllInterfaceElements().
|
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().
|
pure virtual |
Defines the desired order for entire element.
Implemented in TPZCompElDisc, TPZSBFemVolume, TPZReducedSpace, TPZInterpolatedElement, TPZCompElHDiv< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Referenced by TPZPostProcAnalysis::AutoBuildDisc(), TPZCreateApproximationSpace::MakeRaviartThomas(), and TPZSBFemVolume::SetPreferredOrder().
|
virtual |
It set the normal orientation of the element by the side. Only side that has dimension equal to my dimension minus one.
side | side of the reference elemen |
Reimplemented in TPZCompElHDiv< TSHAPE >, and TPZCompElHDivBound2< TSHAPE >.
Definition at line 1718 of file pzinterpolationspace.cpp.
References DebugStop.
Referenced by TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), TPZMHMixedMeshControl::CreateSkeleton(), TPZMHMeshControl::CreateSkeleton(), GetPreferredOrder(), TPZMHMixedMeshControl::HybridizeSkeleton(), hdivCurvedJCompAppMath::SetupDisconnectedHdivboud(), TPZHybridizeHDiv::SplitConnects(), and TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures().
|
pure virtual |
Computes the shape function set at the point x.
qsi | point in master element coordinates |
phi | vector of values of shapefunctions, dimension (numshape,1) |
dphi | matrix 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().
|
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().
|
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().
|
pure virtual |
Returns the local node number of icon along is.
icon | connect number along side is |
is | side which is being queried |
Implemented in TPZCompElDisc, TPZSBFemVolume, TPZCompElHDiv< TSHAPE >, TPZInterpolatedElement, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZIntelGen< TSHAPE >, and TPZReducedSpace.
Referenced by TPZBuildMultiphysicsMesh::AddWrap(), NSideShapeF(), hdivCurvedJCompAppMath::SetupDisconnectedHdivboud(), SideConnect(), and SideConnectIndex().
|
inlinevirtual |
Compute the values of the shape function along the side.
Reimplemented in TPZCompElHDiv< TSHAPE >, TPZInterpolatedElement, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, and TPZIntelGen< TSHAPE >.
Definition at line 141 of file pzinterpolationspace.h.
References ComputeRequiredData(), ComputeShape(), TPZGeoEl::Dimension(), InitMaterialData(), TPZGeoEl::NSides(), TPZGeoEl::ProjectPoint(), TPZCompEl::Reference(), and Shape().
|
overridevirtual |
Post processing method which computes the solution for the var post processed variable.
qsi | coordinate of the point in master element space where the solution will be evaluated |
var | variable which will be computed |
sol | (output) solution computed at the given point |
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().
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().
|
overridevirtual |
Saves the element data to a stream.
Save the element data to a stream
Reimplemented from TPZCompEl.
Reimplemented in TPZCompElDisc, TPZCompElHDiv< TSHAPE >, TPZAgglomerateElement, TPZCompElHDivBound2< TSHAPE >, TPZCompElHDivPressure< TSHAPE >, TPZIntelGen< TSHAPE >, TPZCompElHDivPressureBound< TSHAPE >, TPZReducedSpace, and TPZInterpolatedElement.
Definition at line 1396 of file pzinterpolationspace.cpp.
References fPreferredOrder, TPZStream::Write(), and TPZCompEl::Write().
Referenced by GetPreferredOrder(), TPZInterpolatedElement::Write(), TPZReducedSpace::Write(), and TPZCompElDisc::Write().
|
protected |
Preferred polynomial order.
Definition at line 296 of file pzinterpolationspace.h.
Referenced by GetPreferredOrder(), TPZIntelGen< TSHAPE >::PreferredSideOrder(), TPZCompElHDivBound2< TSHAPE >::PreferredSideOrder(), TPZCompElHDiv< TSHAPE >::PreferredSideOrder(), Print(), TPZIntelGen< TSHAPE >::Read(), TPZCompElHDivPressure< TSHAPE >::Read(), TPZCompElHDiv< TSHAPE >::Read(), Read(), TPZCompElDisc::SetDegree(), TPZIntelGen< TSHAPE >::SetInterpolationOrder(), TPZIntelGen< TSHAPE >::SetPreferredOrder(), TPZCompElHDivPressure< TSHAPE >::SetPreferredOrder(), TPZSBFemVolume::SetPreferredOrder(), TPZIntelGen< TSHAPE >::SetSideOrder(), TPZCompElHDiv< TSHAPE >::TPZCompElHDiv(), TPZCompElHDivBound2< TSHAPE >::TPZCompElHDivBound2(), TPZIntelGen< TSHAPE >::TPZIntelGen(), TPZInterpolationSpace(), TPZIntelGen< TSHAPE >::Write(), TPZCompElHDivPressure< TSHAPE >::Write(), TPZCompElHDiv< TSHAPE >::Write(), and Write().