NeoPZ
|
#include <pzporoanalysis.h>
Public Member Functions | |
TPZPoroElastoPlasticAnalysis (TPZCompMesh *mesh, std::ostream &out) | |
TPZPoroElastoPlasticAnalysis () | |
virtual | ~TPZPoroElastoPlasticAnalysis () |
virtual void | Run (std::ostream &out, REAL tol, int numiter, TPZPostProcAnalysis *ppAnalysis, int res) |
virtual void | Run (std::ostream &out=std::cout) |
Calls the appropriate sequence of methods to build a solution or a time stepping sequence. More... | |
virtual void | SetDeltaT (const REAL deltaT) |
Informs the pertinent poroelastoplastic materials the current timestep. More... | |
void | SetInitialPorePressure (REAL initPress) |
Assembles and solves a L2 matrix to generate a constant pore pressure initial solution state Should be called only after assigning a solve method. More... | |
Public Member Functions inherited from TPZElastoPlasticAnalysis | |
TPZElastoPlasticAnalysis (TPZCompMesh *mesh, std::ostream &out) | |
Constructor. More... | |
TPZElastoPlasticAnalysis () | |
Default constructor. More... | |
virtual | ~TPZElastoPlasticAnalysis () |
Default destructor. More... | |
virtual void | IterativeProcessPrecomputedMatrix (std::ostream &out, REAL tol, int numiter, bool linesearch) |
virtual void | IterativeProcess (std::ostream &out, REAL tol, int numiter, int niter_update_jac, bool linesearch) |
Iterative process using the linear elastic material as tangent matrix. More... | |
virtual void | IterativeProcess (std::ostream &out, REAL tol, int numiter, bool linesearch, bool checkconv, bool &ConvOrDiverg) |
It process a Newton's method to solve the non-linear problem. In this implementation, the line search is temporarily disabled. More... | |
virtual void | IterativeProcess (std::ostream &out, REAL tol, int numiter, bool linesearch, bool checkconv) |
It process a Newton's method to solve the non-linear problem. More... | |
virtual REAL | LineSearch (const TPZFMatrix< REAL > &Wn, const TPZFMatrix< REAL > &DeltaW, TPZFMatrix< REAL > &NextW, REAL RhsNormPrev, REAL &RhsNormResult, int niter, bool &converging) |
virtual void | ManageIterativeProcess (std::ostream &out, REAL tol, int numiter, int BCId, int nsteps, REAL PGRatio, TPZFMatrix< REAL > &val1Begin, TPZFMatrix< REAL > &val1End, TPZFMatrix< REAL > &val2Begin, TPZFMatrix< REAL > &val2End, TPZPostProcAnalysis *ppAnalysis=NULL, int res=0) |
The code below manages the update of a certain boundary condition (BCId) to assume values progressing from begin to end values within nsteps, such that the last step length is a 'lastStepRatio' fraction of the global load in a geometric progression. More... | |
virtual void | LoadSolution () |
Load the solution into the computable grid, transfering it to the multi physics meshes. More... | |
TPZFMatrix< REAL > & | CumulativeSolution () |
void | SetPrecond (TPZMatrixSolver< REAL > &precond) |
void | SetBiCGStab (int numiter, REAL tol) |
void | SetBiCGStab_Jacobi (int numiter, REAL tol) |
void | SetLU () |
void | TransferSolution (TPZPostProcAnalysis &ppanalysis) |
void | AddNoPenetration (int matid, int direction) |
void | IdentifyEquationsToZero () |
build the fEquationstoZero datastructure based on the fMaterialIds data structure More... | |
void | GetActiveEquations (TPZVec< int64_t > &activeEquations) |
return the vector of active equation indices More... | |
void | CheckConv (std::ostream &out, REAL range) |
virtual void | ComputeTangent (TPZFMatrix< REAL > &tangent, TPZVec< REAL > &coefs, int icase) |
virtual int | NumCases () |
virtual void | Residual (TPZFMatrix< REAL > &residual, int icase) |
bool | IsMultiPhysicsConfiguration () |
Structure defining a multiphysics configuration. More... | |
void | SetMultiPhysics (TPZCompMesh *mphysics, TPZVec< TPZCompMesh *> &meshvec) |
Initialize the multiphysics data structure. More... | |
void | ResetMultiPhysics () |
Reset the multiphysics data structure. More... | |
Public Member Functions inherited from TPZNonLinearAnalysis | |
TPZNonLinearAnalysis (TPZCompMesh *mesh, std::ostream &out) | |
Constructor with computational mesh. More... | |
TPZNonLinearAnalysis () | |
Default constructor. More... | |
virtual | ~TPZNonLinearAnalysis () |
Default destructor. More... | |
REAL | LineSearch (const TPZFMatrix< STATE > &Wn, TPZFMatrix< STATE > DeltaW, TPZFMatrix< STATE > &NextW, REAL tol, int niter) |
Implements a golden section line search. More... | |
REAL | SolutionNorm () |
Computes the L2 norm of the solution. More... | |
virtual void | ComputeTangent (TPZFMatrix< STATE > &tangent, TPZVec< REAL > &coefs, int icase) |
int | NumCases () |
Actually return 1. More... | |
virtual void | Residual (TPZFMatrix< STATE > &residual, int icase) |
virtual void | LoadSolution (const TPZFMatrix< STATE > &state) |
Load the solution into the computable mesh considering sol as Solution vector of the analysis. More... | |
void | LoadState (TPZFMatrix< STATE > &state) |
Load solution with state as solution. But fSolution is not modified. 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... | |
virtual void | SetCompMesh (TPZCompMesh *mesh, bool mustOptimizeBandwidth) |
Set the computational mesh of the analysis. 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 | Assemble () |
Assemble the stiffness matrix and load vector. 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... | |
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... | |
int | ClassId () const override |
Define the class id associated with the class. 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 | |
Protected Member Functions | |
virtual REAL | AcceptSolution (const int ResetOutputDisplacements=0) |
Reimplemented in order to manage the different kinds of varibles. Displacements are incremental and pressure is replaceable. More... | |
int | FindPorousMaterials () |
Searches in the computational mesh for all the porous material instantiations. More... | |
void | SetAdvancedState () |
Sets the solution vector to be the one representing the Advanced State or the advanced implicit solution. More... | |
void | SetLastState () |
Sets the solution vector to be the one representing the Current State or the last explicit solution. More... | |
void | SetContributionTime (TPZContributeTime time) |
Informs the Analysis class the time at which the current solution in the computational mesh belongs, so that the materials can choose whether to contribute implicitly or explicitly. More... | |
Protected Member Functions inherited from TPZElastoPlasticAnalysis | |
void | SetUpdateMem (int update) |
Forces the materials with memory to update the internal plastic memory during the subsequent assemble/contribute calls when update is set to 1. When set to 0, the conventional contribute routine takes place. More... | |
void | UpdatePrecond () |
Updates block diagonal preconditioning matrix. More... | |
Protected Attributes | |
TPZStack< int > | fPorousMaterialIds |
Stores a list of Ids of all porous materials in the computational mehs. More... | |
TPZFMatrix< REAL > | fRhsLast |
Stores the last state RHS assembled state, sparing computational time by avoiding evaluating the same contributions in each assemble() operation. More... | |
Protected Attributes inherited from TPZElastoPlasticAnalysis | |
TPZFMatrix< REAL > | fCumSol |
TPZMatrixSolver< REAL > * | fPrecond |
std::set< int64_t > | fEquationstoZero |
Equations with zero dirichlet boundary condition. More... | |
std::multimap< int, int > | fMaterialIds |
Materials with no penetration boundary conditions. More... | |
TPZCompMesh * | fMultiPhysics |
The multiphysics mesh. More... | |
TPZManVector< TPZCompMesh *, 2 > | fMeshVec |
The elasticity mesh and vertical deformation mesh. 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 |
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 TPZElastoPlasticAnalysis | |
static void | SetAllCreateFunctionsWithMem (TPZCompMesh *cmesh) |
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... | |
Static Protected Member Functions inherited from TPZElastoPlasticAnalysis | |
static TPZCompEl * | CreateCubeElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreateLinearElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreatePointElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreatePrismElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreatePyramElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreateQuadElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreateTetraElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
static TPZCompEl * | CreateTriangElWithMem (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) |
Definition at line 14 of file pzporoanalysis.h.
TPZPoroElastoPlasticAnalysis::TPZPoroElastoPlasticAnalysis | ( | TPZCompMesh * | mesh, |
std::ostream & | out | ||
) |
Definition at line 21 of file pzporoanalysis.cpp.
References TPZAnalysis::fCompMesh, FindPorousMaterials(), fRhsLast, TPZCompMesh::NEquations(), and TPZFMatrix< TVar >::Redim().
TPZPoroElastoPlasticAnalysis::TPZPoroElastoPlasticAnalysis | ( | ) |
Definition at line 15 of file pzporoanalysis.cpp.
References FindPorousMaterials().
|
virtual |
Definition at line 30 of file pzporoanalysis.cpp.
References LOGPZ_INFO.
|
protectedvirtual |
Reimplemented in order to manage the different kinds of varibles. Displacements are incremental and pressure is replaceable.
Reimplemented from TPZElastoPlasticAnalysis.
Definition at line 167 of file pzporoanalysis.cpp.
References TPZAnalysis::Assemble(), TPZAnalysis::fCompMesh, TPZElastoPlasticAnalysis::fCumSol, TPZCompMesh::FindMaterial(), fPorousMaterialIds, TPZAnalysis::fRhs, TPZAnalysis::fSolution, TPZAnalysis::LoadSolution(), LOGPZ_INFO, TPZVec< T >::NElements(), Norm(), TPZMaterial::NStateVariables(), TPZAnalysis::Rhs(), TPZMatrix< TVar >::Rows(), TPZElastoPlasticAnalysis::SetUpdateMem(), and TPZFMatrix< TVar >::Zero().
Referenced by Run().
|
protected |
Searches in the computational mesh for all the porous material instantiations.
Definition at line 103 of file pzporoanalysis.cpp.
References TPZAnalysis::fCompMesh, fPorousMaterialIds, TPZMaterial::Id(), TPZCompMesh::MaterialVec(), TPZVec< T >::NElements(), TPZCompMesh::NMaterials(), TPZStack< T, NumExtAlloc >::Push(), and TPZManVector< T, NumExtAlloc >::Resize().
Referenced by Run(), and TPZPoroElastoPlasticAnalysis().
|
virtual |
Definition at line 118 of file pzporoanalysis.cpp.
References AcceptSolution(), TPZElastoPlasticAnalysis::IterativeProcess(), LOGPZ_INFO, TPZAnalysis::PostProcess(), and TPZElastoPlasticAnalysis::TransferSolution().
|
inlinevirtual |
Calls the appropriate sequence of methods to build a solution or a time stepping sequence.
Reimplemented from TPZAnalysis.
Definition at line 27 of file pzporoanalysis.h.
References AcceptSolution(), FindPorousMaterials(), TPZAnalysis::Run(), SetAdvancedState(), SetContributionTime(), SetDeltaT(), SetInitialPorePressure(), and SetLastState().
|
protected |
Sets the solution vector to be the one representing the Advanced State or the advanced implicit solution.
Definition at line 67 of file pzporoanalysis.cpp.
References Advanced_CT, TPZAnalysis::fCompMesh, TPZAnalysis::fSolution, TPZCompMesh::LoadSolution(), and SetContributionTime().
Referenced by Run().
|
protected |
Informs the Analysis class the time at which the current solution in the computational mesh belongs, so that the materials can choose whether to contribute implicitly or explicitly.
Definition at line 79 of file pzporoanalysis.cpp.
References TPZAnalysis::fCompMesh, TPZCompMesh::FindMaterial(), fPorousMaterialIds, TPZVec< T >::NElements(), and TPZMatTemporal::SetContributionTime().
Referenced by Run(), SetAdvancedState(), and SetLastState().
|
virtual |
Informs the pertinent poroelastoplastic materials the current timestep.
deltaT | [in] timestep |
Definition at line 91 of file pzporoanalysis.cpp.
References TPZAnalysis::fCompMesh, TPZCompMesh::FindMaterial(), fPorousMaterialIds, TPZVec< T >::NElements(), and TPZMatTemporal::SetDeltaT().
Referenced by Run().
void TPZPoroElastoPlasticAnalysis::SetInitialPorePressure | ( | REAL | initPress | ) |
Assembles and solves a L2 matrix to generate a constant pore pressure initial solution state Should be called only after assigning a solve method.
Referenced by Run().
|
protected |
Sets the solution vector to be the one representing the Current State or the last explicit solution.
Definition at line 73 of file pzporoanalysis.cpp.
References TPZAnalysis::fCompMesh, TPZAnalysis::fSolution, Last_CT, TPZCompMesh::LoadSolution(), and SetContributionTime().
Referenced by Run().
|
protected |
Stores a list of Ids of all porous materials in the computational mehs.
Definition at line 81 of file pzporoanalysis.h.
Referenced by AcceptSolution(), FindPorousMaterials(), SetContributionTime(), and SetDeltaT().
|
protected |
Stores the last state RHS assembled state, sparing computational time by avoiding evaluating the same contributions in each assemble() operation.
Definition at line 87 of file pzporoanalysis.h.
Referenced by TPZPoroElastoPlasticAnalysis().