NeoPZ
|
Implements an agglomerated discontinuous element. Computational Element. More...
#include <TPZAgglomerateEl.h>
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... | |
TPZCompMesh * | MotherMesh () |
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 > ¢er) 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... | |
TPZGeoEl * | CalculateReference () |
Returns the geometric element to which this element references. More... | |
virtual REAL | LesserEdgeOfEl () |
Computes a measure of the element. More... | |
TPZCompEl * | SubElement (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 constructor. More... | |
TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc ©, 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 ©, int64_t &index) | |
virtual void | SetCreateFunctions (TPZCompMesh *mesh) override |
Set create function in TPZCompMesh to create elements of this type. More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh) const override |
Method for creating a copy of the element. More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh, int64_t &index) const |
virtual TPZCompEl * | ClonePatchEl (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 TPZIntPoints & | GetIntegrationRule () const override |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual TPZIntPoints & | GetIntegrationRule () 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 ©) | |
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 | 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... | |
TPZInterfaceElement * | CreateInterface (int side, bool BetweenContinuous=false) |
Create an interface between this and the neighbour by side side. More... | |
int | ExistsInterface (TPZGeoElSide geosd) |
Verify existence of interface. More... | |
void | RemoveInterfaces () |
Remove interfaces connected to this element. More... | |
void | RemoveInterface (int side) |
Remove interface which is neighbour from side side. More... | |
virtual void | EvaluateError (std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)> func, TPZVec< REAL > &errors, bool store_error) override |
Performs an error estimate on the elemen. More... | |
virtual void | ComputeError (int errorid, TPZVec< REAL > &error) override |
Computes the element error estimator. More... | |
virtual TPZVec< STATE > | IntegrateSolution (int variable) const override |
Integrate a variable over the element. More... | |
virtual void | Integrate (int variable, TPZVec< STATE > &value) override |
Integrates a variable over the element. More... | |
void | ProjectFlux (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
Integrate the solution over the element. More... | |
virtual int | GetPreferredOrder () |
Returns the prefered order for the element. More... | |
virtual int | GetSideOrient (int side) |
It returns the normal orientation of the reference element by the side. Only side that has dimension larger than zero and smaller than me. More... | |
virtual void | SetSideOrient (int side, int sideorient) |
It set the normal orientation of the element by the side. Only side that has dimension equal to my dimension minus one. More... | |
void | BuildTransferMatrix (TPZInterpolationSpace &coarsel, TPZTransform<> &t, TPZTransfer< STATE > &transfer) |
Accumulates the transfer coefficients between the current element and the coarse element into the transfer matrix, using the transformation t. More... | |
int | NSideShapeF (int side) const |
Returns the number of shape functions on a side. More... | |
int64_t | SideConnectIndex (int icon, int is) const |
Returns the index of the c th connect object along side is. More... | |
TPZConnect & | SideConnect (int icon, int is) const |
Returns a pointer to the icon th connect object along side is. More... | |
virtual 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 ©) | |
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 | 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< TPZOneShapeRestraint > | GetShapeRestraints () const |
Return a list with the shape restraints. More... | |
virtual void | ResetShapeRestraints () |
Return a list with the shape restraints. More... | |
virtual TPZVec< STATE > | IntegrateSolution (const std::string &varname, const std::set< int > &matids) |
Compute the integral of a variable defined by the string if the material id is included in matids. More... | |
virtual void | BuildConnectList (std::set< int64_t > &indepconnectlist, std::set< int64_t > &depconnectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (TPZStack< int64_t > &connectlist) const |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (std::set< int64_t > &connectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual int | HasDependency () |
Returns 1 if the element has at least one dependent node. Returns 0 otherwise. More... | |
virtual int | PressureConnectIndex () const |
Returns the index of the pressure connect. More... | |
virtual void | ReduceInternalNodes () |
Domain Decomposition. This method will eliminate the nodes which are internal to the element from the datastructure of the grid After calling this method, the superelement will statically condense the internal equations. More... | |
virtual void | CalcBlockDiagonal (TPZStack< int64_t > &connectlist, TPZBlockDiagonal< STATE > &block) |
Calculates the diagonal block. More... | |
REAL | MaximumRadiusOfEl () |
Will return the maximum distance between the nodes of the reference element. More... | |
REAL | LesserEdgeOfEl () |
Will return the smallest distance between two nodes of the reference element. More... | |
virtual void | InitializeIntegrationRule () |
virtual void | SetIntegrationRule (TPZIntPoints *intrule) |
Method to set a dynamically allocated integration rule. More... | |
virtual int | IsInterface () |
TPZGeoEl * | Reference () const |
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise. More... | |
void | SetReference (int64_t referenceindex) |
virtual bool | NeedsComputing (const std::set< int > &materialids) |
return true if the element has a variational statement associated with the material ids More... | |
virtual int | NEquations () |
Returns the number of equations of the element. More... | |
int64_t | Index () const |
Returns element index of the mesh fELementVec list. More... | |
void | SetIndex (int64_t index) |
Sets element index of the mesh fELementVec list. More... | |
virtual TPZConnect & | Connect (int i) const |
Returns a pointer to the ith node. More... | |
virtual TPZMaterial * | Material () const |
Identify the material object associated with the element. More... | |
TPZGeoEl * | GetRefElPatch () |
Returns the reference geometric element patch. Look for a geometric element which refers to a computational element and is neighbour of the current element AND is larger than the current element. More... | |
virtual void | LoadSolution () |
Loads the solution within the internal data structure of the element. More... | |
void | SetMesh (TPZCompMesh *mesh) |
Sets the grid of the element. More... | |
TPZCompMesh * | Mesh () const |
Return a pointer to the grid of the element. More... | |
virtual void | PrintSolution (TPZVec< REAL > &point, const char *VarName, std::ostream &out) |
Prints the solution - sol - for the variable "VarName" at point specified in terms of the master element coordinates. More... | |
virtual void | PrintCoordinate (TPZVec< REAL > &point, int CoordinateIndex, std::ostream &out) |
Prints one coordinate index corresponding to the point to the output stream. More... | |
virtual void | PrintTitle (const char *VarName, std::ostream &out) |
Prints the variables names associated with the element material. More... | |
Public Member Functions inherited from TPZSavable | |
TPZSavable () | |
virtual | ~TPZSavable () |
virtual std::list< std::map< std::string, uint64_t > > | VersionHistory () const |
virtual std::pair< std::string, uint64_t > | Version () const |
virtual bool | Compare (TPZSavable *copy, bool override=false) |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
virtual bool | Compare (TPZSavable *copy, bool override=false) const |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
Public Member Functions inherited from TPZRegisterClassId | |
template<typename T > | |
TPZRegisterClassId (int(T::*)() const) | |
TPZRegisterClassId ()=default | |
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 TPZAgglomerateMesh * | CreateAgglomerateMesh (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 TPZCompEl * | CreateDisc (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 TPZSavable * | CreateInstance (const int &classId) |
Private Attributes | |
TPZStack< int64_t > | fIndexes |
Indexes into the fine mesh of computational subelements in the clusters by the current. More... | |
TPZCompMesh * | fMotherMesh |
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< TPZIntPoints > | fIntRule |
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 | |
TPZCompMesh * | fMesh |
Computational mesh to which the element belongs. More... | |
int64_t | fIndex |
Element index into mesh element vector. More... | |
TPZIntPoints * | fIntegrationRule |
Integration rule established by the user. More... | |
Implements 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.
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::TPZAgglomerateElement | ( | ) |
Definition at line 53 of file TPZAgglomerateEl.cpp.
Referenced by CreateAgglomerateMesh().
|
inline |
Destructor.
Definition at line 115 of file TPZAgglomerateEl.h.
|
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().
|
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().
|
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().
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().
|
inlineoverridevirtual |
Only computes the element residual.
ef | element residual |
Reimplemented from TPZInterpolationSpace.
Definition at line 141 of file TPZAgglomerateEl.h.
References CalcStiff().
|
overridevirtual |
Assembles the differential equation to model over the element defined by clustered subelements.
Reimplemented from TPZInterpolationSpace.
Definition at line 178 of file TPZAgglomerateEl.cpp.
References AccumulateIntegrationRule(), TPZCompMesh::Block(), TPZInterpolationSpace::CalcStiff(), TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), TPZCompElDisc::ConnectIndex(), TPZMaterial::Contribute(), TPZCompElDisc::Degree(), Dimension(), TPZMaterialData::dphix, TPZMaterialData::dsol, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZVec< T >::Fill(), TPZElementMatrix::fMat, TPZInterpolationSpace::InitMaterialData(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZCompElDisc::NConnects(), TPZVec< T >::NElements(), TPZCompElDisc::NShapeF(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), TPZMaterialData::phi, TPZBlock< TVar >::Position(), TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZElementMatrix::Reset(), TPZManVector< T, NumExtAlloc >::Resize(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZBlock< TVar >::SetNBlocks(), TPZCompElDisc::ShapeX(), TPZBlock< TVar >::Size(), TPZMaterialData::sol, TPZCompMesh::Solution(), and TPZMaterialData::x.
Referenced by CalcResidual().
TPZGeoEl* TPZAgglomerateElement::CalculateReference | ( | ) |
Returns the geometric element to which this element references.
Referenced by NIndexes().
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().
|
overridevirtual |
Returns the center of the mass.
Reimplemented from TPZCompElDisc.
Definition at line 151 of file TPZAgglomerateEl.cpp.
References TPZCompElDisc::fCenterPoint.
|
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().
|
static |
Definition at line 1011 of file TPZAgglomerateEl.cpp.
References TPZCompElDisc::Dimension(), TPZCompMesh::ElementVec(), TPZInterfaceElement::LeftElement(), TPZCompMesh::NElements(), and TPZInterfaceElement::RightElement().
Referenced by NIndexes().
|
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().
|
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().
|
overridevirtual |
It creates new conect that it associates the degrees of freedom of the element and returns its index.
Reimplemented from TPZCompElDisc.
Definition at line 282 of file TPZAgglomerateEl.cpp.
References TPZCompMesh::AllocateNewConnect(), TPZCompMesh::Block(), TPZCompElDisc::ConnectIndex(), TPZCompMesh::ConnectVec(), DebugStop, TPZMaterial::Dimension(), Dimension(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZCompElDisc::NShapeF(), TPZMaterial::NStateVariables(), PZError, TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZCompElDisc::SetConnectIndex(), and TPZCompElDisc::SetDegree().
Referenced by NIndexes(), and TPZAgglomerateElement().
|
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().
void TPZAgglomerateElement::IndexesDiscSubEls | ( | TPZStack< int64_t > & | elvec | ) |
Returns a vector of all indexes of the discontinuous elements in cluster.
Definition at line 380 of file TPZAgglomerateEl.cpp.
References EAgglomerate, EDiscontinuous, TPZCompEl::Index(), NIndexes(), TPZStack< T, NumExtAlloc >::Push(), PZError, SubElement(), and TPZCompEl::Type().
Referenced by NIndexes(), TPZNonLinMultGridAnalysis::ResetReference(), and TPZNonLinMultGridAnalysis::SetReference().
void TPZAgglomerateElement::InitializeElement | ( | ) |
Initialize the characteristics data of the clustered elements.
Definition at line 72 of file TPZAgglomerateEl.cpp.
References CenterPoint(), DebugStop, TPZCompElDisc::Degree(), TPZMaterial::Id(), TPZCompEl::Material(), NIndexes(), NormalizeConst(), PZError, TPZCompElDisc::SetConstC(), TPZCompElDisc::SetDegree(), and SubElement().
Referenced by CreateAgglomerateMesh().
|
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().
|
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().
|
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().
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().
|
static |
Definition at line 521 of file TPZAgglomerateEl.cpp.
References TPZCompMesh::Dimension(), TPZCompEl::Dimension(), EInterface, TPZCompMesh::ElementVec(), TPZGeoEl::Father(), TPZGeoEl::Id(), TPZGeoEl::Level(), TPZCompMesh::NElements(), TPZCompEl::Reference(), TPZVec< T >::Resize(), TPZCompMesh::SetDimModel(), and TPZCompEl::Type().
Referenced by TPZNonLinMultGridAnalysis::AgglomerateMesh(), and NIndexes().
|
inline |
Returns father mesh.
Definition at line 121 of file TPZAgglomerateEl.h.
References AccumulateIntegrationRule(), AccumulateVertices(), CalcResidual(), CenterPoint(), degree(), fMotherMesh, and VolumeOfEl().
Referenced by TPZNonLinMultGridAnalysis::ResetReference(), and TPZNonLinMultGridAnalysis::SetReference().
|
inline |
Returns the number of clustered subelements.
Definition at line 151 of file TPZAgglomerateEl.h.
References CalculateReference(), ClassId(), ComputeNeighbours(), CreateAgglomerateMesh(), CreateGraphicalElement(), CreateMidSideConnect(), dimension, Dimension(), IndexesDiscSubEls(), LesserEdgeOfEl(), ListOfDiscEl(), ListOfGroupings(), TPZVec< T >::NElements(), NormalizeConst(), NSides(), Print(), ProjectSolution(), Read(), SubElement(), and Write().
Referenced by AccumulateIntegrationRule(), TPZCompMesh::BuildTransferMatrixDesc(), CenterPoint(), IndexesDiscSubEls(), InitializeElement(), InnerRadius(), ListOfDiscEl(), NormalizeConst(), Print(), ProjectSolution(), SubElement(), and VolumeOfEl().
|
inlineoverridevirtual |
Retunrs the number of interfaces.
Reimplemented from TPZCompElDisc.
Definition at line 109 of file TPZAgglomerateEl.h.
References AddSubElementIndex(), and fNFaces.
Referenced by CreateAgglomerateMesh().
|
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().
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().
|
overridevirtual |
Prints the features of the element.
Reimplemented from TPZCompElDisc.
Definition at line 316 of file TPZAgglomerateEl.cpp.
References TPZCompElDisc::CenterPoint(), TPZCompElDisc::ConnectIndex(), TPZCompElDisc::ConstC(), TPZCompElDisc::Degree(), TPZCompMesh::ElementVec(), fIndexes, fMotherMesh, and NIndexes().
Referenced by NIndexes().
void TPZAgglomerateElement::Print | ( | TPZStack< int64_t > & | listindex | ) |
Definition at line 600 of file TPZAgglomerateEl.cpp.
References TPZVec< T >::NElements().
void TPZAgglomerateElement::ProjectSolution | ( | TPZFMatrix< STATE > & | projectsol | ) |
Definition at line 636 of file TPZAgglomerateEl.cpp.
References TPZCompElDisc::AccumulateIntegrationRule(), TPZCompMesh::Block(), TPZCompEl::Connect(), TPZCompElDisc::Degree(), degree(), dimension, Dimension(), ELDLt, TPZCompEl::Material(), TPZCompEl::Mesh(), TPZVec< T >::NElements(), NIndexes(), TPZCompElDisc::NShapeF(), TPZMaterial::NStateVariables(), TPZBlock< TVar >::Position(), TPZConnect::SequenceNumber(), TPZCompElDisc::SetDegree(), TPZCompElDisc::ShapeX(), TPZBlock< TVar >::Size(), TPZCompElDisc::SolutionX(), TPZMatrix< TVar >::SolveDirect(), and SubElement().
Referenced by NIndexes(), and TPZCompMesh::ProjectSolution().
|
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().
|
inlineoverridevirtual |
Sets the inner radius value.
Reimplemented from TPZCompElDisc.
Definition at line 79 of file TPZAgglomerateEl.h.
References InnerRadius().
Referenced by CreateAgglomerateMesh().
|
inlineoverridevirtual |
Sets element's number of interfaces.
Reimplemented from TPZCompElDisc.
Definition at line 106 of file TPZAgglomerateEl.h.
Referenced by CreateAgglomerateMesh().
TPZCompEl * TPZAgglomerateElement::SubElement | ( | int64_t | sub | ) | const |
Returns the "sub" subelement.
Definition at line 254 of file TPZAgglomerateEl.cpp.
References TPZCompMesh::ElementVec(), fIndexes, fMotherMesh, NIndexes(), and PZError.
Referenced by AccumulateIntegrationRule(), TPZCompMesh::BuildTransferMatrixDesc(), CenterPoint(), IndexesDiscSubEls(), InitializeElement(), InnerRadius(), ListOfDiscEl(), NIndexes(), NormalizeConst(), ProjectSolution(), and VolumeOfEl().
|
inlineoverridevirtual |
Type of the element.
Reimplemented from TPZCompElDisc.
Definition at line 118 of file TPZAgglomerateEl.h.
References EAgglomerate.
|
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().
|
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().
|
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().
|
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().
|
private |
Material id of the agglomerated element.
Definition at line 65 of file TPZAgglomerateEl.h.
Referenced by TPZAgglomerateElement().
|
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().
|
private |
Stores the number of interfaces of the element.
Definition at line 62 of file TPZAgglomerateEl.h.
Referenced by NInterfaces(), Read(), TPZAgglomerateElement(), and Write().