3 #ifndef TPZYCModifiedMohrCoulomb_H 4 #define TPZYCModifiedMohrCoulomb_H 13 #ifdef LOG4CXX_PLASTICITY 23 virtual int ClassId()
const override;
28 return "TPZYCModifiedMohrCoulomb";
31 void Print(std::ostream & out)
const override 127 sigmaTensor.
XX() = sigma[0];
128 sigmaTensor.
YY() = sigma[1];
129 sigmaTensor.
ZZ() = sigma[2];
130 Compute(sigmaTensor, kprev, yield, 0);
157 sigma.
Eigenvalue(eigenval, dSigma1, dSigma2, dSigma3);
158 T sigma1,sigma2,sigma3;
159 sigma1 = eigenval.
XX();
160 sigma2 = eigenval.
YY();
161 sigma3 = eigenval.
ZZ();
165 res0=(sigma1 - sigma3) + (sigma1 + sigma3)*
sin(
fPhi) - T(2.)*A*
cos(
fPhi);
166 res1=(sigma2 - sigma3) + (sigma2 + sigma3)*
sin(
fPhi) - T(2.)*A*
cos(
fPhi);
167 res2=(sigma1 - sigma2) + (sigma1 + sigma2)*
sin(
fPhi) - T(2.)*A*
cos(
fPhi);
176 res[0]=(sigma1 - sigma3) + (sigma1 + sigma3)*
sin(
fPhi) - T(2.)*A*
cos(
fPhi);
188 res[0] =
sqrt( J2 ) + p * T(Eta) - A * T(Ksi);
201 res[0] =
sqrt( J2 ) + p * T(Eta) - A * T(Ksi);
221 res[0] =
sqrt( J2 ) + p * T(Eta) - A * T(Ksi);
233 res[0] =
sqrt( J2 ) + p * T(Eta) - A * T(Ksi);
242 feclearexcept(FE_ALL_EXCEPT);
243 int Res = fetestexcept(FE_ALL_EXCEPT);
246 std::cout <<
" \n " << __PRETTY_FUNCTION__ <<
"\n NAN DETECTED \n";
250 Res = fetestexcept(FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW);
253 std::cout <<
" \n " << __PRETTY_FUNCTION__ <<
"\n NAN DETECTED \n";
264 sigma.
Eigenvalue(eigenval, dSigma1, dSigma2, dSigma3);
328 s *= T(0.5) /
sqrt(J2);
330 T EtaOver3 = Eta/T(3.);
343 s *= T(0.5) /
sqrt(J2);
345 T EtaOver3 = Eta/T(3.);
void N(const TPZTensor< T > &sigma, const T &A, TPZVec< TPZTensor< T > > &Ndir, int checkForcedYield=0) const
virtual int ClassId() const override
Define the class id associated with the class.
const char * Name() const
void Add(const TPZTensor< T1 > &tensor, const T2 &constant)
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.
void YieldFunction(const TPZVec< STATE > &sigma, STATE kprev, TPZVec< STATE > &yield) const override
std::underlying_type< Enumeration >::type as_integer(const Enumeration value)
void SetUp(const REAL &phi)
void H(const TPZTensor< T > &sigma, const T &A, TPZVec< T > &h, int checkForcedYield=0) const
clarg::argBool h("-h", "help message", false)
This class implements a simple vector storage scheme for a templated class T. Utility.
void Print(std::ostream &out) const override
void AlphaMultiplier(const T &A, T &multiplier) const
virtual void Write(const bool val)
#define DebugStop()
Returns a message to user put a breakpoint in.
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
void SetForceYield(const int forceYield)
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sqrt
void Compute(const TPZTensor< T > &sigma, const T &A, TPZVec< T > &result, int checkForcedYield=0) const
void SetYieldStatusMode(const TPZTensor< REAL > &sigma, const REAL &A)
void Eigenvalue(TPZTensor< T > &eigenval, TPZTensor< T > &dSigma1, TPZTensor< T > &dSigma2, TPZTensor< T > &dSigma3) const
virtual int GetNYield() const override
void Read(TPZStream &buf, void *context) override
read objects from the stream
Defines the interface for saving and reading data. Persistency.
TPZFlopCounter cos(const TPZFlopCounter &orig)
Returns the cosine in radians and increments the counter of the Cosine.
void S(TPZTensor< T > &s) const
virtual void Read(bool &val)