NeoPZ
|
Analysis procedure to computational sub mesh. Analysis. More...
#include <pzsmanal.h>
Public Member Functions | |
virtual void | LoadSolution (const TPZFMatrix< STATE > &sol) override |
Load the solution into the computable mesh considering sol as Solution vector of the analysis. More... | |
TPZSubMeshAnalysis (TPZSubCompMesh *mesh=0) | |
Constructor: create an object analysis from one mesh. More... | |
virtual | ~TPZSubMeshAnalysis () |
Destructor. More... | |
TPZAutoPointer< TPZMatrix< STATE > > | Matrix () |
virtual void | SetCompMesh (TPZCompMesh *mesh, bool mustOptimizeBandwidth) override |
Set the computational mesh of the analysis. More... | |
void | Run (std::ostream &out) override |
Run: assemble the stiffness matrix. More... | |
void | CondensedSolution (TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) |
CondensedSolution: returns the condensed stiffness matrix - ek - and the condensed solution vector - ef. More... | |
virtual void | Assemble () override |
Assemble the global stiffness matrix and put it into the reducable stiffness matrix. More... | |
int | ClassId () const override |
Define the class id associated with the class. More... | |
void | ReducedRightHandSide (TPZFMatrix< STATE > &rhs) |
compute the reduced right hand side using the current stiffness. Abort if there is no stiffness computed More... | |
Public Member Functions inherited from TPZAnalysis | |
TPZAnalysis (TPZCompMesh *mesh, bool mustOptimizeBandwidth=true, std::ostream &out=std::cout) | |
Create an TPZAnalysis object from one mesh pointer. More... | |
TPZAnalysis (TPZAutoPointer< TPZCompMesh > mesh, bool mustOptimizeBandwidth=true, std::ostream &out=std::cout) | |
Create an TPZAnalysis object from one mesh auto pointer object. More... | |
void | SetGuiInterface (TPZAutoPointer< TPZGuiInterface > gui) |
Defines gui interface object. More... | |
TPZAutoPointer< TPZGuiInterface > | GetGuiInterface () const |
Gets gui interface object. More... | |
bool | AmIKilled () |
Returns if the process was canceled through gui interface. More... | |
TPZAnalysis () | |
Create an empty TPZAnalysis object. More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More... | |
void | Read (TPZStream &buf, void *context) override |
read objects from the stream More... | |
virtual | ~TPZAnalysis (void) |
Destructor: deletes all protected dynamic allocated objects. More... | |
void | CleanUp () |
deletes all data structures More... | |
void | SetRenumber (TPZAutoPointer< TPZRenumbering > renumber) |
Change the renumbering scheme. More... | |
void | OptimizeBandwidth () |
Sets the computer connection block number from the graphical connections block number otimization. More... | |
int | HighestDimension () |
Returns the dimension of the material which has the highest dimension. More... | |
void | Resequence (int firstel=-1) |
Recompute the node sequence. More... | |
int | ComputeNumberofLoadCases () |
Determine the number of load cases from the material objects and return its value. More... | |
virtual void | AssembleResidual () |
Assemble the load vector. More... | |
virtual void | Solve () |
Invert the stiffness matrix. More... | |
TPZFMatrix< STATE > & | Rhs () |
Returns the load vector. More... | |
TPZFMatrix< STATE > & | Solution () |
Returns the solution matrix. More... | |
TPZCompMesh * | Mesh () const |
Returns the pointer to the computational mesh. More... | |
TPZAutoPointer< TPZStructMatrix > | StructMatrix () |
Returns a reference to the structural matrix. More... | |
TPZMatrixSolver< STATE > * | BuildPreconditioner (EPrecond preconditioner, bool overlap) |
Define the type of preconditioner used. More... | |
void | SetStep (int step) |
ste the step for post processing More... | |
void | SetThreadsForError (int nthreads) |
int | GetStep () |
void | SetTime (REAL time) |
Sets time will be used in dx files. More... | |
REAL | GetTime () |
Gets time used in dx files. More... | |
void | ShowShape (const std::string &plotfile, TPZVec< int64_t > &equationindices) |
Graphic of the solution as V3DGrap visualization. More... | |
void | ShowShape (const std::string &plotfile, TPZVec< int64_t > &equationindices, int matid, const TPZVec< std::string > &varname) |
Graphic of the solution as V3DGrap visualization. More... | |
void | LoadShape (double dx, double dy, int64_t numelem, TPZConnect *nod) |
Make assembling and clean the load and solution vectors. More... | |
virtual void | DefineGraphMesh (int dimension, const TPZVec< std::string > &scalnames, const TPZVec< std::string > &vecnames, const std::string &plotfile) |
Define GrapMesh as V3D, DX, MV or VTK depending on extension of the file. More... | |
virtual void | DefineGraphMesh (int dimension, const TPZVec< std::string > &scalnames, const TPZVec< std::string > &vecnames, const TPZVec< std::string > &tensnames, const std::string &plotfile) |
Define GrapMesh as VTK with tensorial names depending on extension of the file. More... | |
virtual void | DefineGraphMesh (int dimension, const std::set< int > &matids, const TPZVec< std::string > &scalnames, const TPZVec< std::string > &vecnames, const std::string &plotfile) |
Define GrapMesh as V3D, DX, MV or VTK depending on extension of the file. More... | |
virtual void | DefineGraphMesh (int dimension, const std::set< int > &matids, const TPZVec< std::string > &scalnames, const TPZVec< std::string > &vecnames, const TPZVec< std::string > &tensnames, const std::string &plotfile) |
Define GrapMesh as VTK with tensorial names depending on extension of the file. More... | |
virtual void | CloseGraphMesh () |
Clean the GrapMesh vector. More... | |
TPZGraphMesh * | GraphMesh (int dimension) |
Defines the postprocessing parameters for the graphical grid. More... | |
virtual void | PostProcess (int resolution) |
Draw solution over mesh for all dimensions. More... | |
virtual void | PostProcess (int resolution, int dimension) |
Draw solution over mesh by dimension. More... | |
void | IdentifyPostProcessingMatIds (int dimension, std::set< int > &matids) |
Fill mat ids with materials with provided dimension wich are not boundary conditinos or interface. More... | |
virtual void | LoadSolution () |
Load the solution into the computable grid. More... | |
TPZVec< STATE > | Integrate (const std::string &varname, const std::set< int > &matids) |
Integrate the postprocessed variable name over the elements included in the set matids. More... | |
void | SetExact (std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &result, TPZFMatrix< STATE > &deriv)> f) |
Sets the pointer of the exact solution function. More... | |
virtual void | PostProcess (TPZVec< REAL > &loc, std::ostream &out=std::cout) |
Compute the local error over all elements and global errors in several norms and print out. More... | |
virtual void | PostProcessError (TPZVec< REAL > &, bool store_error=true, std::ostream &out=std::cout) |
Compute the local error over all elements and global errors in several norms and print out without calculating the errors of the variables for hdiv spaces. More... | |
virtual void | PostProcessErrorSerial (TPZVec< REAL > &, bool store_error=true, std::ostream &out=std::cout) |
virtual void | PostProcessErrorParallel (TPZVec< REAL > &, bool store_error=true, std::ostream &out=std::cout) |
void | CreateListOfCompElsToComputeError (TPZAdmChunkVector< TPZCompEl *> &elvec) |
void | Print (const std::string &name, std::ostream &out) |
Print connect and solution information. More... | |
void | PrintVectorByElement (std::ostream &out, TPZFMatrix< STATE > &vec, REAL tol=1.e-10) |
Print the residual vector for those elements with entry above a given tolerance. More... | |
TPZMatrixSolver< STATE > & | Solver () |
Get the solver matrix. More... | |
void | AnimateRun (int64_t num_iter, int steps, TPZVec< std::string > &scalnames, TPZVec< std::string > &vecnames, const std::string &plotfile) |
Run and print the solution step by step. More... | |
void | SetSolver (TPZMatrixSolver< STATE > &solver) |
Set solver matrix. More... | |
void | SetStructuralMatrix (TPZAutoPointer< TPZStructMatrix > strmatrix) |
Set structural matrix as auto pointer for analysis. More... | |
void | SetStructuralMatrix (TPZStructMatrix &strmatrix) |
Set structural matrix for analysis. More... | |
virtual void | DefineElementTable (int dimension, TPZVec< int64_t > &GeoElIds, TPZVec< REAL > &points) |
Fill the computational element vector to post processing depending over geometric mesh defined. More... | |
virtual void | SetTableVariableNames (TPZVec< std::string > varnames) |
Sets the names of the variables into the data structure for post processing. More... | |
virtual void | PrePostProcessTable (std::ostream &out_file) |
Prepare data to print post processing and print coordinates. More... | |
virtual void | PostProcessTable (std::ostream &out_file) |
Print the solution related with the computational element vector in post process. More... | |
void | PostProcessTable (TPZFMatrix< REAL > &pos, std::ostream &out=std::cout) |
Compute and print the local error over all elements in data structure of post process, also compute global errors in several norms. 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 Attributes | |
TPZFMatrix< STATE > | fReferenceSolution |
Solution vector. More... | |
TPZAutoPointer< TPZMatrix< STATE > > | fReducableStiff |
Stiffness matrix to sub mesh. More... | |
TPZSubCompMesh * | fMesh |
The computational sub mesh. More... | |
Additional Inherited Members | |
Public Types inherited from TPZAnalysis | |
enum | EPrecond { EJacobi, EBlockJacobi, EElement, ENodeCentered } |
Preconditioners which can be created by objects of this class. 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) |
Public Attributes inherited from TPZAnalysis | |
std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &result, TPZFMatrix< STATE > &deriv)> | fExact |
Pointer to Exact solution function, it is necessary to calculating errors. More... | |
Protected Attributes inherited from TPZAnalysis | |
TPZGeoMesh * | fGeoMesh |
Geometric Mesh. More... | |
TPZCompMesh * | fCompMesh |
Computational mesh. More... | |
TPZGraphMesh * | fGraphMesh [3] |
Graphical mesh. More... | |
TPZFMatrix< STATE > | fRhs |
Load vector. More... | |
TPZFMatrix< STATE > | fSolution |
Solution vector. More... | |
TPZMatrixSolver< STATE > * | fSolver |
Type of solver to be applied. More... | |
TPZVec< std::string > | fScalarNames [3] |
Scalar variables names - to post process. More... | |
TPZVec< std::string > | fVectorNames [3] |
Vectorial variables names - to post process. More... | |
TPZVec< std::string > | fTensorNames [3] |
Tensorial variables names - to post process. More... | |
int | fStep |
Time step. More... | |
REAL | fTime |
Time variable which is used in dx output. More... | |
int | fNthreadsError |
Number of threads to be used for post-processing error. More... | |
TPZAutoPointer< TPZStructMatrix > | fStructMatrix |
Structural matrix. More... | |
TPZAutoPointer< TPZRenumbering > | fRenumber |
Renumbering scheme. More... | |
TPZAutoPointer< TPZGuiInterface > | fGuiInterface |
Pointer for gui interface object. More... | |
TTablePostProcess | fTable |
Analysis procedure to computational sub mesh. Analysis.
Definition at line 20 of file pzsmanal.h.
TPZSubMeshAnalysis::TPZSubMeshAnalysis | ( | TPZSubCompMesh * | mesh = 0 | ) |
Constructor: create an object analysis from one mesh.
Definition at line 23 of file pzsmanal.cpp.
References TPZAnalysis::fCompMesh, fMesh, fReferenceSolution, TPZCompMesh::NEquations(), and TPZFMatrix< TVar >::Redim().
|
virtual |
Destructor.
Definition at line 32 of file pzsmanal.cpp.
|
overridevirtual |
Assemble the global stiffness matrix and put it into the reducable stiffness matrix.
Reimplemented from TPZAnalysis.
Definition at line 56 of file pzsmanal.cpp.
References TPZSolver< TVar >::Clone(), DebugStop, TPZAnalysis::fCompMesh, TPZAnalysis::fGuiInterface, fMesh, fReducableStiff, fReferenceSolution, TPZAnalysis::fRhs, TPZAnalysis::fSolver, TPZAnalysis::fStructMatrix, TPZCompEl::Index(), TPZMatrixSolver< TVar >::Matrix(), TPZAnalysis::Mesh(), TPZCompEl::Mesh(), TPZCompMesh::NElements(), TPZCompMesh::NEquations(), TPZSubCompMesh::NumberRigidBodyModes(), TPZSubCompMesh::NumInternalEquations(), TPZFMatrix< TVar >::Redim(), TPZMatrix< TVar >::Redim(), TPZMatRed< TVar, TSideMatrix >::SetF(), TPZMatrixSolver< TVar >::SetMatrix(), TPZMatRed< TVar, TSideMatrix >::SetMaxNumberRigidBodyModes(), and TPZMatRed< TVar, TSideMatrix >::SetSolver().
|
overridevirtual |
Define the class id associated with the class.
This id has to be unique for all classes A non unique id is flagged at the startup of the program
Reimplemented from TPZAnalysis.
Definition at line 195 of file pzsmanal.cpp.
References TPZAnalysis::ClassId(), and Hash().
Referenced by Matrix().
void TPZSubMeshAnalysis::CondensedSolution | ( | TPZFMatrix< STATE > & | ek, |
TPZFMatrix< STATE > & | ef | ||
) |
CondensedSolution: returns the condensed stiffness matrix - ek - and the condensed solution vector - ef.
Definition at line 121 of file pzsmanal.cpp.
References DebugStop, EMathematicaInput, fReducableStiff, TPZMatRed< TVar, TSideMatrix >::K11Reduced(), LOGPZ_DEBUG, and TPZMatRed< TVar, TSideMatrix >::Print().
Referenced by TPZSubCompMesh::CalcStiff(), and Matrix().
|
overridevirtual |
Load the solution into the computable mesh considering sol as Solution vector of the analysis.
Reimplemented from TPZAnalysis.
Definition at line 165 of file pzsmanal.cpp.
References fMesh, fReducableStiff, fReferenceSolution, TPZAnalysis::fSolution, TPZFMatrix< TVar >::GetVal(), TPZAnalysis::LoadSolution(), LOGPZ_DEBUG, TPZSubCompMesh::NumInternalEquations(), TPZMatrix< TVar >::Print(), and TPZMatRed< TVar, TSideMatrix >::UGlobal().
|
inline |
Definition at line 39 of file pzsmanal.h.
References Assemble(), ClassId(), CondensedSolution(), fReducableStiff, ReducedRightHandSide(), Run(), and SetCompMesh().
Referenced by TPZSubCompMesh::Assemble().
void TPZSubMeshAnalysis::ReducedRightHandSide | ( | TPZFMatrix< STATE > & | rhs | ) |
compute the reduced right hand side using the current stiffness. Abort if there is no stiffness computed
Definition at line 145 of file pzsmanal.cpp.
References DebugStop, EMathematicaInput, TPZMatRed< TVar, TSideMatrix >::F1Red(), fReducableStiff, TPZAnalysis::fRhs, LOGPZ_DEBUG, TPZMatRed< TVar, TSideMatrix >::Print(), and TPZMatRed< TVar, TSideMatrix >::SetF().
Referenced by TPZSubCompMesh::CalcResidual(), and Matrix().
|
overridevirtual |
Run: assemble the stiffness matrix.
Reimplemented from TPZAnalysis.
Definition at line 102 of file pzsmanal.cpp.
References Assemble(), DebugStop, fReducableStiff, fReferenceSolution, and TPZAnalysis::fSolution.
Referenced by Matrix().
|
overridevirtual |
Set the computational mesh of the analysis.
Reimplemented from TPZAnalysis.
Definition at line 38 of file pzsmanal.cpp.
References DebugStop, TPZAnalysis::fCompMesh, fMesh, fReferenceSolution, TPZCompMesh::NEquations(), TPZFMatrix< TVar >::Redim(), and TPZAnalysis::SetCompMesh().
Referenced by Matrix().
|
private |
The computational sub mesh.
Definition at line 29 of file pzsmanal.h.
Referenced by Assemble(), LoadSolution(), SetCompMesh(), and TPZSubMeshAnalysis().
|
private |
Stiffness matrix to sub mesh.
Definition at line 27 of file pzsmanal.h.
Referenced by Assemble(), CondensedSolution(), LoadSolution(), Matrix(), ReducedRightHandSide(), and Run().
|
private |
Solution vector.
Definition at line 24 of file pzsmanal.h.
Referenced by Assemble(), LoadSolution(), Run(), SetCompMesh(), and TPZSubMeshAnalysis().