NeoPZ
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members

Implements an agglomerated discontinuous element. Computational Element. More...

#include <TPZAgglomerateEl.h>

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

Public Member Functions

 TPZAgglomerateElement (int nummat, int64_t &index, TPZCompMesh &aggcmesh, TPZCompMesh *finemesh)
 Constructor: If the element is possible to grouped returns a new index, else returns -1. More...
 
 TPZAgglomerateElement ()
 
void InitializeElement ()
 Initialize the characteristics data of the clustered elements. More...
 
void SetInnerRadius (REAL InnerRadius) override
 Sets the inner radius value. More...
 
REAL InnerRadius2 ()
 Returns the inner radius value. More...
 
REAL InnerRadius () override
 Returns the inner radius value. More...
 
void SetNInterfaces (int nfaces) override
 Sets element's number of interfaces. More...
 
int NInterfaces () override
 Retunrs the number of interfaces. More...
 
 ~TPZAgglomerateElement ()
 Destructor. More...
 
MElementType Type () override
 Type of the element. More...
 
TPZCompMeshMotherMesh ()
 Returns father mesh. More...
 
virtual void AccumulateIntegrationRule (int degree, TPZStack< REAL > &point, TPZStack< REAL > &weight) override
 Accumulates integration rule to deformed element. More...
 
virtual void AccumulateVertices (TPZStack< TPZGeoNode *> &nodes) override
 Accumulate the vertices of the agglomerated elements. More...
 
void CenterPoint ()
 Computes the center of the mass to clustered elements. More...
 
virtual void CenterPoint (TPZVec< REAL > &center) override
 Returns the center of the mass. More...
 
REAL VolumeOfEl () override
 Returns the volume of the geometric element referenced. More...
 
void CalcResidual (TPZFMatrix< REAL > &Rhs, TPZCompElDisc *el)
 Computes the residual of the solution to father element from clustered subelements. More...
 
void CalcResidual (TPZElementMatrix &ef) override
 Only computes the element residual. More...
 
void CalcStiff (TPZElementMatrix &ek, TPZElementMatrix &ef) override
 Assembles the differential equation to model over the element defined by clustered subelements. More...
 
int64_t NIndexes () const
 Returns the number of clustered subelements. More...
 
TPZGeoElCalculateReference ()
 Returns the geometric element to which this element references. More...
 
virtual REAL LesserEdgeOfEl ()
 Computes a measure of the element. More...
 
TPZCompElSubElement (int64_t sub) const
 Returns the "sub" subelement. More...
 
REAL NormalizeConst () override
 Calculates the normalizing constant of the bases of the element. More...
 
virtual int64_t CreateMidSideConnect () override
 It creates new conect that it associates the degrees of freedom of the element and returns its index. More...
 
int Dimension () const override
 It returns dimension from the elements. More...
 
virtual void Print (std::ostream &out=std::cout) const override
 Prints the features of the element. More...
 
void ListOfDiscEl (TPZStack< TPZCompEl *> &elvec)
 Returns a vector of all discontinuous elements in cluster. More...
 
void IndexesDiscSubEls (TPZStack< int64_t > &elvec)
 Returns a vector of all indexes of the discontinuous elements in cluster. More...
 
int NSides ()
 Returns the number of sides. If all the volumes agglomerated have the same number, it returns this number, else it returns -1. More...
 
void CreateGraphicalElement (TPZGraphMesh &grmesh, int dimension) override
 
void Print (TPZStack< int64_t > &listindex)
 
void ProjectSolution (TPZFMatrix< STATE > &projectsol)
 
int ClassId () const override
 Returns the unique identifier for reading/writing objects to streams. More...
 
void Write (TPZStream &buf, int withclassid) const override
 
void Read (TPZStream &buf, void *context) override
 Read the element data from a stream. More...
 
- Public Member Functions inherited from TPZCompElDisc
void SetTensorialShape ()
 Set tensorial shape functions. More...
 
void SetTotalOrderShape ()
 Set total order shape functions. More...
 
void SetTensorialShapeFull ()
 Set tensorial shape functions with many derivatives. More...
 
void SetTotalOrderShapeFull ()
 Set total order shape functions. More...
 
void SetExternalShapeFunction (TPZAutoPointer< TPZFunction< STATE > > externalShapes)
 Define external shape functions which are stored in class attribute fExternalShape. More...
 
bool HasExternalShapeFunction ()
 Return whether element has external shape functions set to. More...
 
int GetMaterial (const TPZGeoElSide &gside)
 
 TPZCompElDisc ()
 Default constructor. More...
 
 TPZCompElDisc (TPZCompMesh &mesh, TPZGeoEl *ref, int64_t &index)
 Constructor of the discontinuous element associated with geometric element. More...
 
 TPZCompElDisc (TPZCompMesh &mesh, int64_t &index)
 Constructor. More...
 
 TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc &copy)
 Copy constructor. More...
 
 TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc &copy, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap)
 Creates a clone of the given element in a pathc mesh. More...
 
 TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc &copy, int64_t &index)
 
virtual void SetCreateFunctions (TPZCompMesh *mesh) override
 Set create function in TPZCompMesh to create elements of this type. More...
 
virtual TPZCompElClone (TPZCompMesh &mesh) const override
 Method for creating a copy of the element. More...
 
virtual TPZCompElClone (TPZCompMesh &mesh, int64_t &index) const
 
virtual TPZCompElClonePatchEl (TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override
 
virtual ~TPZCompElDisc ()
 Default destructor. More...
 
void Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0) override
 Divide the computational element. More...
 
virtual void Shape (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphidxi) override
 Computes the shape function set at the point x. This method uses the order of interpolation of the element along the sides to compute the number of shapefunctions. More...
 
virtual void ComputeShape (TPZVec< REAL > &intpoint, TPZMaterialData &data) override
 Compute shape functions based on master element in the classical FEM manne. More...
 
virtual void ShapeX (TPZVec< REAL > &X, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 
void AppendExternalShapeFunctions (TPZVec< REAL > &X, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Add extenal shape function into already computed phi and dphi discontinuous functions. More...
 
virtual const TPZIntPointsGetIntegrationRule () const override
 Returns a reference to an integration rule suitable for integrating the interior of the element. More...
 
virtual TPZIntPointsGetIntegrationRule () override
 Returns a reference to an integration rule suitable for integrating the interior of the element. More...
 
REAL ConstC () const
 It returns the constant that normalizes the bases of the element. More...
 
void SetConstC (REAL c)
 
void SetTrueUseQsiEta ()
 
void SetFalseUseQsiEta ()
 
void InternalPoint (TPZVec< REAL > &point)
 Returns the center point. More...
 
virtual int Degree () const
 Returns the degree of interpolation of the element. More...
 
virtual void SetDegree (int degree)
 Assigns the degree of the element. More...
 
virtual int NConnects () const override
 Returns the number of connects. More...
 
int NCornerConnects () const
 Amount of vertices of the element. More...
 
virtual void BuildCornerConnectList (std::set< int64_t > &connectindexes) const override
 adds the connect indexes associated with base shape functions to the set More...
 
int Dimension () const override
 Returns dimension from the element. More...
 
int64_t ConnectIndex (int side=0) const override
 Returns the connect index from the element. More...
 
void SetConnectIndex (int, int64_t index) override
 Set the index i to node inode. More...
 
virtual int NSideConnects (int iside) const override
 Returns the number of dof nodes along side iside. More...
 
virtual int SideConnectLocId (int icon, int is) const override
 Returns the local node number of icon along is. More...
 
virtual int NShapeF () const override
 Returns the shapes number of the element. More...
 
virtual int MaxOrder () override
 Returns the max order of interpolation. More...
 
int MaxOrderExceptExternalShapes ()
 Returns the max order of interpolation excluding external shape order. More...
 
virtual int NConnectShapeF (int inod, int order) const override
 Returns the number of shapefunctions associated with a connect. More...
 
REAL CenterPoint (int index) const
 
void SetCenterPoint (int i, REAL x)
 
REAL SizeOfElement ()
 
void CreateGraphicalElement (TPZGraphMesh &grmesh, int dimension) override
 Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files. More...
 
void SolutionX (TPZVec< REAL > &x, TPZVec< STATE > &uh)
 Computes the solution in function of a point in cartesian space. More...
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) override
 Computes solution and its derivatives in the local coordinate qsi. More...
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data) override
 Compute shape functions based on master element in the classical FEM manne. More...
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphix, const TPZFMatrix< REAL > &axes, TPZSolVec &sol, TPZGradSolVec &dsol) override
 Computes solution and its derivatives in local coordinate qsi. More...
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZVec< REAL > &normal, TPZSolVec &leftsol, TPZGradSolVec &dleftsol, TPZFMatrix< REAL > &leftaxes, TPZSolVec &rightsol, TPZGradSolVec &drightsol, TPZFMatrix< REAL > &rightaxes) override
 Computes solution and its derivatives in the local coordinate qsi.
This method will function for both volumetric and interface elements. More...
 
int NSides ()
 
void BuildTransferMatrix (TPZCompElDisc &coarsel, TPZTransfer< STATE > &transfer)
 
int ClassId () const override
 Returns the unique identifier for reading/writing objects to streams. More...
 
void Write (TPZStream &buf, int withclassid) const override
 Save the element data to a stream. More...
 
void Read (TPZStream &buf, void *context) override
 Read the element data from a stream. More...
 
virtual void SetPreferredOrder (int order) override
 Define the desired order for entire element. More...
 
virtual void PRefine (int order) override
 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...
 
- Public Member Functions inherited from TPZInterpolationSpace
 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 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 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 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 int GetPreferredOrder ()
 Returns the prefered order for the element. More...
 
virtual int GetSideOrient (int side)
 It returns the normal orientation of the reference element by the side. Only side that has dimension larger than zero and smaller than me. More...
 
virtual void SetSideOrient (int side, int sideorient)
 It set the normal orientation of the element by the side. Only side that has dimension equal to my dimension minus one. More...
 
void BuildTransferMatrix (TPZInterpolationSpace &coarsel, TPZTransform<> &t, TPZTransfer< STATE > &transfer)
 Accumulates the transfer coefficients between the current element and the coarse element
into the transfer matrix, using the transformation t. More...
 
int NSideShapeF (int side) const
 Returns the number of shape functions on a side. More...
 
int64_t SideConnectIndex (int icon, int is) const
 Returns the index of the c th connect object along side is. More...
 
TPZConnectSideConnect (int icon, int is) const
 Returns a pointer to the icon th connect object along side is. 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 SideShapeFunction (int side, TPZVec< REAL > &point, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Compute the values of the shape function along the side. More...
 
- Public Member Functions inherited from TPZCompEl
 TPZCompEl ()
 Simple Constructor. More...
 
virtual ~TPZCompEl ()
 Simple destructor. 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 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 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 BuildConnectList (std::set< int64_t > &indepconnectlist, std::set< int64_t > &depconnectlist)
 Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More...
 
virtual void BuildConnectList (TPZStack< int64_t > &connectlist) const
 Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More...
 
virtual void BuildConnectList (std::set< int64_t > &connectlist)
 Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More...
 
virtual int HasDependency ()
 Returns 1 if the element has at least one dependent node. Returns 0 otherwise. More...
 
virtual int PressureConnectIndex () const
 Returns the index of the pressure connect. More...
 
virtual void ReduceInternalNodes ()
 Domain Decomposition.
This method will eliminate the nodes which are internal to the element from the datastructure of the grid
After calling this method, the superelement will statically condense the internal equations. More...
 
virtual void CalcBlockDiagonal (TPZStack< int64_t > &connectlist, TPZBlockDiagonal< STATE > &block)
 Calculates the diagonal block. More...
 
REAL MaximumRadiusOfEl ()
 Will return the maximum distance between the nodes of the reference element. More...
 
REAL LesserEdgeOfEl ()
 Will return the smallest distance between two nodes of the reference element. More...
 
virtual void InitializeIntegrationRule ()
 
virtual void SetIntegrationRule (TPZIntPoints *intrule)
 Method to set a dynamically allocated integration rule. More...
 
virtual 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 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 TPZConnectConnect (int i) const
 Returns a pointer to the ith node. 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
 

Static Public Member Functions

static void AddSubElementIndex (TPZCompMesh *aggcmesh, int64_t subel, int64_t destind)
 Insert the subelement index. More...
 
static void ListOfGroupings (TPZCompMesh *finemesh, TPZVec< int64_t > &accumlist, int nivel, int64_t &numaggl, int dim)
 
static TPZAgglomerateMeshCreateAgglomerateMesh (TPZCompMesh *finemesh, TPZVec< int64_t > &accumlist, int64_t numaggl)
 
static void ComputeNeighbours (TPZCompMesh *mesh, std::map< TPZCompElDisc *, std::set< TPZCompElDisc *> > &neighbours)
 
- Static Public Member Functions inherited from TPZCompElDisc
static void SetTensorialShape (TPZCompMesh *cmesh)
 Sets tensorial shape functions for all Discontinuous elements in cmesh. More...
 
static void SetTotalOrderShape (TPZCompMesh *cmesh)
 Set total order shape functions for all Discontinuous elements in cmesh. More...
 
static TPZCompElCreateDisc (TPZGeoEl *geo, TPZCompMesh &mesh, int64_t &index)
 Creates discontinuous computational element. More...
 
static void SetOrthogonalFunction (void(*orthogonal)(REAL C, REAL x0, REAL x, int degree, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, int n))
 Sets the orthogonal function which will be used throughout the program. More...
 
static REAL EvaluateSquareResidual2D (TPZInterpolationSpace *cel)
 Compute the integral of the square residual over the element domain. More...
 
static void EvaluateSquareResidual2D (TPZCompMesh &cmesh, TPZVec< REAL > &error, bool verbose=false)
 Evaluates the square residual for every element in mesh. More...
 
- Static Public Member Functions inherited from TPZInterpolationSpace
static void Convert2Axes (const TPZFMatrix< REAL > &dphi, const TPZFMatrix< REAL > &jacinv, TPZFMatrix< REAL > &dphidx)
 convert a shapefunction derivative in xi-eta to a function derivative in axes More...
 
- Static Public Member Functions inherited from TPZCompEl
static int StaticClassId ()
 
static void SetgOrder (int order)
 Sets the value of the default interpolation order. More...
 
static int GetgOrder ()
 Set the default value of the interpolation order. More...
 
static void SetOrthogonalFunction (void(*orthogonal)(REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi))
 Sets the orthogonal function which will be used throughout the program by default this function is the Chebyshev function. More...
 
static void Chebyshev (REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Implements of the orthogonal Chebyshev functions. More...
 
- Static Public Member Functions inherited from TPZSavable
static std::set< TPZRestoreClassBase * > & RestoreClassSet ()
 This static function guarantees that the gMap object is available when needed. More...
 
static std::map< int, TPZRestore_t > & ClassIdMap ()
 This static function guarantees that the gMap object is available when needed. More...
 
static std::pair< std::string, uint64_t > NeoPZVersion ()
 
static void Register (TPZRestoreClassBase *restore)
 
static void RegisterClassId (int classid, TPZRestore_t fun)
 
static TPZSavableCreateInstance (const int &classId)
 

Private Attributes

TPZStack< int64_t > fIndexes
 Indexes into the fine mesh of computational subelements in the clusters by the current. More...
 
TPZCompMeshfMotherMesh
 Mesh for the clusters which elements are part and from that the current mesh was obtained. More...
 
REAL fInnerRadius
 Stores the element's inner radius. More...
 
int fNFaces
 Stores the number of interfaces of the element. More...
 
int fMaterialId
 Material id of the agglomerated element. More...
 

Additional Inherited Members

- Protected Member Functions inherited from TPZCompElDisc
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) override
 Compute shape functions based on master element in the classical FEM manner. More...
 
- Protected Member Functions inherited from TPZInterpolationSpace
void ExpandShapeFunctions (TPZVec< int64_t > &connectlist, TPZVec< int > &dependencyorder, TPZVec< int > &blocksizes, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Auxiliary method to expand a vector of shapefunctions and their derivatives to acount for constraints. More...
 
- Protected Attributes inherited from TPZCompElDisc
TPZAutoPointer< TPZIntPointsfIntRule
 
pzshape::TPZShapeDisc::MShapeType fShapefunctionType
 Shape function type used by the element. More...
 
int64_t fConnectIndex
 It preserves index of connect associated to the element. More...
 
REAL fConstC
 Normalizing constant for shape functions. More...
 
bool fUseQsiEta
 Variable to choose the qsi point or the X point in the calculus of the phis and dphis. More...
 
TPZAutoPointer< TPZFunction< STATE > > fExternalShape
 A pz function to allow the inclusion of extra shape functions which are defined externally. More...
 
TPZManVector< REAL, 3 > fCenterPoint
 It keeps the interior point coordinations of the element. More...
 
- Protected Attributes inherited from TPZInterpolationSpace
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...
 

Detailed Description

Implements an agglomerated discontinuous element. Computational Element.

TPZAgglomerateElement clase that it manages the generation of elements from the agglomeration of some geometric elements

Definition at line 34 of file TPZAgglomerateEl.h.

Constructor & Destructor Documentation

◆ TPZAgglomerateElement() [1/2]

TPZAgglomerateElement::TPZAgglomerateElement ( int  nummat,
int64_t &  index,
TPZCompMesh aggcmesh,
TPZCompMesh finemesh 
)

Constructor: If the element is possible to grouped returns a new index, else returns -1.

o algomerado aponta para nulo mas o elemento computacional que ele agrupa aponta para o geom�rico original a copia do material na nova malha (malha aglomerada) neste ponto j�devia existir

Definition at line 32 of file TPZAgglomerateEl.cpp.

References CreateMidSideConnect(), fInnerRadius, fMaterialId, fMotherMesh, fNFaces, and TPZMaterial::gBigNumber.

◆ TPZAgglomerateElement() [2/2]

TPZAgglomerateElement::TPZAgglomerateElement ( )

Definition at line 53 of file TPZAgglomerateEl.cpp.

Referenced by CreateAgglomerateMesh().

◆ ~TPZAgglomerateElement()

TPZAgglomerateElement::~TPZAgglomerateElement ( )
inline

Destructor.

Definition at line 115 of file TPZAgglomerateEl.h.

Member Function Documentation

◆ AccumulateIntegrationRule()

void TPZAgglomerateElement::AccumulateIntegrationRule ( int  degree,
TPZStack< REAL > &  point,
TPZStack< REAL > &  weight 
)
overridevirtual

Accumulates integration rule to deformed element.

Reimplemented from TPZCompElDisc.

Definition at line 107 of file TPZAgglomerateEl.cpp.

References TPZCompElDisc::AccumulateIntegrationRule(), DebugStop, NIndexes(), PZError, and SubElement().

Referenced by CalcStiff(), and MotherMesh().

◆ AccumulateVertices()

void TPZAgglomerateElement::AccumulateVertices ( TPZStack< TPZGeoNode *> &  nodes)
overridevirtual

Accumulate the vertices of the agglomerated elements.

Reimplemented from TPZCompElDisc.

Definition at line 787 of file TPZAgglomerateEl.cpp.

References TPZCompElDisc::AccumulateVertices(), TPZCompMesh::ElementVec(), fIndexes, fMotherMesh, and TPZVec< T >::NElements().

Referenced by LesserEdgeOfEl(), and MotherMesh().

◆ AddSubElementIndex()

void TPZAgglomerateElement::AddSubElementIndex ( TPZCompMesh aggcmesh,
int64_t  subel,
int64_t  destind 
)
static

Insert the subelement index.

Definition at line 58 of file TPZAgglomerateEl.cpp.

References TPZCompMesh::ElementVec(), fIndexes, TPZStack< T, NumExtAlloc >::Push(), and PZError.

Referenced by CreateAgglomerateMesh(), and NInterfaces().

◆ CalcResidual() [1/2]

void TPZAgglomerateElement::CalcResidual ( TPZFMatrix< REAL > &  Rhs,
TPZCompElDisc el 
)

Computes the residual of the solution to father element from clustered subelements.

Definition at line 173 of file TPZAgglomerateEl.cpp.

References PZError.

Referenced by MotherMesh().

◆ CalcResidual() [2/2]

void TPZAgglomerateElement::CalcResidual ( TPZElementMatrix ef)
inlineoverridevirtual

Only computes the element residual.

Parameters
efelement residual

Reimplemented from TPZInterpolationSpace.

Definition at line 141 of file TPZAgglomerateEl.h.

References CalcStiff().

◆ CalcStiff()

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

◆ CalculateReference()

TPZGeoEl* TPZAgglomerateElement::CalculateReference ( )

Returns the geometric element to which this element references.

Referenced by NIndexes().

◆ CenterPoint() [1/2]

void TPZAgglomerateElement::CenterPoint ( )

Computes the center of the mass to clustered elements.

Definition at line 121 of file TPZAgglomerateEl.cpp.

References TPZCompElDisc::CenterPoint(), NIndexes(), TPZCompElDisc::SetCenterPoint(), SubElement(), and TPZCompElDisc::VolumeOfEl().

Referenced by InitializeElement(), and MotherMesh().

◆ CenterPoint() [2/2]

void TPZAgglomerateElement::CenterPoint ( TPZVec< REAL > &  center)
overridevirtual

Returns the center of the mass.

Reimplemented from TPZCompElDisc.

Definition at line 151 of file TPZAgglomerateEl.cpp.

References TPZCompElDisc::fCenterPoint.

◆ ClassId()

int TPZAgglomerateElement::ClassId ( ) const
overridevirtual

Returns the unique identifier for reading/writing objects to streams.

returns the unique identifier for reading/writing objects to streams

Reimplemented from TPZInterpolationSpace.

Definition at line 1033 of file TPZAgglomerateEl.cpp.

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

Referenced by NIndexes().

◆ ComputeNeighbours()

void TPZAgglomerateElement::ComputeNeighbours ( TPZCompMesh mesh,
std::map< TPZCompElDisc *, std::set< TPZCompElDisc *> > &  neighbours 
)
static

◆ CreateAgglomerateMesh()

TPZAgglomerateMesh * TPZAgglomerateElement::CreateAgglomerateMesh ( TPZCompMesh finemesh,
TPZVec< int64_t > &  accumlist,
int64_t  numaggl 
)
static

somente s� aglomerados elementos de volume elementos de interface n� s� aglomerados, cada interface deve conhecer o elemento aglomerado esquerdo e direito elementos fantasmas ou BC n� s� aglomerados, a cada elemento BC corresponde um elemento interface de igual tamanho ou n�el todo elemento interface e todo elemento BC deve ser clonado para a malha aglomerada todo elemento de volume deve ter associado um agrupamento podendo ser um nico elemento a posi� K de accumlist indica o index K do elemento computacional que ser�acumulado, o inteiro guardado nessa posi� indica o elemento ao qual sera aglomerado, assim si accumlist[8] = 4 ent� o elemento computacional de index 8 ser�agrupado para formar o elemento aglomerado de index 4

Definition at line 801 of file TPZAgglomerateEl.cpp.

References AddSubElementIndex(), TPZCompElDisc::CenterPoint(), TPZGeoEl::CenterPoint(), TPZCompElDisc::Clone(), TPZInterfaceElement::CloneInterface(), TPZCompMesh::CopyMaterials(), DebugStop, TPZCompMesh::Dimension(), TPZCompEl::Dimension(), EAgglomerate, EDiscontinuous, EInterface, TPZCompMesh::ElementVec(), TPZVec< T >::Fill(), TPZCompEl::Index(), InitializeElement(), InnerRadius2(), TPZInterfaceElement::LeftElement(), TPZInterfaceElement::LeftElementSide(), TPZCompMesh::NElements(), TPZVec< T >::NElements(), TPZChunkVector< T, EXP >::NElements(), NInterfaces(), TPZGeoEl::NSides(), PZError, TPZCompEl::Reference(), TPZInterfaceElement::RightElement(), TPZInterfaceElement::RightElementSide(), SetInnerRadius(), SetNInterfaces(), TPZCompElSide::Side(), sqrt, TPZAgglomerateElement(), TPZCompEl::Type(), and TPZGeoEl::X().

Referenced by TPZNonLinMultGridAnalysis::AgglomerateMesh(), and NIndexes().

◆ CreateGraphicalElement()

void TPZAgglomerateElement::CreateGraphicalElement ( TPZGraphMesh grmesh,
int  dimension 
)
overridevirtual

Creates graphical element to postprocessing

Reimplemented from TPZCompEl.

Definition at line 332 of file TPZAgglomerateEl.cpp.

References TPZMaterial::Id(), TPZCompEl::Material(), TPZGraphMesh::Material_Is_PostProcessed(), NSides(), and TPZCompEl::Reference().

Referenced by NIndexes().

◆ CreateMidSideConnect()

int64_t TPZAgglomerateElement::CreateMidSideConnect ( )
overridevirtual

◆ Dimension()

int TPZAgglomerateElement::Dimension ( ) const
overridevirtual

It returns dimension from the elements.

Implements TPZCompEl.

Definition at line 312 of file TPZAgglomerateEl.cpp.

References TPZMaterial::Dimension(), and TPZCompEl::Material().

Referenced by CalcStiff(), CreateMidSideConnect(), TPZGraphMesh::FindFirstInterpolatedElement(), NIndexes(), and ProjectSolution().

◆ IndexesDiscSubEls()

void TPZAgglomerateElement::IndexesDiscSubEls ( TPZStack< int64_t > &  elvec)

◆ InitializeElement()

void TPZAgglomerateElement::InitializeElement ( )

◆ InnerRadius()

REAL TPZAgglomerateElement::InnerRadius ( )
inlineoverridevirtual

Returns the inner radius value.

Inner radius is the sub-element's radius average weighted by their volumes.

Reimplemented from TPZInterpolationSpace.

Definition at line 87 of file TPZAgglomerateEl.h.

References TPZInterpolationSpace::InnerRadius(), NIndexes(), PZError, SubElement(), VolumeOfEl(), and TPZCompElDisc::VolumeOfEl().

Referenced by SetInnerRadius().

◆ InnerRadius2()

REAL TPZAgglomerateElement::InnerRadius2 ( )
inline

Returns the inner radius value.

Inner radius mut be set with SetInnerRadius.

Definition at line 83 of file TPZAgglomerateEl.h.

References fInnerRadius.

Referenced by CreateAgglomerateMesh().

◆ LesserEdgeOfEl()

REAL TPZAgglomerateElement::LesserEdgeOfEl ( )
virtual

Computes a measure of the element.

os geométricos agrupados apontam para o computacionalComputes the maximum distance in x,y and z and then returns the minimum of these three measures

Definition at line 724 of file TPZAgglomerateEl.cpp.

References AccumulateVertices(), fabs, TPZVec< T >::NElements(), and PZError.

Referenced by NIndexes().

◆ ListOfDiscEl()

void TPZAgglomerateElement::ListOfDiscEl ( TPZStack< TPZCompEl *> &  elvec)

Returns a vector of all discontinuous elements in cluster.

Definition at line 361 of file TPZAgglomerateEl.cpp.

References EAgglomerate, EDiscontinuous, NIndexes(), TPZStack< T, NumExtAlloc >::Push(), PZError, SubElement(), and TPZCompElDisc::Type().

Referenced by NIndexes().

◆ ListOfGroupings()

void TPZAgglomerateElement::ListOfGroupings ( TPZCompMesh finemesh,
TPZVec< int64_t > &  accumlist,
int  nivel,
int64_t &  numaggl,
int  dim 
)
static

◆ MotherMesh()

TPZCompMesh* TPZAgglomerateElement::MotherMesh ( )
inline

◆ NIndexes()

int64_t TPZAgglomerateElement::NIndexes ( ) const
inline

◆ NInterfaces()

int TPZAgglomerateElement::NInterfaces ( )
inlineoverridevirtual

Retunrs the number of interfaces.

Reimplemented from TPZCompElDisc.

Definition at line 109 of file TPZAgglomerateEl.h.

References AddSubElementIndex(), and fNFaces.

Referenced by CreateAgglomerateMesh().

◆ NormalizeConst()

REAL TPZAgglomerateElement::NormalizeConst ( )
overridevirtual

Calculates the normalizing constant of the bases of the element.

Reimplemented from TPZCompElDisc.

Definition at line 268 of file TPZAgglomerateEl.cpp.

References NIndexes(), TPZCompElDisc::NormalizeConst(), and SubElement().

Referenced by InitializeElement(), and NIndexes().

◆ NSides()

int TPZAgglomerateElement::NSides ( )

Returns the number of sides. If all the volumes agglomerated have the same number, it returns this number, else it returns -1.

Definition at line 355 of file TPZAgglomerateEl.cpp.

References TPZGeoEl::NSides(), and TPZCompEl::Reference().

Referenced by CreateGraphicalElement(), and NIndexes().

◆ Print() [1/2]

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

◆ Print() [2/2]

void TPZAgglomerateElement::Print ( TPZStack< int64_t > &  listindex)

Definition at line 600 of file TPZAgglomerateEl.cpp.

References TPZVec< T >::NElements().

◆ ProjectSolution()

void TPZAgglomerateElement::ProjectSolution ( TPZFMatrix< STATE > &  projectsol)

◆ Read()

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

Read the element data from a stream.

Read the element data from a stream

Reimplemented from TPZInterpolationSpace.

Definition at line 1059 of file TPZAgglomerateEl.cpp.

References fIndexes, TPZAgglomerateMesh::FineMesh(), fInnerRadius, fMotherMesh, fNFaces, TPZCompEl::Mesh(), TPZStream::Read(), and TPZCompElDisc::Read().

Referenced by NIndexes().

◆ SetInnerRadius()

void TPZAgglomerateElement::SetInnerRadius ( REAL  InnerRadius)
inlineoverridevirtual

Sets the inner radius value.

Reimplemented from TPZCompElDisc.

Definition at line 79 of file TPZAgglomerateEl.h.

References InnerRadius().

Referenced by CreateAgglomerateMesh().

◆ SetNInterfaces()

void TPZAgglomerateElement::SetNInterfaces ( int  nfaces)
inlineoverridevirtual

Sets element's number of interfaces.

Reimplemented from TPZCompElDisc.

Definition at line 106 of file TPZAgglomerateEl.h.

Referenced by CreateAgglomerateMesh().

◆ SubElement()

TPZCompEl * TPZAgglomerateElement::SubElement ( int64_t  sub) const

◆ Type()

MElementType TPZAgglomerateElement::Type ( )
inlineoverridevirtual

Type of the element.

Reimplemented from TPZCompElDisc.

Definition at line 118 of file TPZAgglomerateEl.h.

References EAgglomerate.

◆ VolumeOfEl()

REAL TPZAgglomerateElement::VolumeOfEl ( )
overridevirtual

Returns the volume of the geometric element referenced.

um elemento aglomerado �formado de grupos de sub-elementos aglomerados ou de sub-elementos descont�uos n� aglomerados

Reimplemented from TPZCompElDisc.

Definition at line 156 of file TPZAgglomerateEl.cpp.

References NIndexes(), SubElement(), and TPZCompEl::VolumeOfEl().

Referenced by InnerRadius(), and MotherMesh().

◆ Write()

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

Save the element data to a stream

Reimplemented from TPZInterpolationSpace.

Definition at line 1043 of file TPZAgglomerateEl.cpp.

References fIndexes, fInnerRadius, fNFaces, TPZCompEl::Mesh(), TPZStream::Write(), and TPZCompElDisc::Write().

Referenced by NIndexes().

Member Data Documentation

◆ fIndexes

TPZStack<int64_t> TPZAgglomerateElement::fIndexes
private

Indexes into the fine mesh of computational subelements in the clusters by the current.

Indexes na malha fina dos sub-elementos computacionais aglomerados pelo atual

Definition at line 44 of file TPZAgglomerateEl.h.

Referenced by AccumulateVertices(), AddSubElementIndex(), Print(), Read(), SubElement(), and Write().

◆ fInnerRadius

REAL TPZAgglomerateElement::fInnerRadius
private

Stores the element's inner radius.

It is the lessest distance between the element center point and its interface's center points.

Definition at line 59 of file TPZAgglomerateEl.h.

Referenced by InnerRadius2(), Read(), TPZAgglomerateElement(), and Write().

◆ fMaterialId

int TPZAgglomerateElement::fMaterialId
private

Material id of the agglomerated element.

Definition at line 65 of file TPZAgglomerateEl.h.

Referenced by TPZAgglomerateElement().

◆ fMotherMesh

TPZCompMesh* TPZAgglomerateElement::fMotherMesh
private

Mesh for the clusters which elements are part and from that the current mesh was obtained.

Malha a qual os elementos aglomerados fazem parte e do qual o atual foi obtido

Definition at line 52 of file TPZAgglomerateEl.h.

Referenced by AccumulateVertices(), MotherMesh(), Print(), Read(), SubElement(), and TPZAgglomerateElement().

◆ fNFaces

int TPZAgglomerateElement::fNFaces
private

Stores the number of interfaces of the element.

Definition at line 62 of file TPZAgglomerateEl.h.

Referenced by NInterfaces(), Read(), TPZAgglomerateElement(), and Write().


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