9 #ifndef TPZSBFemElementGroup_hpp 10 #define TPZSBFemElementGroup_hpp 83 fMassDensity = density;
88 if(fMassMatrix.
Rows() == 0)
99 fComputationMode =
EMass;
104 fComputationMode =
EStiff;
110 virtual void Print(std::ostream &out = std::cout)
const 112 out << __PRETTY_FUNCTION__ << std::endl;
115 out <<
"Element indexes of the volume elements ";
116 for (
int el=0; el<nel; el++) {
117 out <<
fElGroup[el]->Index() <<
" ";
120 out <<
"Indices of the associated computational skeleton elements\n";
121 for (
int el=0; el<nel; el++) {
128 out <<
"Connect indexes of the contained elements\n";
129 for (
int el=0; el<nel; el++) {
132 for (
int ic=0; ic<nc; ic++) {
152 out <<
"End of " << __PRETTY_FUNCTION__ << std::endl;
179 fElGroup[i]->LoadElementReference();
187 return fEigenvalues.
size();
197 int nel = fCoef.
Rows();
199 for (
int ir=0; ir<nel; ir++) {
200 result[ir] =
fCoef(ir,0).real();
232 int64_t rows = fPhi.
Rows(),cols = fPhi.
Cols();
234 for(int64_t i=0; i<rows; i++)
236 for(int64_t j=0; j<cols; j++)
238 phireal(i,j) =
fPhi(i,j).real();
248 for(int64_t el=0; el<nel; el++)
250 eig[el] = fEigenvalues[el].real();
257 int64_t rows = fCoef.
Rows(),cols = fCoef.
Cols();
259 for(int64_t i=0; i<rows; i++)
261 for(int64_t j=0; j<cols; j++)
263 coefreal(i,j) =
fCoef(i,j).real();
TPZFMatrix< std::complex< double > > fPhi
Matrix of eigenvectors which compose the stiffness matrix.
TPZFMatrix< double > CoeficientsReal()
virtual void LoadSolution()
Loads the solution within the internal data structure of the element.
TPZFMatrix< std::complex< double > > fCoef
Multiplying coefficients of each eigenvector.
TPZFMatrix< double > PhiReal()
Implements a vector class which allows to use external storage provided by the user. Utility.
TPZStack< TPZCompEl *, 5 > fElGroup
TPZFMatrix< STATE > & MassMatrix()
Contains the declaration of the TPZElementGroup class, which implements an computational element whic...
EComputationMode fComputationMode
TPZManVector< std::complex< double > > fEigenvalues
Vector of eigenvalues of the SBFem analyis.
TPZFMatrix< std::complex< double > > Coeficients()
REAL fDelt
timestep coeficient
Class which groups elements to characterize dense matrices.
virtual void LoadElementReference()
Loads the geometric element referece.
TPZFMatrix< std::complex< double > > fPhiInverse
Inverse of the eigenvector matrix (transfers eigenvector coeficients to side shape coeficients) ...
TPZFMatrix< std::complex< double > > & PhiInverse()
void ComputeMatrices(TPZElementMatrix &E0, TPZElementMatrix &E1, TPZElementMatrix &E2, TPZElementMatrix &M0)
Computes the element stifness matrix and right hand side.
int64_t size() const
Returns the number of elements of the vector.
virtual void Print(std::ostream &out=std::cout) const
Prints element data.
void ComputeMassMatrix(TPZElementMatrix &M0)
Compute the mass matrix based on the value of M0 and the eigenvectors.
virtual void Print(std::ostream &out=std::cout) const override
Prints element data.
#define DebugStop()
Returns a message to user put a breakpoint in.
void SetDensity(REAL density)
set the density or specific heat of the material
TPZCompMesh * Mesh() const
Return a pointer to the grid of the element.
TPZFMatrix< std::complex< double > > & Phi()
void LoadEigenVector(int64_t eig)
Load the coeficients such that we visualize an eigenvector.
virtual void AddElement(TPZCompEl *cel)
add an element to the element group
int64_t Rows() const
Returns number of rows.
Full matrix class. Matrix.
TPZVec< std::complex< double > > & EigenValues()
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...
virtual int NConnects() const =0
Returns the number of nodes of the element.
TPZManVector< double > EigenvaluesReal()
REAL fMassDensity
multiplier to multiply the mass matrix
Implements computational mesh. Computational Mesh.
virtual void CalcStiff(TPZElementMatrix &ek, TPZElementMatrix &ef)
Computes the element stifness matrix and right hand side.
TPZVec< STATE > MultiplyingCoeficients()
int64_t Cols() const
Returns number of cols.
int64_t NElements() const
Returns the number of elements of the vector.
TPZSBFemElementGroup(TPZCompMesh &mesh, int64_t &index)
constructor
void SetComputeOnlyMassMatrix()
Set the element to compute the mass matrix.
TPZFMatrix< STATE > fMassMatrix
Defines the interface of a computational element. Computational Element.
virtual void CalcResidual(TPZElementMatrix &ef)
Computes the element right hand side.
void SetComputeTimeDependent(REAL delt)
Set the element to compute stiffness plus mass.