NeoPZ
|
#include <TPZSBFemVolume.h>
Public Member Functions | |
TPZSBFemVolume (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
virtual | ~TPZSBFemVolume () |
void | ComputeKMatrices (TPZElementMatrix &E0, TPZElementMatrix &E1, TPZElementMatrix &E2, TPZElementMatrix &M0) |
Compute the E0, E1 and E2 matrices. More... | |
void | SetSkeleton (int64_t skeleton) |
Data structure initialization. More... | |
int64_t | SkeletonIndex () |
virtual void | InitMaterialData (TPZMaterialData &data) |
Initialize a material data and its attributes based on element dimension, number of state variables and material definitions. More... | |
void | SetElementGroupIndex (int64_t index) |
Initialize the data structure indicating the group index. More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh) const |
Method for creating a copy of the element. More... | |
int64_t | ElementGroupIndex () 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. More... | |
virtual int | NConnects () const |
Returns the number of nodes of the element. More... | |
virtual int64_t | ConnectIndex (int i) const |
Returns the index of the ith connectivity of the element. More... | |
virtual int | Dimension () const |
Dimension of the element. More... | |
REAL | Density () |
return the density associated with the element More... | |
void | SetDensity (REAL density) |
assign a different density More... | |
virtual void | BuildCornerConnectList (std::set< int64_t > &connectindexes) const |
adds the connect indexes associated with base shape functions to the set More... | |
virtual void | SetConnectIndex (int inode, int64_t index) |
Set the index i to node inode. More... | |
virtual int | NSideConnects (int iside) const |
Returns the number of dof nodes along side iside. More... | |
virtual int | SideConnectLocId (int icon, int is) const |
Returns the local node number of icon along is. More... | |
virtual int | NShapeF () const |
It returns the shapes number of the element. More... | |
virtual int | NConnectShapeF (int icon, int order) const |
Returns the number of shapefunctions associated with a connect. More... | |
void | InitializeIntegrationRule () |
virtual void | SetIntegrationRule (int order) |
virtual const TPZIntPoints & | GetIntegrationRule () const |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual TPZIntPoints & | GetIntegrationRule () |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual void | PRefine (int order) |
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... | |
virtual void | SetPreferredOrder (int order) |
Defines the desired order for entire element. More... | |
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 element More... | |
TPZFMatrix< std::complex< double > > | Phi () |
TPZManVector< std::complex< double > > | Eigenvalues () |
TPZFMatrix< std::complex< double > > | Coeficients () |
TPZFMatrix< double > | PhiReal () |
TPZManVector< double > | EigenvaluesReal () |
TPZFMatrix< double > | CoeficientsReal () |
virtual void | LoadCoef (TPZFMatrix< std::complex< double > > &coef) |
Loads the solution within the internal data structure of the element. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) |
Computes solution and its derivatives in the local coordinate qsi. More... | |
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. More... | |
virtual void | Shape (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphidxi) |
Computes the shape function set at the point x. More... | |
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. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data) |
Compute the solution at the integration point and store in the data structure. More... | |
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 the master element coordinates. More... | |
virtual void | Print (std::ostream &out=std::cout) const |
Prints element data. More... | |
void | CreateGraphicalElement (TPZGraphMesh &, int) |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files. More... | |
Public Member Functions inherited from TPZInterpolationSpace | |
virtual int | ClassId () const override |
Define the class id associated with the class. More... | |
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 | ComputeShape (TPZVec< REAL > &intpoint, TPZMaterialData &data) |
Compute shape functions based on master element in the classical FEM manne. 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 | CalcStiff (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
Computes the element stiffness matrix and right hand side. More... | |
virtual void | CalcResidual (TPZElementMatrix &ef) override |
Only computes the element residual. 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 REAL | InnerRadius () |
Returns the inner radius value. 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 | 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... | |
virtual void | Write (TPZStream &buf, int withclassid) const override |
Saves the element data to a stream. More... | |
virtual void | Read (TPZStream &buf, void *context) override |
Reads the element data from a stream. 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 int | MaxOrder () |
Returns the max order of interpolation. 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 | 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 | SetCreateFunctions (TPZCompMesh *mesh) |
Sets create function in TPZCompMesh to create elements of this type. More... | |
virtual REAL | VolumeOfEl () |
Returns the volume of the geometric element associated. 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 | Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0) |
Divide the computational element. If interpolate = 1, the solution is interpolated to the sub elements. 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 | ComputeSolution (TPZVec< REAL > &qsi, TPZVec< REAL > &normal, TPZSolVec &leftsol, TPZGradSolVec &dleftsol, TPZFMatrix< REAL > &leftaxes, TPZSolVec &rightsol, TPZGradSolVec &drightsol, TPZFMatrix< REAL > &rightaxes) |
Computes solution and its derivatives in the local coordinate qsi. This method will function for both volumetric and interface elements. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphix, const TPZFMatrix< REAL > &axes, TPZSolVec &sol, TPZGradSolVec &dsol) |
Computes solution and its derivatives in local coordinate qsi. 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 | SetIntegrationRule (TPZIntPoints *intrule) |
Method to set a dynamically allocated integration rule. More... | |
virtual MElementType | Type () |
Return the type of the element. 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 | |
Private Member Functions | |
void | ExtendShapeFunctions (TPZMaterialData &data1d, TPZMaterialData &data2d) |
extend the border shape functions for SBFem computations More... | |
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 More... | |
Private Attributes | |
int64_t | fElementGroupIndex |
index of element group More... | |
TPZCompEl * | fElementGroup |
pointer to the element group computational element More... | |
int64_t | fSkeleton |
index of the skeleton element More... | |
TPZIntPoints * | fIntRule |
pointer to the integration rule More... | |
TPZFNMatrix< 30, std::complex< double > > | fPhi |
Section of the phi vector associated with this volume element. More... | |
TPZManVector< std::complex< double > > | fEigenvalues |
Eigenvlues associated with the internal shape functions. More... | |
TPZFNMatrix< 30, std::complex< double > > | fCoeficients |
Multiplier coeficients associated with the solution. More... | |
TPZManVector< int64_t > | fLocalIndices |
vector of local indices of multipliers in the group More... | |
REAL | fDensity |
Density associated with the mass matrix. More... | |
Additional Inherited Members | |
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) |
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 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... | |
Definition at line 17 of file TPZSBFemVolume.h.
TPZSBFemVolume::TPZSBFemVolume | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | gel, | ||
int64_t & | index | ||
) |
Definition at line 26 of file TPZSBFemVolume.cpp.
Referenced by CreateSBFemCompEl().
|
inlinevirtual |
Definition at line 56 of file TPZSBFemVolume.h.
References ComputeKMatrices(), TPZCompEl::Reference(), TPZGeoEl::ResetReference(), and SetSkeleton().
|
private |
adjust the axes and jacobian of the 3D element
Definition at line 177 of file TPZSBFemVolume.cpp.
References Cross(), DebugStop, fabs, TPZFMatrix< TVar >::g(), TPZMatrix< TVar >::Identity(), TPZMatrix< TVar >::Multiply(), and TPZFMatrix< TVar >::Transpose().
Referenced by ComputeKMatrices(), ComputeSolution(), and Shape().
|
virtual |
adds the connect indexes associated with base shape functions to the set
Implements TPZCompEl.
Definition at line 777 of file TPZSBFemVolume.cpp.
References TPZCompEl::BuildCornerConnectList(), DebugStop, TPZCompMesh::Element(), fSkeleton, and TPZCompEl::Mesh().
Referenced by SetDensity().
|
inlinevirtual |
Method for creating a copy of the element.
Implements TPZCompEl.
Definition at line 82 of file TPZSBFemVolume.h.
References DebugStop.
|
inlinevirtual |
Method for creating a copy of the element in a patch mesh.
mesh | Patch clone mesh |
gl2lcConMap | map the connects indexes from global element (original) to the local copy. |
gl2lcElMap | map the computational elements Otherwise of the previous clone function, this method don't copy entire mesh. Therefore it needs to map the connect index from the both meshes - original and patch |
Implements TPZCompEl.
Definition at line 104 of file TPZSBFemVolume.h.
References DebugStop.
|
inline |
Definition at line 255 of file TPZSBFemVolume.h.
References fCoeficients.
|
inline |
Definition at line 285 of file TPZSBFemVolume.h.
References TPZMatrix< TVar >::Cols(), ComputeShape(), ComputeSolution(), EvaluateError(), fCoeficients, LoadCoef(), TPZMatrix< TVar >::Rows(), Shape(), and val().
void TPZSBFemVolume::ComputeKMatrices | ( | TPZElementMatrix & | E0, |
TPZElementMatrix & | E1, | ||
TPZElementMatrix & | E2, | ||
TPZElementMatrix & | M0 | ||
) |
Compute the E0, E1 and E2 matrices.
Compute the K matrices.
Definition at line 34 of file TPZSBFemVolume.cpp.
References AdjustAxes3D(), TPZMaterialData::axes, TPZInterpolationSpace::ComputeRequiredData(), TPZMaterial::Contribute(), DebugStop, TPZMaterialData::detjac, TPZGeoEl::Dimension(), TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::dsol, TPZElementMatrix::EF, TPZCompMesh::Element(), ExtendShapeFunctions(), fabs, fDensity, TPZCompMesh::FindMaterial(), TPZElementMatrix::fMat, fSkeleton, TPZInterpolationSpace::GetIntegrationRule(), TPZInterpolationSpace::InitializeElementMatrix(), TPZInterpolationSpace::InitMaterialData(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZGeoEl::Jacobian(), LOGPZ_DEBUG, TPZGeoEl::MaterialId(), TPZGeoEl::Mesh(), TPZCompEl::Mesh(), TPZTransform< T >::Multiply(), TPZMatrix< TVar >::Multiply(), Norm(), TPZIntPoints::NPoints(), TPZGeoEl::NSides(), TPZMaterial::NStateVariables(), TPZMaterialData::phi, TPZIntPoints::Point(), TPZMatrix< TVar >::Print(), TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZMatrix< TVar >::Rows(), TPZGeoElSide::Side(), TPZGeoEl::SideDimension(), TPZGeoEl::SideToSideTransform(), sqrt, TPZFMatrix< TVar >::Transpose(), TPZMaterialData::x, and TPZGeoEl::X().
Referenced by TPZSBFemElementGroup::ComputeMatrices(), and ~TPZSBFemVolume().
|
virtual |
Compute shape functions based on master element in the classical FEM manner.
Reimplemented from TPZInterpolationSpace.
Definition at line 762 of file TPZSBFemVolume.cpp.
References TPZGeoEl::Jacobian(), PZError, TPZCompEl::Reference(), and Shape().
Referenced by CoeficientsReal().
|
virtual |
Computes solution and its derivatives in the local coordinate qsi.
qsi | master element coordinate |
sol | finite element solution |
dsol | solution derivatives |
axes | axes associated with the derivative of the solution |
Reimplemented from TPZCompEl.
Definition at line 279 of file TPZSBFemVolume.cpp.
References AdjustAxes3D(), TPZMaterialData::axes, TPZMatrix< TVar >::Cols(), TPZInterpolationSpace::ComputeRequiredData(), DebugStop, TPZMaterialData::detjac, TPZGeoEl::Dimension(), TPZMaterialData::dphi, TPZCompMesh::Element(), fCoeficients, fEigenvalues, TPZVec< T >::Fill(), TPZCompMesh::FindMaterial(), fPhi, fSkeleton, TPZInterpolationSpace::InitMaterialData(), IsZero(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZGeoEl::Jacobian(), LOGPZ_DEBUG, TPZGeoEl::MaterialId(), TPZCompEl::Mesh(), TPZMaterial::NStateVariables(), TPZMaterialData::phi, pow(), TPZMatrix< TVar >::Print(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZMatrix< TVar >::Rows(), and TPZVec< T >::size().
Referenced by CoeficientsReal(), ComputeSolution(), EvaluateError(), and Solution().
|
inlinevirtual |
Compute the solution at the integration point and store in the data structure.
Reimplemented from TPZCompEl.
Definition at line 338 of file TPZSBFemVolume.h.
References TPZMaterialData::axes, ComputeSolution(), TPZMaterialData::dsol, TPZMaterialData::sol, and Solution().
|
inlinevirtual |
Returns the index of the ith connectivity of the element.
i | connectivity index who want knows |
Implements TPZCompEl.
Definition at line 126 of file TPZSBFemVolume.h.
References TPZCompEl::ConnectIndex(), and DebugStop.
|
virtual |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files.
graphmesh | graphical mesh where the element will be created |
dimension | target dimension of the graphical element |
Reimplemented from TPZCompEl.
Definition at line 581 of file TPZSBFemVolume.cpp.
References DebugStop, dimension, TPZGeoEl::Dimension(), ECube, EPrisma, EQuadrilateral, TPZCompEl::Reference(), and TPZGeoEl::Type().
Referenced by Print().
|
inline |
return the density associated with the element
Definition at line 141 of file TPZSBFemVolume.h.
References fDensity.
|
inlinevirtual |
Dimension of the element.
Implements TPZCompEl.
Definition at line 134 of file TPZSBFemVolume.h.
References TPZGeoEl::Dimension(), and TPZCompEl::Reference().
Referenced by EvaluateError(), and InitMaterialData().
|
inline |
Definition at line 250 of file TPZSBFemVolume.h.
References fEigenvalues.
|
inline |
Definition at line 274 of file TPZSBFemVolume.h.
References TPZVec< T >::NElements().
|
inline |
Definition at line 89 of file TPZSBFemVolume.h.
References fElementGroupIndex.
|
virtual |
Performs an error estimate on the elemen.
fp | function pointer which computes the exact solution |
errors | (output) the L2 norm or true error of the error of the solution |
flux | (input) value of the interpolated flux values |
Reimplemented from TPZInterpolationSpace.
Definition at line 601 of file TPZSBFemVolume.cpp.
References TPZMaterialData::axes, ComputeSolution(), TPZGeoEl::CreateSideIntegrationRule(), DebugStop, TPZMaterialData::detjac, Dimension(), TPZCompMesh::Dimension(), TPZGeoEl::Dimension(), TPZMaterialData::dsol, TPZMaterial::Errors(), fabs, TPZVec< T >::Fill(), TPZIntPoints::GetMaxOrder(), TPZIntPoints::GetOrder(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZGeoEl::Jacobian(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZMaterial::NEvalErrors(), TPZIntPoints::NPoints(), TPZGeoEl::NSides(), TPZMaterial::NStateVariables(), TPZIntPoints::Point(), Print(), PZError, TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::Resize(), TPZIntPoints::SetOrder(), TPZMaterialData::sol, sqrt, rdt::values, TPZMaterialData::x, and TPZGeoEl::X().
Referenced by CoeficientsReal().
|
private |
extend the border shape functions for SBFem computations
Definition at line 229 of file TPZSBFemVolume.cpp.
References TPZInterpolationSpace::Convert2Axes(), TPZGeoEl::Dimension(), TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::jacinv, TPZMaterialData::phi, TPZCompEl::Reference(), and TPZMatrix< TVar >::Rows().
Referenced by ComputeKMatrices().
|
inlinevirtual |
Returns a reference to an integration rule suitable for integrating the interior of the element.
Implements TPZInterpolationSpace.
Definition at line 216 of file TPZSBFemVolume.h.
|
inlinevirtual |
Returns a reference to an integration rule suitable for integrating the interior of the element.
Implements TPZInterpolationSpace.
Definition at line 224 of file TPZSBFemVolume.h.
References fIntRule, InitializeIntegrationRule(), PRefine(), SetPhiEigVal(), and SetPreferredOrder().
|
inlinevirtual |
Reimplemented from TPZCompEl.
Definition at line 204 of file TPZSBFemVolume.h.
References TPZGeoEl::CreateSideIntegrationRule(), DebugStop, TPZGeoEl::NSides(), TPZCompEl::Reference(), and SetIntegrationRule().
Referenced by GetIntegrationRule(), and SetIntegrationRule().
|
virtual |
Initialize a material data and its attributes based on element dimension, number of state variables and material definitions.
Reimplemented from TPZInterpolationSpace.
Definition at line 731 of file TPZSBFemVolume.cpp.
References TPZMaterialData::axes, DebugStop, Dimension(), TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::dsol, TPZMaterialData::EVecShape, TPZMaterial::FillDataRequirements(), TPZMaterialData::fNeedsSol, TPZMaterialData::fShapeType, TPZMaterialData::gelElId, TPZGeoEl::Id(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZCompEl::Material(), NShapeF(), TPZMaterial::NStateVariables(), TPZMaterialData::phi, TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::size(), TPZMaterialData::sol, and TPZMaterialData::x.
Referenced by SkeletonIndex().
|
virtual |
Loads the solution within the internal data structure of the element.
Is used to initialize the solution of connect objects with dependency.
Is also used to load the solution within SuperElements
Definition at line 268 of file TPZSBFemVolume.cpp.
References fCoeficients.
Referenced by CoeficientsReal(), TPZSBFemElementGroup::LoadEigenVector(), and TPZSBFemElementGroup::LoadSolution().
|
inlinevirtual |
Returns the number of nodes of the element.
Implements TPZCompEl.
Definition at line 114 of file TPZSBFemVolume.h.
References TPZCompEl::NConnects().
|
inlinevirtual |
Returns the number of shapefunctions associated with a connect.
Implements TPZInterpolationSpace.
Definition at line 198 of file TPZSBFemVolume.h.
References TPZCompEl::Connect(), and TPZConnect::NShape().
|
inlinevirtual |
It returns the shapes number of the element.
Implements TPZInterpolationSpace.
Definition at line 186 of file TPZSBFemVolume.h.
References TPZCompEl::Connect(), NConnects(), and TPZConnect::NShape().
Referenced by InitMaterialData().
|
inlinevirtual |
Returns the number of dof nodes along side iside.
Implements TPZInterpolationSpace.
Definition at line 168 of file TPZSBFemVolume.h.
References DebugStop.
|
inline |
Definition at line 245 of file TPZSBFemVolume.h.
References fPhi.
|
inline |
Definition at line 260 of file TPZSBFemVolume.h.
References TPZMatrix< TVar >::Cols(), fPhi, and TPZMatrix< TVar >::Rows().
|
virtual |
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.
Implements TPZInterpolationSpace.
Definition at line 784 of file TPZSBFemVolume.cpp.
References TPZCompMesh::Element(), fSkeleton, TPZCompEl::Mesh(), and TPZInterpolationSpace::PRefine().
Referenced by GetIntegrationRule().
|
inlinevirtual |
Prints element data.
out | Indicates the device where the data will be printed |
Reimplemented from TPZInterpolationSpace.
Definition at line 357 of file TPZSBFemVolume.h.
References TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), CreateGraphicalElement(), CreateSBFemCompEl(), EMathematicaInput, TPZFMatrix< TVar >::GetVal(), TPZCompEl::Mesh(), NConnects(), TPZConnect::Print(), TPZCompEl::Print(), TPZMatrix< TVar >::Print(), and TPZMatrix< TVar >::Rows().
Referenced by EvaluateError().
|
inlinevirtual |
Set the index i to node inode.
inode | node to set index |
index | index to be set |
Implements TPZCompEl.
Definition at line 163 of file TPZSBFemVolume.h.
References DebugStop.
|
inline |
assign a different density
Definition at line 147 of file TPZSBFemVolume.h.
References BuildCornerConnectList(), and DebugStop.
void TPZSBFemVolume::SetElementGroupIndex | ( | int64_t | index | ) |
Initialize the data structure indicating the group index.
Definition at line 691 of file TPZSBFemVolume.cpp.
References TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), DebugStop, TPZCompMesh::Element(), fElementGroup, fElementGroupIndex, fLocalIndices, fSkeleton, TPZCompEl::Mesh(), TPZCompEl::NConnects(), TPZConnect::NShape(), TPZConnect::NState(), and TPZManVector< T, NumExtAlloc >::Resize().
Referenced by TPZBuildSBFem::CreateElementGroups(), and SkeletonIndex().
|
virtual |
Reimplemented from TPZInterpolationSpace.
Definition at line 678 of file TPZSBFemVolume.cpp.
References TPZGeoEl::Dimension(), fIntRule, InitializeIntegrationRule(), TPZCompEl::Reference(), and TPZIntPoints::SetOrder().
Referenced by InitializeIntegrationRule(), and SetSkeleton().
void TPZSBFemVolume::SetPhiEigVal | ( | TPZFMatrix< std::complex< double > > & | phi, |
TPZManVector< std::complex< double > > & | eigval | ||
) |
initialize the data structures of the eigenvectors and eigenvalues associated with this volume element
Definition at line 251 of file TPZSBFemVolume.cpp.
References fEigenvalues, fLocalIndices, fPhi, TPZFMatrix< TVar >::Resize(), and TPZVec< T >::size().
Referenced by TPZSBFemElementGroup::CalcStiff(), and GetIntegrationRule().
|
virtual |
Defines the desired order for entire element.
Implements TPZInterpolationSpace.
Definition at line 790 of file TPZSBFemVolume.cpp.
References TPZCompMesh::Element(), TPZInterpolationSpace::fPreferredOrder, fSkeleton, TPZCompEl::Mesh(), and TPZInterpolationSpace::SetPreferredOrder().
Referenced by GetIntegrationRule().
void TPZSBFemVolume::SetSkeleton | ( | int64_t | skeleton | ) |
Data structure initialization.
Definition at line 797 of file TPZSBFemVolume.cpp.
References DebugStop, TPZCompMesh::Element(), fLocalIndices, fSkeleton, TPZInterpolationSpace::GetPreferredOrder(), TPZCompEl::Mesh(), SetIntegrationRule(), and TPZVec< T >::size().
Referenced by TPZBuildSBFem::CreateElementGroups(), and ~TPZSBFemVolume().
|
virtual |
Computes the shape function set at the point x.
qsi | point in master element coordinates |
phi | vector of values of shapefunctions, dimension (numshape,1) |
dphi | matrix of derivatives of shapefunctions in master element coordinates, dimension (dim,numshape) This method uses the order of interpolation of the element along the sides to compute the number of shapefunctions |
Implements TPZInterpolationSpace.
Definition at line 421 of file TPZSBFemVolume.cpp.
References AdjustAxes3D(), TPZMaterialData::axes, TPZMatrix< TVar >::Cols(), TPZInterpolationSpace::ComputeRequiredData(), DebugStop, TPZMaterialData::detjac, TPZMaterial::Dimension(), TPZMaterialData::dphi, TPZCompMesh::Element(), EMathematicaInput, fCoeficients, fEigenvalues, fElementGroupIndex, TPZCompMesh::FindMaterial(), fPhi, fSkeleton, TPZInterpolationSpace::InitMaterialData(), IsZero(), TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZGeoEl::Jacobian(), LOGPZ_DEBUG, TPZCompEl::Mesh(), TPZMaterial::NStateVariables(), TPZMaterialData::phi, TPZSBFemElementGroup::PhiInverse(), pow(), TPZMatrix< TVar >::Print(), TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZMatrix< TVar >::Rows(), and TPZFMatrix< TVar >::Zero().
Referenced by CoeficientsReal(), and ComputeShape().
|
inlinevirtual |
Returns the local node number of icon along is.
icon | connect number along side is |
is | side which is being queried |
Implements TPZInterpolationSpace.
Definition at line 179 of file TPZSBFemVolume.h.
References DebugStop.
|
inline |
Definition at line 67 of file TPZSBFemVolume.h.
References fSkeleton, InitMaterialData(), and SetElementGroupIndex().
Referenced by TPZSBFemElementGroup::AddElement(), and TPZSBFemElementGroup::Print().
Calculates the solution - sol - for the variable var at point qsi, where qsi is expressed in terms of the master element coordinates.
qsi | master element coordinate |
var | variable name |
sol | vetor for the solution |
Reimplemented from TPZInterpolationSpace.
Definition at line 566 of file TPZSBFemVolume.cpp.
References TPZMaterialData::axes, ComputeSolution(), TPZMaterialData::dsol, TPZCompMesh::FindMaterial(), TPZGeoEl::MaterialId(), TPZCompEl::Mesh(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZMaterialData::sol, TPZMaterial::Solution(), TPZMaterialData::x, and TPZGeoEl::X().
Referenced by ComputeSolution().
|
private |
Multiplier coeficients associated with the solution.
Definition at line 39 of file TPZSBFemVolume.h.
Referenced by Coeficients(), CoeficientsReal(), ComputeSolution(), LoadCoef(), and Shape().
|
private |
Density associated with the mass matrix.
Definition at line 48 of file TPZSBFemVolume.h.
Referenced by ComputeKMatrices(), and Density().
|
private |
Eigenvlues associated with the internal shape functions.
Definition at line 36 of file TPZSBFemVolume.h.
Referenced by ComputeSolution(), Eigenvalues(), SetPhiEigVal(), and Shape().
|
private |
pointer to the element group computational element
Definition at line 24 of file TPZSBFemVolume.h.
Referenced by SetElementGroupIndex().
|
private |
index of element group
Definition at line 21 of file TPZSBFemVolume.h.
Referenced by ElementGroupIndex(), SetElementGroupIndex(), and Shape().
|
private |
pointer to the integration rule
Definition at line 30 of file TPZSBFemVolume.h.
Referenced by GetIntegrationRule(), and SetIntegrationRule().
|
private |
vector of local indices of multipliers in the group
Definition at line 42 of file TPZSBFemVolume.h.
Referenced by SetElementGroupIndex(), SetPhiEigVal(), and SetSkeleton().
|
private |
Section of the phi vector associated with this volume element.
Definition at line 33 of file TPZSBFemVolume.h.
Referenced by ComputeSolution(), Phi(), PhiReal(), SetPhiEigVal(), and Shape().
|
private |
index of the skeleton element
Definition at line 27 of file TPZSBFemVolume.h.
Referenced by BuildCornerConnectList(), ComputeKMatrices(), ComputeSolution(), PRefine(), SetElementGroupIndex(), SetPreferredOrder(), SetSkeleton(), Shape(), and SkeletonIndex().