6 #ifndef AGGLOMERATEELEMHPP 7 #define AGGLOMERATEELEMHPP 91 for (int64_t i = 0; i < nsubel; i++){
95 PZError <<
"TPZAgglomerateElement::InnerRadius FineElement must be a TPZCompElDisc" << std::endl;
143 std::cout << __PRETTY_FUNCTION__ <<
" is not implemented\n";
201 virtual void Print(std::ostream & out = std::cout)
const override;
void IndexesDiscSubEls(TPZStack< int64_t > &elvec)
Returns a vector of all indexes of the discontinuous elements in cluster.
Represents a graphical mesh used for post processing purposes. Post processing.
void Read(TPZStream &buf, void *context) override
Read the element data from a stream.
virtual void Print(std::ostream &out=std::cout) const override
Prints the features of the element.
static TPZAgglomerateMesh * CreateAgglomerateMesh(TPZCompMesh *finemesh, TPZVec< int64_t > &accumlist, int64_t numaggl)
void SetInnerRadius(REAL InnerRadius) override
Sets the inner radius value.
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
void CenterPoint()
Computes the center of the mass to clustered elements.
void ProjectSolution(TPZFMatrix< STATE > &projectsol)
void SetNInterfaces(int nfaces) override
Sets element's number of interfaces.
void degree(int root, int adj_num, int adj_row[], int adj[], int mask[], int deg[], int *iccsze, int ls[], int node_num)
REAL InnerRadius() override
Returns the inner radius value.
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
Defines enum MElementType and contains the implementation of MElementType_NNodes(...) functions.
TPZCompMesh * fMotherMesh
Mesh for the clusters which elements are part and from that the current mesh was obtained.
int Dimension() const override
It returns dimension from the elements.
TPZStack< int64_t > fIndexes
Indexes into the fine mesh of computational subelements in the clusters by the current.
virtual void AccumulateIntegrationRule(int degree, TPZStack< REAL > &point, TPZStack< REAL > &weight) override
Accumulates integration rule to deformed element.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
virtual REAL LesserEdgeOfEl()
Computes a measure of the element.
REAL fInnerRadius
Stores the element's inner radius.
int ClassId() const override
Returns the unique identifier for reading/writing objects to streams.
virtual int64_t CreateMidSideConnect() override
It creates new conect that it associates the degrees of freedom of the element and returns its index...
virtual void AccumulateVertices(TPZStack< TPZGeoNode *> &nodes) override
Accumulate the vertices of the agglomerated elements.
static void AddSubElementIndex(TPZCompMesh *aggcmesh, int64_t subel, int64_t destind)
Insert the subelement index.
Contains declaration of TPZCompelDisc class which implements a computational element for discontinuou...
~TPZAgglomerateElement()
Destructor.
Computes the contribution over an interface between two discontinuous elements. Computational Element...
void CalcResidual(TPZElementMatrix &ef) override
Only computes the element residual.
This class associates an element matrix with the coeficients of its contribution in the global stiffn...
static void ComputeNeighbours(TPZCompMesh *mesh, std::map< TPZCompElDisc *, std::set< TPZCompElDisc *> > &neighbours)
void CalcResidual(TPZFMatrix< REAL > &Rhs, TPZCompElDisc *el)
Computes the residual of the solution to father element from clustered subelements.
void Write(TPZStream &buf, int withclassid) const override
void CalcStiff(TPZElementMatrix &ek, TPZElementMatrix &ef) override
Assembles the differential equation to model over the element defined by clustered subelements...
void ListOfDiscEl(TPZStack< TPZCompEl *> &elvec)
Returns a vector of all discontinuous elements in cluster.
int fMaterialId
Material id of the agglomerated element.
Implements a mesh that contains agglomerated elements. Computational Mesh.
void CreateGraphicalElement(TPZGraphMesh &grmesh, int dimension) override
TPZCompEl * SubElement(int64_t sub) const
Returns the "sub" subelement.
MElementType
Define the element types.
REAL VolumeOfEl() override
Returns the volume of the geometric element referenced.
Implements computational mesh. Computational Mesh.
MElementType Type() override
Type of the element.
void InitializeElement()
Initialize the characteristics data of the clustered elements.
int64_t NIndexes() const
Returns the number of clustered subelements.
int NInterfaces() override
Retunrs the number of interfaces.
Defines the interface for saving and reading data. Persistency.
int64_t NElements() const
Returns the number of elements of the vector.
Contains the declaration of TPZFlopCounter class and TPZCounter struct.
This class implements a discontinuous element (for use with discontinuous Galerkin). Computational Element.
virtual REAL VolumeOfEl() override
Returns the volume of the geometric element associated.
REAL InnerRadius2()
Returns the inner radius value.
virtual REAL InnerRadius()
Returns the inner radius value.
int fNFaces
Stores the number of interfaces of the element.
TPZCompMesh * MotherMesh()
Returns father mesh.
Defines the interface of a computational element. Computational Element.
int NSides()
Returns the number of sides. If all the volumes agglomerated have the same number, it returns this number, else it returns -1.
TPZGeoEl * CalculateReference()
Returns the geometric element to which this element references.
static void ListOfGroupings(TPZCompMesh *finemesh, TPZVec< int64_t > &accumlist, int nivel, int64_t &numaggl, int dim)
REAL NormalizeConst() override
Calculates the normalizing constant of the bases of the element.
#define PZError
Defines the output device to error messages and the DebugStop() function.
Implements an agglomerated discontinuous element. Computational Element.