33 static LoggerPtr EPAnalysisLogger(Logger::getLogger(
"pz.analysis.elastoplastic"));
34 static LoggerPtr loggertest(Logger::getLogger(
"testing"));
62 if(EPAnalysisLogger->isDebugEnabled()){
63 std::stringstream sout;
64 sout <<
"<<< TPZElastoPlasticAnalysis::~TPZElastoPlasticAnalysis() *** Killing Object\n";
80 if (
fabs(normprev - RhsNormPrev) > 1.e-6) {
81 std::stringstream sout;
82 sout <<
"Norm of Wn " <<
Norm(Wn) << std::endl;
83 sout <<
"Input previous norm " << RhsNormPrev <<
" Computed Norm " << normprev;
88 REAL scalefactor = 1.;
91 Interval *= scalefactor;
101 filename <<
"Sol." << count <<
".txt";
102 varname <<
"DelSol" << count <<
" = ";
103 ofstream out(filename.str().c_str());
107 filename <<
"Rhs." << count <<
".txt";
108 varname <<
"Rhs" << count++ <<
" = ";
109 ofstream out(filename.str().c_str());
114 #ifndef PLASTICITY_CLEAN_OUT 115 std::cout <<
"scale factor " << scalefactor <<
" residure norm " << RhsNormResult << std::endl;
119 }
while (RhsNormResult > RhsNormPrev && iter < niter);
120 if(
fabs(RhsNormResult - RhsNormPrev)<1.e-6 )
145 REAL residue_norm_prev =
Norm(
fRhs);
146 std::cout.precision(3);
148 bool linesearchconv =
true;
154 for(i = 1 ; i <= numiter; i++) {
165 if (i%niter_update_jac) {
169 std::cout <<
"Jacobian updated at iteration = " << i << endl;
170 out <<
"Jacobian updated at iteration = " << i << endl;
174 if (residue_norm > tol && residue_norm > residue_norm_prev) {
178 this->
LineSearch(x, solkeep, nextSol, residue_norm_prev, residue_norm, niter, linesearchconv);
182 REAL normDeltaSol =
Norm(x);
189 if (i%niter_update_jac) {
193 std::cout <<
"Jacobian updated at iteration = " << i << endl;
194 out <<
"Jacobian updated at iteration = " << i << endl;
202 stop_criterion = residue_norm <
tol;
203 if (stop_criterion) {
204 std::cout << std::endl;
205 std::cout <<
"Tolerance obtained at iteration : " << setw(5) << i << endl;
206 std::cout <<
"Residue Norm |r| : " << setw(5) << residue_norm << endl;
207 std::cout <<
"Correction Norm |dx| : " << setw(5) << deltax_norm << endl;
208 out <<
"Tolerance obtained at Iteration number : " << i << endl;
209 out <<
"Residue Norm |r| : " << residue_norm << endl;
210 out <<
"Correction Norm |dx| : " << deltax_norm << endl;
211 std::cout << std::endl;
213 }
else if (residue_norm - residue_norm_prev > 0.0)
215 std::cout <<
"\nDivergent Method\n";
216 out <<
"Divergent Method norm = " << residue_norm_prev <<
"\n";
219 residue_norm_prev = residue_norm;
220 std::cout <<
"Iteration n : " << setw(4) << i << setw(4) <<
" : correction / residue norms |du| / |r| : " << setw(5) << deltax_norm <<
" / " << setw(5) << residue_norm << std::scientific << endl;
221 out <<
"Iteration n : " << setw(4) << i << setw(4) <<
" : correction / residue norms |du| / |r| : " << setw(5) << deltax_norm <<
" / " << setw(5) << residue_norm << std::scientific << endl;
225 if (i == numiter + 1) {
226 std::cout << std::endl;
227 std::cout <<
"Solution not converged. Rollback and try with more steps." << endl;
228 out <<
"Solution not converged. Rollback and try with more steps." << endl;
229 std::cout << std::endl;
245 REAL residue_norm_prev =
Norm(
fRhs);
246 std::cout.precision(3);
248 bool linesearchconv =
true;
254 for(i = 1 ; i <= numiter; i++) {
268 if (residue_norm > tol && residue_norm > residue_norm_prev) {
272 this->
LineSearch(x, solkeep, nextSol, residue_norm_prev, residue_norm, niter, linesearchconv);
276 REAL normDeltaSol =
Norm(x);
289 stop_criterion = residue_norm <
tol;
290 if (stop_criterion) {
291 std::cout << std::endl;
292 std::cout <<
"Tolerance obtained at iteration : " << setw(5) << i << endl;
293 std::cout <<
"Residue Norm |r| : " << setw(5) << residue_norm << endl;
294 out <<
"Tolerance obtained at Iteration number : " << i << endl;
295 out <<
"Residue Norm |r| : " << residue_norm << endl;
296 std::cout << std::endl;
298 }
else if (residue_norm - residue_norm_prev > 0.0)
300 std::cout <<
"\nDivergent Method\n";
301 out <<
"Divergent Method norm = " << residue_norm_prev <<
"\n";
304 residue_norm_prev = residue_norm;
305 std::cout <<
"Iteration n : " << setw(4) << i << setw(4) <<
" : correction / residue norms |du| / |r| : " << setw(5) << deltax_norm <<
" / " << setw(5) << residue_norm << std::scientific << endl;
306 out <<
"Iteration n : " << setw(4) << i << setw(4) <<
" : correction / residue norms |du| / |r| : " << setw(5) << deltax_norm <<
" / " << setw(5) << residue_norm << std::scientific << endl;
310 if (i == numiter + 1) {
311 std::cout << std::endl;
312 std::cout <<
"Solution not converged. Rollback and try with more steps." << endl;
313 out <<
"Solution not converged. Rollback and try with more steps." << endl;
314 std::cout << std::endl;
330 if(prevsol.
Rows() != numeq)
332 prevsol.
Redim(numeq,1);
338 std::stringstream sout;
355 if (EPAnalysisLogger->isDebugEnabled()) {
356 std::stringstream sout;
361 std::cout <<
"Rhs norm on entry " << RhsNormPrev << std::endl;
366 bool linesearchconv=
true;
368 while(error > tol && iter < numiter) {
376 REAL RhsNormResult = 0.;
379 std::cout <<
"Solution Norm " << solutionNorm << std::endl;
384 this->
LineSearch(prevsol, computedsol, nextSol, RhsNormPrev, RhsNormResult, niter,linesearchconv);
396 REAL normDeltaSol =
Norm(prevsol);
398 REAL norm = RhsNormResult;
399 RhsNormPrev = RhsNormResult;
401 std::cout <<
"Iteracao n : " << (iter+1) <<
" : normas |Delta(Un)| e |Delta(rhs)| : " << normDeltaSol <<
" / " << RhsNormResult << endl;
405 out <<
"Tolerancia atingida na iteracao : " << (iter+1) << endl;
406 out <<
"Iteracao n : " << (iter+1) <<
" : normas |Delta(Un)| e |Delta(rhs)| : " << normDeltaSol <<
" / " << RhsNormResult << endl;
408 std::cout <<
"\nTolerancia atingida na iteracao : " << (iter+1) << endl;
409 std::cout <<
"\n\nNorma da solucao |Delta(Un)| : " << norm << endl << endl;
413 if( (norm - error) > 1.e-9 || linesearchconv ==
false) {
414 std::cout <<
"\nDivergent Method -- Exiting Consistent Tangent Iterative Process \n";
415 out <<
"Divergent Method -- Exiting Consistent Tangent Iterative Process \n";
416 std::cout <<
"\n Trying linearMatrix IterativeProcess \n\n";
438 if(prevsol.
Rows() != numeq) prevsol.
Redim(numeq,1);
442 std::stringstream sout;
456 bool linesearchconv=
true;
457 while(error > tol && iter < numiter) {
460 REAL RhsNormResult = 0.;
464 const int niter = 10;
465 this->
LineSearch(prevsol,
fSolution, nextSol, RhsNormPrev, RhsNormResult, niter,linesearchconv);
476 REAL normDeltaSol =
Norm(prevsol);
478 REAL norm = RhsNormResult;
479 RhsNormPrev = RhsNormResult;
481 std::cout <<
"Iteracao n : " << (iter+1) <<
" : normas |Delta(Un)| e |Delta(rhs)| : " << normDeltaSol <<
" / " << RhsNormResult << endl;
485 std::cout <<
"\nTolerancia atingida na iteracao : " << (iter+1) << endl;
486 std::cout <<
"\n\nNorma da solucao |Delta(Un)| : " << norm << endl << endl;
489 if( (norm - error) > 1.e-9 ) {
490 std::cout <<
"\nDivergent Method \n";
509 std::map<int, TPZMaterial * >::iterator mit;
516 for(mit=refMatVec.begin(); mit!= refMatVec.end(); mit++)
519 if(pMatWithMem != NULL)
524 if(pMatWithMem2 != NULL)
549 if(ResetOutputDisplacements)
558 if (EPAnalysisLogger->isDebugEnabled()){
559 std::stringstream sout;
560 sout <<
">>> TTPZElastoPlasticAnalysis::AcceptSolution *** " 600 std::stringstream sout;
601 sout <<
">>> TPZElastoPlasticAnalysis::CheckConv() ***" 602 <<
"\nEntering method with parameters:" 603 <<
"\n range = " << range;
604 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
621 tangent.
Redim(neq,neq);
625 substitute.
Assemble(tangent,rhs,guiInterface);
636 residual.
Redim(neq,1);
639 substitute.
Assemble(residual,guiInterface);
665 std::stringstream sout;
666 sout <<
">>> TPZElastoPlasticAnalysis::SetBiCGStab() *** numiter = " << numiter <<
" and tol=" <<
tol;
667 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
681 std::stringstream sout;
682 sout <<
"*** TPZElastoPlasticAnalysis::SetBiCGStab() *** Assembling Block Diagonal Preconditioning matrix\n";
683 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
698 std::stringstream sout;
699 sout <<
"<<< TPZElastoPlasticAnalysis::SetBiCGStab() *** Exiting\n";
700 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
711 std::stringstream sout;
712 sout <<
">>> TPZElastoPlasticAnalysis::SetBiCGStab_Jacobi() *** numiter = " << numiter <<
" and tol=" <<
tol;
713 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
728 std::stringstream sout;
729 sout <<
"*** TPZElastoPlasticAnalysis::SetBiCGStab_Jacobi() *** Assembling Block Diagonal Preconditioning matrix\n";
730 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
747 std::stringstream sout;
748 sout <<
"<<< TPZElastoPlasticAnalysis::SetBiCGStab_Jacobi() *** Exiting\n";
749 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
758 std::stringstream sout;
759 sout <<
">>> TPZElastoPlasticAnalysis::SetLU() ***\n";
760 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
795 int BCId,
int nsteps, REAL PGRatio,
806 std::stringstream sout;
807 sout <<
"<<< TPZElastoPlasticAnalysis::ManageIterativeProcess() ***";
808 sout <<
"\nWith parameters:\n";
809 sout <<
"\ntol = " <<
tol;
810 sout <<
"\nnumiter = " << numiter;
811 sout <<
"\nBCId = " << BCId;
812 sout <<
"\nnsteps = " << nsteps;
813 sout <<
"\nPGRatio = " << PGRatio;
814 sout <<
"\nval1Begin = " << val1Begin;
815 sout <<
"\nval1End = " << val1End;
816 sout <<
"\nval2Begin = " << val2Begin;
817 sout <<
"\nval2End = " << val2End;
820 sout <<
"\nppanalysis set";
823 sout <<
"\nppanalysis NOT set";
825 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
831 if(
fabs(PGRatio - 1.) < 1.e-3)
833 a0 = 1. / REAL(nsteps);
835 a0 = (PGRatio - 1) / (
pow(PGRatio,nsteps) - 1.);
841 deltaVal1.
ZAXPY(-1., val1Begin);
843 deltaVal2.
ZAXPY(-1., val2Begin);
852 for(i = 0; i < nsteps; i++)
855 if(
fabs(PGRatio - 1.) < 1.e-3)
857 stepLen = REAL(i+1) / REAL(nsteps);
859 stepLen = a0 * (
pow(PGRatio,i+1) - 1) / (PGRatio - 1.);
863 val1.
ZAXPY(stepLen, deltaVal1);
865 val2.
ZAXPY(stepLen, deltaVal2);
872 std::stringstream sout;
873 sout <<
"*** TPZElastoPlasticAnalysis::ManageIterativeProcess() *** load step " << i;
874 sout <<
" stepLen = " << stepLen;
875 sout <<
"\nBC.val1() = " << val1;
876 sout <<
"\nBC.val2() = " << val2;
877 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
881 bool linesearch =
false;
882 bool checkconv =
false;
889 std::stringstream sout;
890 sout <<
"*** TPZElastoPlasticAnalysis::ManageIterativeProcess() *** load step " << i <<
" ended";
891 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
901 std::stringstream sout;
902 sout <<
"*** TPZElastoPlasticAnalysis::ManageIterativeProcess() *** PostProcessing ";
903 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
913 std::stringstream sout;
914 sout <<
"<<< TPZElastoPlasticAnalysis::ManageIterativeProcess() *** Exiting";
915 LOGPZ_INFO(EPAnalysisLogger,sout.str().c_str());
1036 for (int64_t iel=0; iel<nel; iel++) {
1045 int matid = mat->
Id();
1049 std::pair<std::multimap<int, int>::iterator,std::multimap<int, int>::iterator> ret;
1051 std::multimap<int, int>::iterator it;
1052 for (it=ret.first; it != ret.second; it++)
1054 int direction = it->second;
1056 for (int64_t ic=0; ic<nc; ic++) {
1061 for (int64_t i=pos+direction; i<pos+blsize; i+=2) {
1069 if(EPAnalysisLogger->isDebugEnabled())
1071 std::stringstream sout;
1072 sout <<
"Equations to zero ";
1073 std::set<int64_t>::iterator it;
1088 typedef std::set<int64_t>::iterator setit;
1090 equationflag[*it] = 0;
1094 for (int64_t i=0; i<neq; i++) {
1095 if (equationflag[i]==1) {
1096 activeEquations[count++] = i;
int64_t NElements() const
Number of computational elements allocated.
TPZMatrixSolver< STATE > * fSolver
Type of solver to be applied.
void SetUpdateMem(int update)
Forces the materials with memory to update the internal plastic memory during the subsequent assemble...
Contains TPZShapeTetra class which implements the shape functions of a tetrahedral element...
void CheckConvergence(TConv &obj, TPZFMatrix< STATE > &state, TPZFMatrix< STATE > &range, TPZVec< REAL > &coefs)
Implements a general procedure to check whether the class TConv implements a consistente tangent matr...
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ fabs
TPZCompMesh * fMultiPhysics
The multiphysics mesh.
TPZElastoPlasticAnalysis()
Default constructor.
Contains declaration of TPZIntelGen class which implements a generic computational element...
int Position(const int block_diagonal) const
Returns the position of first element block dependent on matrix diagonal.
void ZAXPY(const TVar alpha, const TPZFMatrix< TVar > &p)
Performs an ZAXPY operation being *this += alpha * p.
Represents a set of shape functions associated with a computational element/side. Computational Eleme...
Contains definitions to LOGPZ_DEBUG, LOGPZ_INFO, LOGPZ_WARN, LOGPZ_ERROR and LOGPZ_FATAL, and the implementation of the inline InitializePZLOG(string) function using log4cxx library or not. It must to be called out of "#ifdef LOG4CXX" scope.
virtual void Solve()
Invert the stiffness matrix.
void SetStructuralMatrix(TPZAutoPointer< TPZStructMatrix > strmatrix)
Set structural matrix as auto pointer for analysis.
Implements a vector class which allows to use external storage provided by the user. Utility.
Implements Block Diagonal Structural Matrices. Structural Matrix.
TPZFMatrix< STATE > fSolution
Solution vector.
static TPZCompEl * CreatePrismElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
virtual void Residual(TPZFMatrix< REAL > &residual, int icase)
virtual void resize(const int64_t newsize)
Contains the declaration of the TPZCompElWithMem class, it is as TPZCompEl with enable material memor...
int64_t NEquations()
This computes the number of equations associated with non-restrained nodes.
TPZFMatrix< REAL > fCumSol
Templated vector implementation.
virtual int Zero()
Zeroes the matrix.
Defines step solvers class. Solver.
void SetSolver(TPZMatrixSolver< STATE > &solver)
Set solver matrix.
TPZCompMesh * fCompMesh
Computational mesh.
void BuildFromMatrix(TPZMatrix< TVar > &matrix)
Builds a block from matrix.
Contains the TPZPoint class which defines the topology of a point.
static void TransferFromMultiPhysics(TPZVec< TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh)
Transfer information from a specific mesh multiphysics for the current specific set of meshes...
Contains the TPZRefQuad class which implements the uniform refinement of a geometric quadrilateral el...
virtual void Assemble()
Assemble the stiffness matrix and load vector.
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.
TPZCompMesh * Mesh() const
Returns the pointer to the computational mesh.
static TPZCompEl * CreatePyramElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
void SetCreateFunctions(TPZVec< TCreateFunction > &createfuncs)
Set custom function pointers.
void SetBiCGStab_Jacobi(int numiter, REAL tol)
virtual void ComputeTangent(TPZFMatrix< REAL > &tangent, TPZVec< REAL > &coefs, int icase)
void CheckConv(std::ostream &out, REAL range)
Contains the TPZStructMatrixOR class which responsible for a interface among Matrix and Finite Elemen...
Contains TPZBlockDiagonal class which defines block diagonal matrices.
virtual void LoadSolution()
Load the solution into the computable grid, transfering it to the multi physics meshes.
TPZMatrixSolver< STATE > & Solver()
Get the solver matrix.
Implements an abstract class implementing the memory features.
TPZFMatrix< STATE > & Val2(int loadcase=0)
Contains the TPZTriangle class which defines the topology of a triangle.
virtual REAL AcceptSolution(const int ResetOutputDisplacements=0)
Informs the materials to update the plastic memory, assembles the rhs in order to update the memory a...
Contains TPZShapeLinear class which implements the shape functions of a linear one-dimensional elemen...
Contains the TPZRefPyramid class which implements the uniform refinement of a geometric hexahedral el...
Contains the TPZTetrahedron class which defines the topology of the tetrahedron element.
void TransferSolution(TPZPostProcAnalysis &ppanalysis)
Contains the TPZFStructMatrix class which implements Full Structural Matrices.
void IdentifyEquationsToZero()
build the fEquationstoZero datastructure based on the fMaterialIds data structure ...
Contains the TPZBlockDiagonalStructMatrix class which implements Block Diagonal Structural Matrices...
This abstract class defines the behaviour which each derived class needs to implement.
Contains TPZShapeCube class which implements the shape functions of a hexaedral element.
Contains the TPZBndCond class which implements a boundary condition for TPZMaterial objects...
virtual TPZMaterial * Material() const
Identify the material object associated with the element.
TPZManVector< TPZCompMesh *, 2 > fMeshVec
The elasticity mesh and vertical deformation mesh.
void SetJacobi(const int64_t numiterations, const REAL tol, const int64_t FromCurrent)
int Zero() override
Makes Zero all the elements.
virtual void IterativeProcessPrecomputedMatrix(std::ostream &out, REAL tol, int numiter, bool linesearch)
Contains the TPZSpStructMatrix class which implements sparse structural matrices. ...
Contains the TPZRefPrism class which implements the uniform refinement of a geometric prism element...
TPZCreateApproximationSpace & ApproxSpace()
int64_t SequenceNumber() const
Returns the Sequence number of the connect object.
TPZMatrixSolver< REAL > * fPrecond
#define LOGPZ_INFO(A, B)
Define log for informations.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
TVar Norm(const TPZFMatrix< TVar > &A)
Returns the norm of the matrix A.
Contains the TPZGeoTetrahedra class which implements the geometry of a tetrahedral element...
#define DebugStop()
Returns a message to user put a breakpoint in.
std::set< int64_t > fEquationstoZero
Equations with zero dirichlet boundary condition.
#define LOGPZ_DEBUG(A, B)
Define log for debug info.
static TPZCompEl * CreateTetraElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
This class defines the boundary condition for TPZMaterial objects.
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.
virtual void SetUpdateMem(bool update=1)
Sets/Unsets the internal memory data to be updated in the next assemble/contribute call...
Contains the TPZElasticityMaterial class which implements a two dimensional elastic material in plane...
Free store vector implementation.
static TPZCompEl * CreateCubeElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Contains the declaration of the TPZBuildmultiphysicsMesh class.
Contains the TPZQuadrilateral class which defines the topology of a quadrilateral element...
virtual void SetMatrix(TPZAutoPointer< TPZMatrix< TVar > > Refmat)
Sets a matrix to the current object.
TPZMaterial * FindMaterial(int id)
Find the material with identity id.
int64_t Rows() const
Returns number of rows.
This class implements the TPZCompEl structure to enable material memory feature. It should be instan...
const TPZBlock< STATE > & Block() const
Access the block structure of the solution vector.
Contains declaration of the TPZAutoPointer class which has Increment and Decrement actions are mutexe...
TPZFMatrix< STATE > & Val1()
void SetBiCGStab(const int64_t numiterations, const TPZMatrixSolver< TVar > &pre, const REAL tol, const int64_t FromCurrent)
virtual ~TPZElastoPlasticAnalysis()
Default destructor.
virtual void LoadSolution()
Load the solution into the computable grid.
static TPZCompEl * CreateLinearElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Contains TPZShapePoint class which implements the shape function associated with a point...
void UpdatePrecond()
Updates block diagonal preconditioning matrix.
#define LOGPZ_ERROR(A, B)
Define log for errors (cout)
Contains declaration of TPZCompMesh class which is a repository for computational elements...
virtual void PostProcess(int resolution)
Draw solution over mesh for all dimensions.
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
static TPZCompEl * CreateQuadElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
virtual void Assemble(TPZMatrix< STATE > &mat, TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) override
Assemble the global system of equations into the matrix which has already been created.
virtual TPZConnect & Connect(int i) const
Returns a pointer to the ith node.
Contains the TPZGeoCube class which implements the geometry of hexahedra element. ...
static TPZCompEl * CreateTriangElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
void GetActiveEquations(TPZVec< int64_t > &activeEquations)
return the vector of active equation indices
Contains the TPZPyramid class which defines the topology of a pyramid element.
static TPZCompEl * CreatePointElWithMem(TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index)
Contains the TPZGeoPoint class which implements the geometry of a point element or 0-D element...
std::map< int,TPZMaterial *> & MaterialVec()
Returns a reference to the material pointers vector.
Contains the declaration of TPZElastoPlasticAnalysis class.
Contains TPZShapePrism class which implements the shape functions of a prism element.
virtual TPZSolver * Clone() const =0
Clones the current object returning a pointer of type TPZSolver.
virtual int NConnects() const =0
Returns the number of nodes of the element.
Implements Full Structural Matrices. Structural Matrix.
virtual REAL LineSearch(const TPZFMatrix< REAL > &Wn, const TPZFMatrix< REAL > &DeltaW, TPZFMatrix< REAL > &NextW, REAL RhsNormPrev, REAL &RhsNormResult, int niter, bool &converging)
void SetBiCGStab(int numiter, REAL tol)
Defines block diagonal matrices. Matrix.
Contains the TPZRefTriangle class which implements the uniform refinement of a geometric triangular e...
TPZFlopCounter pow(const TPZFlopCounter &orig, const TPZFlopCounter &xp)
Returns the power and increments the counter of the power.
Contains the TPZRefTetrahedra class which implements the uniform refinement of a geometric tetrahedra...
virtual void AssembleResidual()
Assemble the load vector.
void SetPrecond(TPZMatrixSolver< REAL > &precond)
Implements computational mesh. Computational Mesh.
int Size(const int block_diagonal) const
Returns block dimension.
TPZAdmChunkVector< TPZCompEl * > & ElementVec()
Returns a reference to the element pointers vector.
Contains TPZSolver class which defines a abstract class of solvers which will be used by matrix class...
TPZAutoPointer< TPZMatrix< TVar > > Matrix() const
Returns a pointer to TPZMatrix<>
This class implements a two dimensional elastic material in plane stress or strain.
Contains declaration of TPZInterpolatedElement class which implements computational element of the in...
Contains the TPZRefLinear class which implements the uniform refinement of a geometric linear element...
Contains TPZStepSolver class which defines step solvers class.
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...
Derived class from TPZAnalysis implements non linear analysis (Newton's method). Analysis.
Implements Sparse Structural Matrices. Structural Matrix.
virtual void Print(std::ostream &out) const
Contains TPZShapePiram class which implements the shape functions of a pyramid element.
Contains the TPZGeoPyramid class which implements the geometry of pyramid element.
std::multimap< int, int > fMaterialIds
Materials with no penetration boundary conditions.
Contains the TPZGeoPrism class which implements the geometry of a prism element.
void SetDirect(const DecomposeType decomp)
Contains the TPZCube class which defines the topology of the hexahedron element.
Contains the TPZLine class which defines the topology of a line element.
TPZFMatrix< STATE > fRhs
Load vector.
static void SetAllCreateFunctionsWithMem(TPZCompMesh *cmesh)
Contains the implementation of the CheckConvergence function.
void AssembleBlockDiagonal(TPZBlockDiagonal< STATE > &block)
Contains the TPZPrism class which defines the topology of a Prism.
Defines the interface of a computational element. Computational Element.
bool IsMultiPhysicsConfiguration()
Structure defining a multiphysics configuration.
Contains TPZShapeQuad class which implements the shape functions of a quadrilateral element...
Contains the TPZRefCube class which implements the uniform refinement of a geometric hexahedral eleme...
Contains the TPZRefPoint class which implements the uniform refinement of a geometric point element...
TPZFMatrix< STATE > & Solution()
Access the solution vector.
Contains TPZShapeTriang class which implements the shape functions of a triangular element...
Non abstract class which implements full matrices with preallocated storage with (N+1) entries...