9 #ifndef TPZSBFemVolume_hpp 10 #define TPZSBFemVolume_hpp 105 std::map<int64_t,int64_t> & gl2lcConMap,
106 std::map<int64_t,int64_t> & gl2lcElMap)
const 116 if (fElementGroup == 0) {
128 if (fElementGroup == 0) {
190 for (
int ic=0; ic<nc; ic++) {
235 virtual void PRefine (
int order );
262 int64_t rows = fPhi.
Rows(),cols = fPhi.
Cols();
264 for(int64_t i=0; i<rows; i++)
266 for(int64_t j=0; j<cols; j++)
268 phireal(i,j) =
fPhi(i,j).real();
278 for(int64_t el=0; el<nel; el++)
280 eig[el] = fEigenvalues[el].real();
287 int64_t rows = fCoeficients.
Rows(),cols = fCoeficients.
Cols();
289 for(int64_t i=0; i<rows; i++)
291 for(int64_t j=0; j<cols; j++)
357 virtual void Print(std::ostream &out = std::cout)
const 359 out <<
"Printing " << __PRETTY_FUNCTION__ << std::endl;
361 out <<
"Group Element Index " << fElementGroupIndex << std::endl;
362 out <<
"Skeleton Element Index " << fSkeleton << std::endl;
363 out <<
"Local Indices " << fLocalIndices << std::endl;
366 if (fCoeficients.
Rows())
369 for (
int i=0; i<fPhi.
Rows(); i++) {
370 for (
int j=0; j<fPhi.
Cols(); j++) {
374 out <<
"Values at border " << prod << std::endl;
TPZManVector< std::complex< double > > Eigenvalues()
int64_t fElementGroupIndex
index of element group
Represents a graphical mesh used for post processing purposes. Post processing.
virtual int NSideConnects(int iside) const
Returns the number of dof nodes along side iside.
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZMaterialData &data)
Compute the solution at the integration point and store in the data structure.
Represents a set of shape functions associated with a computational element/side. Computational Eleme...
virtual void Shape(TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphidxi)
Computes the shape function set at the point x.
Implements a vector class which allows to use external storage provided by the user. Utility.
virtual void ComputeShape(TPZVec< REAL > &intpoint, TPZVec< REAL > &X, TPZFMatrix< REAL > &jacobian, TPZFMatrix< REAL > &axes, REAL &detjac, TPZFMatrix< REAL > &jacinv, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, TPZFMatrix< REAL > &dphidx)
Compute shape functions based on master element in the classical FEM manner.
void CreateGraphicalElement(TPZGraphMesh &, int)
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to ge...
void ExtendShapeFunctions(TPZMaterialData &data1d, TPZMaterialData &data2d)
extend the border shape functions for SBFem computations
TPZManVector< double > EigenvaluesReal()
TPZFMatrix< double > PhiReal()
TPZFNMatrix< 30, std::complex< double > > fPhi
Section of the phi vector associated with this volume element.
TPZFMatrix< double > CoeficientsReal()
int64_t fSkeleton
index of the skeleton element
virtual int NConnects() const
Returns the number of nodes of the element.
Contains declaration of TPZCompEl class which defines the interface of a computational element...
virtual int NShapeF() const
It returns the shapes number of the element.
TPZCompEl * CreateSBFemCompEl(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
TPZFMatrix< std::complex< double > > Phi()
void SetPhiEigVal(TPZFMatrix< std::complex< double > > &phi, TPZManVector< std::complex< double > > &eigval)
initialize the data structures of the eigenvectors and eigenvalues associated with this volume elemen...
Contains declaration of TPZInterpolationSpace class which implements the interface for interpolated c...
TPZManVector< std::complex< double > > fEigenvalues
Eigenvlues associated with the internal shape functions.
TPZGradSolVec dsol
vector of the derivatives of the solution at the integration point
virtual int SideConnectLocId(int icon, int is) const
Returns the local node number of icon along is.
virtual void Print(std::ostream &out=std::cout) const
Prints element data.
REAL val(STATE &number)
Returns value of the variable.
virtual TPZCompEl * Clone(TPZCompMesh &mesh) const
Method for creating a copy of the element.
virtual int NSides() const =0
Returns the number of connectivities of the element.
virtual void InitMaterialData(TPZMaterialData &data)
Initialize a material data and its attributes based on element dimension, number of state variables a...
virtual const TPZIntPoints & GetIntegrationRule() const
Returns a reference to an integration rule suitable for integrating the interior of the element...
TPZCompEl * fElementGroup
pointer to the element group computational element
Abstract class defining integration rules. Numerical Integration.
virtual void SetPreferredOrder(int order)
Defines the desired order for entire element.
Contains declaration of TPZElementMatrix struct which associates an element matrix with the coeficien...
virtual TPZIntPoints * CreateSideIntegrationRule(int side, int order)=0
Creates an integration rule for the topology of the corresponding side and able to integrate a polyno...
void SetDensity(REAL density)
assign a different density
virtual void BuildCornerConnectList(std::set< int64_t > &connectindexes) const
adds the connect indexes associated with base shape functions to the set
virtual int NConnectShapeF(int icon, int order) const
Returns the number of shapefunctions associated with a connect.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
virtual ~TPZSBFemVolume()
#define DebugStop()
Returns a message to user put a breakpoint in.
virtual void LoadCoef(TPZFMatrix< std::complex< double > > &coef)
Loads the solution within the internal data structure of the element.
TPZCompMesh * Mesh() const
Return a pointer to the grid of the element.
virtual void Solution(TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol)
Calculates the solution - sol - for the variable var at point qsi, where qsi is expressed in terms of...
unsigned int NShape() const
int64_t Rows() const
Returns number of rows.
void AdjustAxes3D(const TPZFMatrix< REAL > &axes2D, TPZFMatrix< REAL > &axes3D, TPZFMatrix< REAL > &jac3D, TPZFMatrix< REAL > &jacinv3D, REAL detjac)
adjust the axes and jacobian of the 3D element
TPZFNMatrix< 9, REAL > axes
axes indicating the directions of the derivatives of the shapefunctions
virtual void PRefine(int order)
Change the preferred order for the element and proceed the adjust of the aproximation space taking ...
TPZFMatrix< std::complex< double > > Coeficients()
REAL Density()
return the density associated with the element
virtual TPZConnect & Connect(int i) const
Returns a pointer to the ith node.
virtual TPZIntPoints & GetIntegrationRule()
Returns a reference to an integration rule suitable for integrating the interior of the element...
virtual int64_t ConnectIndex(int i) const =0
Returns the index of the ith connectivity of the element.
This class associates an element matrix with the coeficients of its contribution in the global stiffn...
Implements the interfaces for TPZCompElDisc, TPZInterfaceElement and TPZInterpolatedElement. Computational element.
virtual int NConnects() const =0
Returns the number of nodes of the element.
virtual void SetIntegrationRule(int order)
virtual int Dimension() const
Dimension of the element.
int64_t ElementGroupIndex() const
virtual int Dimension() const =0
Returns the dimension of the element.
void SetSkeleton(int64_t skeleton)
Data structure initialization.
TPZGeoEl * Reference() const
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise.
void ComputeKMatrices(TPZElementMatrix &E0, TPZElementMatrix &E1, TPZElementMatrix &E2, TPZElementMatrix &M0)
Compute the E0, E1 and E2 matrices.
void ResetReference()
Reset the element referenced by the geometric element to NULL.
void EvaluateError(std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)> fp, TPZVec< REAL > &errors, bool store_error)
Performs an error estimate on the elemen.
TPZFNMatrix< 30, std::complex< double > > fCoeficients
Multiplier coeficients associated with the solution.
Implements computational mesh. Computational Mesh.
virtual void SetConnectIndex(int inode, int64_t index)
Set the index i to node inode.
virtual void Print(std::ostream &out=std::cout) const
Prints element data.
REAL fDensity
Density associated with the mass matrix.
TPZSBFemVolume(TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index)
int64_t Cols() const
Returns number of cols.
virtual void Print(std::ostream &out) const
virtual TPZCompEl * ClonePatchEl(TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const
Method for creating a copy of the element in a patch mesh.
int64_t NElements() const
Returns the number of elements of the vector.
void SetElementGroupIndex(int64_t index)
Initialize the data structure indicating the group index.
TPZManVector< int64_t > fLocalIndices
vector of local indices of multipliers in the group
TPZIntPoints * fIntRule
pointer to the integration rule
virtual int64_t ConnectIndex(int i) const
Returns the index of the ith connectivity of the element.
void Print(const TPZCompMesh &mesh, std::ostream &out=std::cout)
Print the information for the connect element.
Defines the interface of a computational element. Computational Element.
virtual void ComputeSolution(TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes)
Computes solution and its derivatives in the local coordinate qsi.
TPZSolVec sol
vector of the solutions at the integration point
const TVar & GetVal(const int64_t row, const int64_t col) const override
Get values without bounds checking This method is faster than "Get" if DEBUG is defined.
Non abstract class which implements full matrices with preallocated storage with (N+1) entries...
void InitializeIntegrationRule()