NeoPZ
|
#include <pzelastoplasticanalysis.h>
Public Member Functions | |
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 REAL | AcceptSolution (const int ResetOutputDisplacements=0) |
Informs the materials to update the plastic memory, assembles the rhs in order to update the memory and unsets the materials to update the memory. 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 | Run (std::ostream &out=std::cout) |
Calls the appropriate sequence of methods to build a solution or a time stepping sequence. 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 | |
Static Public Member Functions | |
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) |
Protected Member Functions | |
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... | |
Static Protected Member Functions | |
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) |
Protected Attributes | |
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... | |
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... | |
Definition at line 18 of file pzelastoplasticanalysis.h.
TPZElastoPlasticAnalysis::TPZElastoPlasticAnalysis | ( | TPZCompMesh * | mesh, |
std::ostream & | out | ||
) |
Constructor.
Definition at line 45 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::fCompMesh, fCumSol, TPZAnalysis::fSolution, LoadSolution(), TPZCompMesh::NEquations(), TPZFMatrix< TVar >::Redim(), and TPZFMatrix< TVar >::Zero().
TPZElastoPlasticAnalysis::TPZElastoPlasticAnalysis | ( | ) |
Default constructor.
Definition at line 40 of file pzelastoplasticanalysis.cpp.
|
virtual |
Default destructor.
Definition at line 56 of file pzelastoplasticanalysis.cpp.
References fPrecond, and LOGPZ_DEBUG.
|
virtual |
Informs the materials to update the plastic memory, assembles the rhs in order to update the memory and unsets the materials to update the memory.
ResetOutputDisplacements | [in] Informs whether to add or reset the deltaSolution to the cumulative solution. |
Reimplemented in TPZPoroElastoPlasticAnalysis.
Definition at line 534 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::AssembleResidual(), DebugStop, TPZAnalysis::fCompMesh, fCumSol, TPZCompMesh::FindMaterial(), TPZAnalysis::fRhs, TPZAnalysis::fSolution, LoadSolution(), LOGPZ_DEBUG, Norm(), SetUpdateMem(), and TPZFMatrix< TVar >::Zero().
Referenced by ManageIterativeProcess().
|
inline |
Definition at line 97 of file pzelastoplasticanalysis.h.
References CheckConv(), ComputeTangent(), fMaterialIds, GetActiveEquations(), IdentifyEquationsToZero(), NumCases(), Residual(), SetAllCreateFunctionsWithMem(), SetUpdateMem(), and UpdatePrecond().
void TPZElastoPlasticAnalysis::CheckConv | ( | std::ostream & | out, |
REAL | range | ||
) |
Definition at line 596 of file pzelastoplasticanalysis.cpp.
References CheckConvergence(), TPZAnalysis::fCompMesh, TPZAnalysis::fSolution, LOGPZ_INFO, and TPZCompMesh::NEquations().
Referenced by AddNoPenetration().
|
virtual |
Definition at line 618 of file pzelastoplasticanalysis.cpp.
References TPZStructMatrixOR::Assemble(), TPZAnalysis::fCompMesh, TPZAnalysis::Mesh(), TPZCompMesh::NEquations(), and TPZFMatrix< TVar >::Redim().
Referenced by AddNoPenetration().
|
staticprotected |
TPZCompElWithMem<TBASE> creation function setup These functions should be defined as static members of the TPZCompElWithMem<TBASE> class but were defined here because the TPZCompElWithMem is a template class and would require a dummy template argumet in order to be called. That woudn't be elegant.
Definition at line 991 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 996 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 1001 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 1006 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 1011 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 1016 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 1022 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
staticprotected |
Definition at line 1027 of file pzelastoplasticanalysis.cpp.
Referenced by SetAllCreateFunctionsWithMem().
|
inline |
Definition at line 82 of file pzelastoplasticanalysis.h.
References fCumSol, SetBiCGStab(), SetBiCGStab_Jacobi(), SetLU(), SetPrecond(), and TransferSolution().
void TPZElastoPlasticAnalysis::GetActiveEquations | ( | TPZVec< int64_t > & | activeEquations | ) |
return the vector of active equation indices
Definition at line 1084 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::fCompMesh, fEquationstoZero, TPZCompMesh::NEquations(), and TPZVec< T >::resize().
Referenced by AddNoPenetration().
void TPZElastoPlasticAnalysis::IdentifyEquationsToZero | ( | ) |
build the fEquationstoZero datastructure based on the fMaterialIds data structure
Definition at line 1032 of file pzelastoplasticanalysis.cpp.
References TPZCompMesh::Block(), TPZCompEl::Connect(), TPZCompMesh::ElementVec(), TPZAnalysis::fCompMesh, fEquationstoZero, fMaterialIds, TPZMaterial::Id(), LOGPZ_DEBUG, TPZCompEl::Material(), TPZCompEl::NConnects(), TPZCompMesh::NElements(), TPZBlock< TVar >::Position(), TPZConnect::SequenceNumber(), and TPZBlock< TVar >::Size().
Referenced by AddNoPenetration().
|
inline |
Structure defining a multiphysics configuration.
Definition at line 138 of file pzelastoplasticanalysis.h.
References fMultiPhysics.
Referenced by LoadSolution().
|
virtual |
Iterative process using the linear elastic material as tangent matrix.
:: When residue_norm_prev < tol the solution is already converged then return.
Definition at line 135 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::Assemble(), TPZAnalysis::AssembleResidual(), TPZAnalysis::fRhs, TPZAnalysis::fSolution, LineSearch(), TPZNonLinearAnalysis::LoadSolution(), LoadSolution(), Norm(), TPZAnalysis::Solve(), pzgeom::tol, and TPZFMatrix< TVar >::Zero().
Referenced by ManageIterativeProcess(), and TPZPoroElastoPlasticAnalysis::Run().
|
virtual |
It process a Newton's method to solve the non-linear problem. In this implementation, the line search is temporarily disabled.
Definition at line 319 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::Assemble(), TPZAnalysis::AssembleResidual(), CheckConvergence(), DebugStop, error(), TPZAnalysis::fCompMesh, TPZAnalysis::fRhs, TPZAnalysis::fSolution, LineSearch(), LoadSolution(), LOGPZ_DEBUG, TPZAnalysis::Mesh(), TPZCompMesh::NEquations(), Norm(), TPZMatrix< TVar >::Print(), TPZAnalysis::PrintVectorByElement(), TPZFMatrix< TVar >::Redim(), TPZMatrix< TVar >::Rows(), TPZCompMesh::Solution(), TPZAnalysis::Solve(), and TPZFMatrix< TVar >::Zero().
|
virtual |
It process a Newton's method to solve the non-linear problem.
It has the possibility of line search with parameter linesearch = true.
Reimplemented from TPZNonLinearAnalysis.
Definition at line 427 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::Assemble(), TPZAnalysis::AssembleResidual(), CheckConvergence(), error(), TPZAnalysis::fCompMesh, TPZAnalysis::fRhs, TPZAnalysis::fSolution, LineSearch(), LoadSolution(), LOGPZ_DEBUG, TPZCompMesh::NEquations(), Norm(), TPZMatrix< TVar >::Print(), TPZFMatrix< TVar >::Redim(), TPZMatrix< TVar >::Rows(), and TPZAnalysis::Solve().
|
virtual |
Definition at line 235 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::AssembleResidual(), TPZAnalysis::fRhs, TPZAnalysis::fSolution, LineSearch(), TPZNonLinearAnalysis::LoadSolution(), LoadSolution(), Norm(), TPZAnalysis::Solve(), pzgeom::tol, and TPZFMatrix< TVar >::Zero().
|
virtual |
Definition at line 71 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::AssembleResidual(), EMathematicaInput, fabs, stats::filename, TPZAnalysis::fRhs, TPZNonLinearAnalysis::LoadSolution(), LOGPZ_ERROR, Norm(), and TPZMatrix< TVar >::Print().
Referenced by IterativeProcess(), and IterativeProcessPrecomputedMatrix().
|
virtual |
Load the solution into the computable grid, transfering it to the multi physics meshes.
Load the solution into the computable grid, transferring it to the multi physics meshes.
Reimplemented from TPZNonLinearAnalysis.
Definition at line 585 of file pzelastoplasticanalysis.cpp.
References fMeshVec, fMultiPhysics, IsMultiPhysicsConfiguration(), TPZNonLinearAnalysis::LoadSolution(), and TPZBuildMultiphysicsMesh::TransferFromMultiPhysics().
Referenced by AcceptSolution(), IterativeProcess(), IterativeProcessPrecomputedMatrix(), TPZElastoPlasticAnalysis(), and TransferSolution().
|
virtual |
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.
out | [in] output device to write the output to |
tol | [in] tolerance desired in each loading step |
numiter | [in] maximum iteration steps in each loading step |
BCId | [in] boundary condition Id |
nsteps | [in] number of steps |
PGRatio | [in] ratio for the PG progression |
val1Begin | [in] beginning value of BC.Val1 |
val1End | [in] final value of BC.Val1 |
val2Begin | [in] beginning value of BC.Val2 |
val2End | [in] final value of BC.Val2 |
ppAnalysis | [in] TPZPostProcAnalysis object to write the output to |
res | [in] output postprocessing resolution |
Definition at line 794 of file pzelastoplasticanalysis.cpp.
References AcceptSolution(), fabs, TPZAnalysis::fCompMesh, TPZCompMesh::FindMaterial(), IterativeProcess(), LOGPZ_INFO, TPZAnalysis::PostProcess(), pow(), pzgeom::tol, TransferSolution(), TPZBndCond::Val1(), TPZBndCond::Val2(), and TPZFMatrix< TVar >::ZAXPY().
|
virtual |
Definition at line 629 of file pzelastoplasticanalysis.cpp.
Referenced by AddNoPenetration().
|
inline |
Reset the multiphysics data structure.
Definition at line 151 of file pzelastoplasticanalysis.h.
References fMeshVec, fMultiPhysics, and TPZManVector< T, NumExtAlloc >::Resize().
|
virtual |
Definition at line 633 of file pzelastoplasticanalysis.cpp.
References TPZStructMatrixOR::Assemble(), TPZAnalysis::fCompMesh, TPZAnalysis::Mesh(), TPZCompMesh::NEquations(), and TPZFMatrix< TVar >::Redim().
Referenced by AddNoPenetration().
|
static |
Definition at line 968 of file pzelastoplasticanalysis.cpp.
References TPZCompMesh::ApproxSpace(), CreateCubeElWithMem(), CreateLinearElWithMem(), CreatePointElWithMem(), CreatePrismElWithMem(), CreatePyramElWithMem(), CreateQuadElWithMem(), CreateTetraElWithMem(), CreateTriangElWithMem(), ECube, EOned, EPiramide, EPoint, EPrisma, EQuadrilateral, ETetraedro, ETriangle, and TPZCreateApproximationSpace::SetCreateFunctions().
Referenced by AddNoPenetration().
void TPZElastoPlasticAnalysis::SetBiCGStab | ( | int | numiter, |
REAL | tol | ||
) |
Definition at line 661 of file pzelastoplasticanalysis.cpp.
References TPZBlockDiagonalStructMatrix::AssembleBlockDiagonal(), ELU, LOGPZ_INFO, TPZAnalysis::Mesh(), TPZStepSolver< TVar >::SetBiCGStab(), TPZStepSolver< TVar >::SetDirect(), TPZMatrixSolver< TVar >::SetMatrix(), SetPrecond(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), TPZAnalysis::Solver(), and pzgeom::tol.
Referenced by CumulativeSolution().
void TPZElastoPlasticAnalysis::SetBiCGStab_Jacobi | ( | int | numiter, |
REAL | tol | ||
) |
Definition at line 707 of file pzelastoplasticanalysis.cpp.
References TPZBlockDiagonalStructMatrix::AssembleBlockDiagonal(), LOGPZ_INFO, TPZAnalysis::Mesh(), TPZStepSolver< TVar >::SetBiCGStab(), TPZStepSolver< TVar >::SetJacobi(), TPZMatrixSolver< TVar >::SetMatrix(), SetPrecond(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), TPZAnalysis::Solver(), and pzgeom::tol.
Referenced by CumulativeSolution().
void TPZElastoPlasticAnalysis::SetLU | ( | ) |
Definition at line 754 of file pzelastoplasticanalysis.cpp.
References ELU, LOGPZ_INFO, TPZAnalysis::Mesh(), TPZStepSolver< TVar >::SetDirect(), TPZMatrixSolver< TVar >::SetMatrix(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), and TPZAnalysis::Solver().
Referenced by CumulativeSolution().
|
inline |
Initialize the multiphysics data structure.
Definition at line 144 of file pzelastoplasticanalysis.h.
References fMeshVec, and fMultiPhysics.
void TPZElastoPlasticAnalysis::SetPrecond | ( | TPZMatrixSolver< REAL > & | precond | ) |
Definition at line 644 of file pzelastoplasticanalysis.cpp.
References TPZSolver< TVar >::Clone(), and fPrecond.
Referenced by CumulativeSolution(), SetBiCGStab(), and SetBiCGStab_Jacobi().
|
protected |
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.
update | [in] 1 - updates the material memory during the next assemble calls; 0 - conventional assemble |
Definition at line 503 of file pzelastoplasticanalysis.cpp.
References TPZAnalysis::fCompMesh, TPZCompMesh::MaterialVec(), and TPZMatWithMem< TMEM, TFather >::SetUpdateMem().
Referenced by TPZPoroElastoPlasticAnalysis::AcceptSolution(), AcceptSolution(), and AddNoPenetration().
void TPZElastoPlasticAnalysis::TransferSolution | ( | TPZPostProcAnalysis & | ppanalysis | ) |
Definition at line 777 of file pzelastoplasticanalysis.cpp.
References fCumSol, TPZAnalysis::fSolution, LoadSolution(), and TPZPostProcAnalysis::TransferSolution().
Referenced by CumulativeSolution(), ManageIterativeProcess(), and TPZPoroElastoPlasticAnalysis::Run().
|
protected |
Updates block diagonal preconditioning matrix.
Definition at line 649 of file pzelastoplasticanalysis.cpp.
References TPZBlockDiagonal< TVar >::BuildFromMatrix(), fPrecond, TPZAnalysis::fSolver, TPZMatrixSolver< TVar >::Matrix(), and TPZMatrix< TVar >::Zero().
Referenced by AddNoPenetration().
|
protected |
Definition at line 161 of file pzelastoplasticanalysis.h.
Referenced by TPZPoroElastoPlasticAnalysis::AcceptSolution(), AcceptSolution(), CumulativeSolution(), TPZElastoPlasticAnalysis(), and TransferSolution().
|
protected |
Equations with zero dirichlet boundary condition.
Definition at line 166 of file pzelastoplasticanalysis.h.
Referenced by GetActiveEquations(), and IdentifyEquationsToZero().
|
protected |
Materials with no penetration boundary conditions.
Definition at line 170 of file pzelastoplasticanalysis.h.
Referenced by AddNoPenetration(), and IdentifyEquationsToZero().
|
protected |
The elasticity mesh and vertical deformation mesh.
Definition at line 176 of file pzelastoplasticanalysis.h.
Referenced by LoadSolution(), ResetMultiPhysics(), and SetMultiPhysics().
|
protected |
The multiphysics mesh.
Definition at line 173 of file pzelastoplasticanalysis.h.
Referenced by IsMultiPhysicsConfiguration(), LoadSolution(), ResetMultiPhysics(), and SetMultiPhysics().
|
protected |
Definition at line 163 of file pzelastoplasticanalysis.h.
Referenced by SetPrecond(), UpdatePrecond(), and ~TPZElastoPlasticAnalysis().