17 #define LADEKIMPARENT TPZPlasticStep<TPZYCLadeKim, TPZLadeKimThermoForceA, TPZLadeNelsonElasticResponse> 50 fMaterialTensionSign = -1;
51 fInterfaceTensionSign = 1;
62 LADEKIMPARENT::operator=(source);
69 virtual const char *
Name()
const override 85 void SetUp(REAL poisson, REAL M, REAL lambda,
86 REAL a, REAL
m, REAL neta1,
92 int interfaceCompressionSign = - fInterfaceTensionSign;
93 faPa = interfaceCompressionSign * a *
fabs(pa);
94 REAL ksi1 = 0.00155 *
pow(m, -1.27);
95 LADEKIMPARENT::fYC.SetUp(ksi1, ksi2, h, alpha, mu, neta1, m,
fabs(pa));
96 LADEKIMPARENT::fER.SetUp(lambda, M, poisson,
fabs(pa));
97 LADEKIMPARENT::fTFA.SetUp(ksi1, p, h, C,
fabs(pa));
108 LADEKIMPARENT::SetUp(epsTotal);
111 virtual void Print(std::ostream & out)
const override 113 out <<
"\n" << this->
Name();
114 out <<
"\n Base Class Data:\n";
115 LADEKIMPARENT::Print(out);
116 out <<
"\nTPZLadeKim internal members:";
117 out <<
"\n a*Pa = " <<
faPa;
126 LADEKIMPARENT::Write(buf, withclassid);
133 buf.
Write(&fYC.fKsi1, 1);
134 buf.
Write(&fYC.fh, 1);
135 buf.
Write(&fYC.m_hardening, 1);
136 buf.
Write(&fYC.fKsi2, 1);
137 buf.
Write(&fYC.fMu, 1);
143 LADEKIMPARENT::Read(buf, context);
150 buf.
Read(&fYC.fKsi1, 1);
151 buf.
Read(&fYC.fh, 1);
152 buf.
Read(&fYC.m_hardening, 1);
153 buf.
Read(&fYC.fKsi2, 1);
154 buf.
Read(&fYC.fMu, 1);
166 LADEKIMPARENT::SetState(temp);
194 cohesionlessSigma.
Add(I,
faPa);
195 LADEKIMPARENT::ApplyLoad(cohesionlessSigma, epsTotal);
208 LADEKIMPARENT::ApplyStrain(translatedEpsTotal);
219 LADEKIMPARENT::ApplyStrainComputeDep(translatedEpsTotal, sigma, Dep);
230 bool require_tangent_Q =
true;
232 require_tangent_Q =
false;
237 if (!(tangent->Rows() == 6 && tangent->Cols() == 6)) {
238 std::cerr <<
"Unable to compute the tangent operator. Required tangent array dimensions are 6x6." << std::endl;
243 if (require_tangent_Q) {
250 LADEKIMPARENT::ApplyStrainComputeSigma(translatedEpsTotal, sigma);
268 LADEKIMPARENT::Phi(translatedEpsTotal, phi);
306 REAL neta1 = 159800.;
315 material.fResTol = 1.e-8;
317 material.
SetUp(poisson, M, lambda,
329 REAL M = 361800.*0.0068948;
333 REAL neta1 = 159800.;
340 REAL pa = 14.7*0.0068948;
342 material.fResTol = 1.e-8;
344 material.
SetUp(poisson, M, lambda,
371 material.fResTol = 1.e-8;
373 material.
SetUp(poisson, M, lambda,
399 material.fResTol = 1.e-8;
401 material.
SetUp(poisson, M, lambda,
427 material.fResTol = 1.e-8;
429 material.
SetUp(poisson, M, lambda,
455 material.fResTol = 1.e-8;
457 material.
SetUp(poisson, M, lambda,
483 material.fResTol = 1.e-8;
485 material.
SetUp(poisson, M, lambda,
519 gRefResidual.
Resize(nVars);
537 input(6,0) = 0.00019;
540 input(7,0) = 0.000023;
550 Range =
input * (1./19.);
588 const int nVars = 7+nyield+6;
604 Np1_FAD.
m_eps_p[i].diff(i,nVars);
608 for(j=0;j<nyield;j++)
611 delGamma_FAD[j].diff(i++,nVars);
616 Np1_FAD.
m_eps_t[j].diff(i++,nVars);
621 PlasticResidual<REAL, TFAD>
622 (fN, Np1_FAD, delGamma_FAD, epsRes_FAD, normEpsPErr);
624 tangent.
Redim(nVars-6,nVars);
626 for(i=0; i<nVars-6; i++)
628 tangent(i,j) = epsRes_FAD[i].dx(j);
642 const int nVars = 7+nyield+6;
661 PlasticResidual<REAL>(fN, Np1, delGamma, epsRes, normEpsPErr);
663 res.
Redim(nVars-6,1);
665 for(i=0; i<nVars-6; i++)
666 res(i,0) = epsRes[i];
682 #endif //TPZLADEKIM_H
virtual void ApplyLoad(const TPZTensor< REAL > &sigma, TPZTensor< REAL > &epsTotal) override
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
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...
virtual TPZPlasticState< REAL > GetState() const override
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
static TPZManVector< REAL, 6+6+1+TPZYCLadeKim::NYield > gRefResidual
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.
int ClassId() const override
static void DenseSacrRiverSand(TPZLadeKim &material)
TPZTensor< T > m_eps_t
Tensors representing the total and plastic strain states.
virtual void ApplyStrain(const TPZTensor< REAL > &epsTotal) override
T m_hardening
Plastic volumetric hardeing variable.
void Residual(TPZFMatrix< REAL > &res, int icase)
std::underlying_type< Enumeration >::type as_integer(const Enumeration value)
TPZLadeKim(const TPZLadeKim &source)
clarg::argBool h("-h", "help message", false)
clarg::argString input("-if", "input file", "cube1.txt")
static void PlainConcreteMPa(TPZLadeKim &material)
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object.
void ComputeTangent(TPZFMatrix< REAL > &tangent, TPZVec< REAL > &, int icase)
void SetUp(REAL poisson, REAL M, REAL lambda, REAL a, REAL m, REAL neta1, REAL ksi2, REAL mu, REAL C, REAL p, REAL h, REAL alpha, REAL pa)
virtual const char * Name() const override
virtual int GetNYield() const
TPZLadeKim & operator=(const TPZLadeKim &source)
virtual void Write(const bool val)
virtual void Phi(const TPZTensor< REAL > &epsTotal, TPZVec< REAL > &phi) const override
#define DebugStop()
Returns a message to user put a breakpoint in.
TPZPlasticState< REAL > fInitialEps
void Read(TPZStream &buf, void *context) override
static void LooseSantaMonicaBeachSand(TPZLadeKim &material)
void Read(TPZStream &buf, void *context) override
read objects from the stream
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
static void FineSilicaSand(TPZLadeKim &material)
virtual void ApplyStrainComputeSigma(const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > *tangent=NULL) override
static void FineSilicaSandPaperIII(TPZLadeKim &material)
virtual void Print(std::ostream &out) const override
TPZFlopCounter pow(const TPZFlopCounter &orig, const TPZFlopCounter &xp)
Returns the power and increments the counter of the power.
virtual void SetUp(const TPZTensor< REAL > &epsTotal) override
virtual void ApplyStrainComputeDep(const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > &Dep) override
Defines the interface for saving and reading data. Persistency.
static void LooseSacrRiverSand(TPZLadeKim &material)
void LoadState(TPZFMatrix< REAL > &state)
clarg::argString m("-m", "input matrix file name (text format)", "matrix.txt")
void Write(TPZStream &buf, int withclassid) const override
virtual void SetState(const TPZPlasticState< REAL > &state) override
Non abstract class which implements full matrices with preallocated storage with (N+1) entries...
static void PlainConcrete(TPZLadeKim &material)
virtual void Read(bool &val)