5 #ifndef TPZYCDRUCKERPRAGER_H 6 #define TPZYCDRUCKERPRAGER_H 15 #ifdef LOG4CXX // LOG4CXX may be defined alone or with LOG4CXX_PLASTICITY. The latter shall not be used alone. 16 #include <log4cxx/logger.h> 17 #include <log4cxx/basicconfigurator.h> 18 #include <log4cxx/propertyconfigurator.h> 21 #ifdef LOG4CXX_PLASTICITY 22 static LoggerPtr loggerDP(Logger::getLogger(
"plasticity.DruckerPrager"));
44 return "TPZYCDruckerPrager";
47 void Print(std::ostream & out)
const override 60 void SetUp(
const REAL & phi,
const int innerMCFit)
134 virtual void Write(
TPZStream &buf,
int withclassid)
const override;
137 virtual int ClassId()
const override;
141 sigmaTensor.
XX() = sigma[0];
142 sigmaTensor.
YY() = sigma[1];
143 sigmaTensor.
ZZ() = sigma[2];
144 Compute(sigmaTensor, kprev, yield, 0);
171 for(i=0; i<6; i++) gRefTension.
fData[i] = state(i,0);
184 for(
int i=0; i<6; i++)
186 tangent(0,i) = Ndir[0].fData[i];
193 gRefTension.
dJ2(dj2);
195 for(
int i=0; i<6; i++)
197 tangent(0,i) = dj2.
fData[i];
219 this->
Compute(gRefTension,yield,phi,0);
226 REAL j2 = gRefTension.
J2();
252 #ifdef LOG4CXX_PLASTICITY 254 std::stringstream sout;
255 sout <<
"\nJ2 = " << J2;
256 sout <<
"\nI1 = " << I1;
257 sout <<
"\nPHI = " << res[0];
258 sout <<
" \nA = " << A;
285 dj2*=T(0.5)/
sqrt(J2);
286 T EtaOver3 = T(
fEta/3.);
287 dj2.
XX() += EtaOver3;
288 dj2.
YY() += EtaOver3;
289 dj2.
ZZ() += EtaOver3;
309 #endif//TPZYDruckerPrager
void SetYieldStatusMode(const TPZTensor< REAL > &sigma, const REAL &A)
Checks if the proposed yield state leads to post-peak material behaviour. If so, the material is forc...
Contains declaration of the TPZSavable class which defines the interface to save and restore objects ...
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.
TPZManVector< T, 6 > fData
TPZTensor< REAL > gRefTension
void N(const TPZTensor< T > &sigma, const T &A, TPZVec< TPZTensor< T > > &Ndir, int checkForcedYield=0) const
Derivada da funcao de plastificacao.
void ComputeTangent(TPZFMatrix< REAL > &tangent, TPZVec< REAL > &coefs, int icase)
std::underlying_type< Enumeration >::type as_integer(const Enumeration value)
clarg::argBool h("-h", "help message", false)
This class implements a simple vector storage scheme for a templated class T. Utility.
const char * Name() const
int NumCases()
Number of types of residuals.
virtual int ClassId() const override
Define the class id associated with the class.
void LoadState(TPZFMatrix< REAL > &state)
LoadState will keep a given state as static variable of the class.
void SetForceYield(const int forceYield)
#define LOGPZ_INFO(A, B)
Define log for informations.
void SetUp(const REAL &phi, const int innerMCFit)
Setup of material parameters.
Contains TPZMatrixclass which implements full matrix (using column major representation).
void dJ2(TPZTensor< T > &Tangent) const
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sqrt
virtual void Read(TPZStream &buf, void *context) override
read objects from the stream
void Print(std::ostream &out) const override
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
void Residual(TPZFMatrix< REAL > &res, int icase)
virtual void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
void H(const TPZTensor< T > &sigma, const T &A, TPZVec< T > &h, int checkForcedYield=0) const
Derivada da funcao de plastificacao com respeito a forca termodinamica.
virtual int GetNYield() const override
TPZYCDruckerPrager(const TPZYCDruckerPrager &source)
Defines the interface for saving and reading data. Persistency.
void Compute(const TPZTensor< T > &sigma, const T &A, TPZVec< T > &res, int checkForcedYield=0) const
Calculo do criterio de plastificacao.
void AlphaMultiplier(const T &A, T &multiplier) const
void YieldFunction(const TPZVec< STATE > &sigma, STATE kprev, TPZVec< STATE > &yield) const override
Implementa a plastificacao do criterio de Von Mises.
TPZFlopCounter cos(const TPZFlopCounter &orig)
Returns the cosine in radians and increments the counter of the Cosine.