NeoPZ
TPZLadeKim.h
Go to the documentation of this file.
1 /* Generated by Together */// $Id: TPZLadeKim.h,v 1.25 2010-06-11 22:12:14 diogo Exp $
2 #ifndef TPZLADEKIM_H
3 #define TPZLADEKIM_H
4 
5 #include "pzlog.h"
6 #include "TPZPlasticStep.h"
7 #include "TPZYCLadeKim.h"
10 #include "pzvec_extras.h"
11 #include "TPZPlasticStepID.h"
12 
13 //#ifdef LOG4CXX_PLASTICITY
14 // LoggerPtr loggerLadeKim(Logger::getLogger("plasticity.LadeKim"));
15 //#endif
16 
17 #define LADEKIMPARENT TPZPlasticStep<TPZYCLadeKim, TPZLadeKimThermoForceA, TPZLadeNelsonElasticResponse>
18 
39 class TPZLadeKim : public LADEKIMPARENT {
40 
41 public:
42 
44 
45 
46 public:
47 
49  {
50  fMaterialTensionSign = -1; // internally in this material tension is negative
51  fInterfaceTensionSign = 1; // by default
52  }
53 
54  TPZLadeKim(const TPZLadeKim & source):LADEKIMPARENT(source)
55  {
56  faPa = source.faPa;
57  fInitialEps = source.fInitialEps;
58  }
59 
60  TPZLadeKim & operator=(const TPZLadeKim & source)
61  {
62  LADEKIMPARENT::operator=(source);
63  faPa = source.faPa;
64  fInitialEps = source.fInitialEps;
65 
66  return *this;
67  }
68 
69  virtual const char * Name() const override
70  {
71  return "TPZLadeKim";
72  }
73 
85  void SetUp(REAL poisson, REAL M, REAL lambda,
86  REAL a, REAL m, REAL neta1,
87  REAL ksi2, REAL mu,
88  REAL C, REAL p,
89  REAL h, REAL alpha,
90  REAL pa)
91  {
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));
98  TPZTensor<REAL> nullSigma, epsA;
99  // The function below should apply the plastic loop to the unstressed state
100  // nullSigma, which in the scope of this material means application of
101  // an isotropic cohesion of 'a'. The internal plastic variable value and
102  // plastic work should automatically be evaluated to meaningful values.
103  // Note that the evaluated plastic work MUST equal that one computed above. (alphaN)
104  this->ApplyLoad(nullSigma, epsA /* initial total strain */);
105  fInitialEps = LADEKIMPARENT::GetState();
106  }
107  virtual void SetUp(const TPZTensor<REAL> & epsTotal) override {
108  LADEKIMPARENT::SetUp(epsTotal);
109  }
110 
111  virtual void Print(std::ostream & out) const override
112  {
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;
118  out << "\n InitialEps = " << fInitialEps;
119 
120  }
121 
122  public:
123 int ClassId() const override;
124 
125  void Write(TPZStream &buf, int withclassid) const override{
126  LADEKIMPARENT::Write(buf, withclassid);
127 
128  buf.Write(&faPa, 1);
129  buf.Write(&fInitialEps.m_eps_t[0], 6);
130  buf.Write(&fInitialEps.m_eps_p[0], 6);
131  buf.Write(&fInitialEps.m_hardening, 1);
132 
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);
138 
139  fInitialEps.Write(buf, withclassid);
140  }
141 
142  void Read(TPZStream& buf, void* context) override {
143  LADEKIMPARENT::Read(buf, context);
144 
145  buf.Read(&faPa, 1);
146  buf.Read(&fInitialEps.m_eps_t[0], 6);
147  buf.Read(&fInitialEps.m_eps_p[0], 6);
148  buf.Read(&fInitialEps.m_hardening, 1);
149 
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);
155 
156  fInitialEps.Read(buf, context);
157  }
158 
162  virtual void SetState(const TPZPlasticState<REAL> &state) override
163  {
164  TPZPlasticState<REAL> temp(state);
165  temp += fInitialEps;
166  LADEKIMPARENT::SetState(temp);
167  }
168 
172  virtual TPZPlasticState<REAL> GetState () const override
173  {
174  TPZPlasticState<REAL> temp = LADEKIMPARENT::GetState();
175  temp -= fInitialEps;
176  return temp;
177  }
178 
187  virtual void ApplyLoad(const TPZTensor<REAL> & sigma, TPZTensor<REAL> &epsTotal) override
188  {
189  // Deformation translation from the cohesive material to the equivalent cohesionless
190  epsTotal.Add(fInitialEps.m_eps_t, +1.);
191  TPZTensor<REAL> I, cohesionlessSigma(sigma);
192  I.Identity();
193  // Stress translation from the cohesive to the equivalent cohesionless material
194  cohesionlessSigma.Add(I, faPa);
195  LADEKIMPARENT::ApplyLoad(cohesionlessSigma, epsTotal);
196  // Deformation translation from the equivalent cohesionless to the cohesive material
197  epsTotal.Add(fInitialEps.m_eps_t, -1.);
198  }
199 
203  virtual void ApplyStrain(const TPZTensor<REAL> &epsTotal) override
204  {
205  TPZTensor<REAL> translatedEpsTotal(epsTotal);
206  // Deformation translation from the cohesive to the equivalent cohesionless material
207  translatedEpsTotal.Add(fInitialEps.m_eps_t, 1.);
208  LADEKIMPARENT::ApplyStrain(translatedEpsTotal);
209  }
210 
214  virtual void ApplyStrainComputeDep(const TPZTensor<REAL> &epsTotal, TPZTensor<REAL> &sigma, TPZFMatrix<REAL> &Dep) override
215  {
216  TPZTensor<REAL> translatedEpsTotal(epsTotal);
217  // Deformation translation from the cohesive to the equivalent cohesionless material
218  translatedEpsTotal.Add(fInitialEps.m_eps_t, 1.);
219  LADEKIMPARENT::ApplyStrainComputeDep(translatedEpsTotal, sigma, Dep);
220 
221  TPZTensor<REAL> I;
222  I.Identity();
223  // Stress translation from the equivalent cohesionless to the cohesive material
224  sigma.Add(I, - faPa);
225  }
226 
227  virtual void ApplyStrainComputeSigma(const TPZTensor<REAL> &epsTotal, TPZTensor<REAL> &sigma, TPZFMatrix<REAL> * tangent = NULL) override
228  {
229 
230  bool require_tangent_Q = true;
231  if (!tangent) {
232  require_tangent_Q = false;
233  }
234 
235 #ifdef PZDEBUG
236  // Check for required dimensions of tangent
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;
239  DebugStop();
240  }
241 #endif
242 
243  if (require_tangent_Q) {
244  DebugStop(); // implemented this functionality.
245  }
246 
247  TPZTensor<REAL> translatedEpsTotal(epsTotal);
248  // Deformation translation from the cohesive to the equivalent cohesionless material
249  translatedEpsTotal.Add(fInitialEps.m_eps_t, 1.);
250  LADEKIMPARENT::ApplyStrainComputeSigma(translatedEpsTotal, sigma);
251 
252  TPZTensor<REAL> I;
253  I.Identity();
254  // Stress translation from the equivalent cohesionless to the cohesive material
255  sigma.Add(I, - faPa);
256  }
257 
263  virtual void Phi(const TPZTensor<REAL> &epsTotal, TPZVec<REAL> &phi) const override
264  {
265  TPZTensor<REAL> translatedEpsTotal(epsTotal);
266  // Deformation translation from the cohesive to the equivalent cohesionless material
267  translatedEpsTotal.Add(fInitialEps.m_eps_t, 1.);
268  LADEKIMPARENT::Phi(translatedEpsTotal, phi);
269  }
270 
271 private:
272 
273 
278  REAL faPa;
279 
290 
291 public:
292 
293 
294 // The following static members load test data from article
295 // Lade, Paul V. Kim, Moon K. Single Hardening Constitutove Model for Soil, Rock and Concrete.
296 // Int. Journal of Solid Structures, vol.32, No14. pp 1963-1978. Elsevier Science, 1994
297 
298  // Plain Concrete
299  static void PlainConcrete(TPZLadeKim & material)
300  {
301  REAL poisson = 0.18;
302  REAL M = 361800.;
303  REAL lambda = 0.;
304  REAL a = 28.5;
305  REAL m = 1.113;
306  REAL neta1 = 159800.;
307  REAL ksi2 = -2.92;
308  REAL mu = 5.06;
309  REAL C = 0.712E-12;
310  REAL p = 3.8;
311  REAL h = 1.990;
312  REAL alpha = 0.75;
313  REAL pa = 14.7;
314 
315  material.fResTol = 1.e-8;
316 
317  material.SetUp(poisson, M, lambda,
318  a, m, neta1,
319  ksi2, mu,
320  C, p,
321  h, alpha,
322  pa);
323 
324  }
325 
326  static void PlainConcreteMPa(TPZLadeKim & material)
327  {
328  REAL poisson = 0.18;
329  REAL M = 361800.*0.0068948;
330  REAL lambda = 0.;
331  REAL a = 28.5;//dimensionless
332  REAL m = 1.113;//dimensionless
333  REAL neta1 = 159800.;//dimensionless
334  REAL ksi2 = -2.92;//dimensionless
335  REAL mu = 5.06;//dimensionless
336  REAL C = 0.712E-12;
337  REAL p = 3.8;
338  REAL h = 1.990;
339  REAL alpha = 0.75;
340  REAL pa = 14.7*0.0068948;
341 
342  material.fResTol = 1.e-8;
343 
344  material.SetUp(poisson, M, lambda,
345  a, m, neta1,
346  ksi2, mu,
347  C, p,
348  h, alpha,
349  pa);
350 
351  }
352 
353 
354  // Loose Sacramento River Sand
355  static void LooseSacrRiverSand(TPZLadeKim & material)
356  {
357  REAL poisson = 0.2;
358  REAL M = 500.;
359  REAL lambda = 0.28;
360  REAL a = 0.;
361  REAL m = 0.093;
362  REAL neta1 = 28.;
363  REAL ksi2 = -3.72;
364  REAL mu = 2.36;
365  REAL C = 0.127E-3;
366  REAL p = 1.65;
367  REAL h = 0.534;
368  REAL alpha = 0.794;
369  REAL pa = 14.7;
370 
371  material.fResTol = 1.e-8;
372 
373  material.SetUp(poisson, M, lambda,
374  a, m, neta1,
375  ksi2, mu,
376  C, p,
377  h, alpha,
378  pa);
379 
380  }
381 
382  // Dense Sacramento River Sand
383  static void DenseSacrRiverSand(TPZLadeKim & material)
384  {
385  REAL poisson = 0.2;
386  REAL M = 900.;
387  REAL lambda = 0.28;
388  REAL a = 0.;
389  REAL m = 0.23;
390  REAL neta1 = 80.;
391  REAL ksi2 = -3.09;
392  REAL mu = 2.00;
393  REAL C = 0.396E-4;
394  REAL p = 1.82;
395  REAL h = 0.765;
396  REAL alpha = 0.229;
397  REAL pa = 14.7;
398 
399  material.fResTol = 1.e-8;
400 
401  material.SetUp(poisson, M, lambda,
402  a, m, neta1,
403  ksi2, mu,
404  C, p,
405  h, alpha,
406  pa);
407 
408  }
409 
410  // Fine Silica Sand
411  static void FineSilicaSand(TPZLadeKim & material)
412  {
413  REAL poisson = 0.27;
414  REAL M = 440.;
415  REAL lambda = 0.22;
416  REAL a = 0.;
417  REAL m = 0.1;
418  REAL neta1 = 24.7;
419  REAL ksi2 = -3.69;
420  REAL mu = 2.26;
421  REAL C = 0.324E-3;
422  REAL p = 1.25;
423  REAL h = 0.355;
424  REAL alpha = 0.515;
425  REAL pa = 14.7;
426 
427  material.fResTol = 1.e-8;
428 
429  material.SetUp(poisson, M, lambda,
430  a, m, neta1,
431  ksi2, mu,
432  C, p,
433  h, alpha,
434  pa);
435 
436  }
437 
438  // Fine Silica Sand
439  static void FineSilicaSandPaperIII(TPZLadeKim & material)
440  {
441  REAL poisson = 0.2;
442  REAL M = 440.;
443  REAL lambda = 0.22;
444  REAL a = 0.;
445  REAL m = 0.1;
446  REAL neta1 = 24.7;
447  REAL ksi2 = -3.69;
448  REAL mu = 2.26;
449  REAL C = 0.324E-3;
450  REAL p = 1.25;
451  REAL h = 0.355;
452  REAL alpha = 0.515;
453  REAL pa = 14.7;
454 
455  material.fResTol = 1.e-8;
456 
457  material.SetUp(poisson, M, lambda,
458  a, m, neta1,
459  ksi2, mu,
460  C, p,
461  h, alpha,
462  pa);
463 
464  }
465 
466  // Loose Santa Monica Beach Sand
467  static void LooseSantaMonicaBeachSand(TPZLadeKim & material)
468  {
469  REAL poisson = 0.26;
470  REAL M = 600.;
471  REAL lambda = 0.27;
472  REAL a = 0.;
473  REAL m = 0.107;
474  REAL neta1 = 32.6;
475  REAL ksi2 = -3.65;
476  REAL mu = 2.10;
477  REAL C = 0.000204;
478  REAL p = 1.51;
479  REAL h = 0.60;
480  REAL alpha = 0.79;
481  REAL pa = 14.7;
482 
483  material.fResTol = 1.e-8;
484 
485  material.SetUp(poisson, M, lambda,
486  a, m, neta1,
487  ksi2, mu,
488  C, p,
489  h, alpha,
490  pa);
491 
492  }
493 
494 public:
495 
496 
498 
502  inline int NumCases();
503 
508  inline void LoadState(TPZFMatrix<REAL> &state);
509 
510  inline void ComputeTangent(TPZFMatrix<REAL> &tangent, TPZVec<REAL> &, int icase);
511 
512  inline void Residual(TPZFMatrix<REAL> &res,int icase);
513 
514 
515 
516  static void CheckConv()
517  {
518  const int nVars = 6+6+1+TPZYCLadeKim::NYield;
519  gRefResidual.Resize(nVars);
520 
521  // Creating the LadeKim obejct
522  TPZLadeKim LadeKim;
523  // setup
524 
525  TPZLadeKim::PlainConcrete(LadeKim);
526 
527  TPZFNMatrix<nVars> input(nVars,1), Range(nVars,1);
528  //plastic strains
529  input(_XX_,0) = 0.0017;
530  input(_YY_,0) = 0.0013;
531  input(_ZZ_,0) = 0.0011;
532  input(_XY_,0) = 0.0007 ;
533  input(_XZ_,0) = 0.0005 ;
534  input(_ZZ_,0) = 0.0003 ;
535 
536  //alpha
537  input(6,0) = 0.00019;
538 
539  //delgamma
540  input(7,0) = 0.000023;
541 
542  //total strains
543  input(8+_XX_,0) = 0.029;
544  input(8+_YY_,0) = 0.031;
545  input(8+_ZZ_,0) = 0.037;
546  input(8+_XY_,0) = 0.0041;
547  input(8+_XZ_,0) = 0.0047;
548  input(8+_YZ_,0) = 0.0049;
549 
550  Range = input * (1./19.);
551  TPZVec< REAL > Coefs(1,1.);
552  CheckConvergence(LadeKim, input, Range, Coefs);
553 
554  }
555 
556  virtual int GetNYield() const {
557  return as_integer(NYield);
558  }
559 };
560 
562 
563 
564 
566 {
567  return 1;
568 }
569 
571 {
572  int i;
573  const int nVars = 6+6+1+TPZYCLadeKim::NYield;
574  for(i=0; i<nVars; i++) gRefResidual[i] = state(i,0);
575 
576 //#ifdef LOG4CXX_PLASTICITY
577 // {
578 // std::stringstream sout;
579 // sout << "Tension " << state;
580 // LOGPZ_DEBUG(loggerLadeKim,sout.str().c_str());
581 // }
582 //#endif
583 }
584 
585 inline void TPZLadeKim::ComputeTangent(TPZFMatrix<REAL> &tangent, TPZVec<REAL> &, int icase)
586 {
587  const int nyield = TPZYCLadeKim::NYield;
588  const int nVars = 7+nyield+6; // also includes epsTotal
589  typedef TFad<nVars,REAL> TFAD;
590  int i, j;
591 
592  TPZPlasticState<TFAD> Np1_FAD;
593  TPZManVector<TFAD, nVars-6> epsRes_FAD(nVars-6);
594  TPZManVector<TFAD, nyield > delGamma_FAD(nyield);
595  REAL normEpsPErr;
596 
597  switch(icase)
598  {
599  case 0:
600  {
601  for(i=0;i<6;i++)
602  {
603  Np1_FAD.m_eps_p[i] = gRefResidual[i];
604  Np1_FAD.m_eps_p[i].diff(i,nVars);
605  }
606  Np1_FAD.m_hardening = gRefResidual[i];
607  Np1_FAD.m_hardening.diff(i++,nVars);
608  for(j=0;j<nyield;j++)
609  {
610  delGamma_FAD[j] = TFAD(gRefResidual[i]);
611  delGamma_FAD[j].diff(i++,nVars);
612  }
613  for(j=0;j<6;j++)
614  {
615  Np1_FAD.m_eps_t[j] = gRefResidual[i];
616  Np1_FAD.m_eps_t[j].diff(i++,nVars);
617  }
618 
619 
620  //Compute Residual
621  PlasticResidual<REAL, TFAD>
622  (fN, Np1_FAD, delGamma_FAD, epsRes_FAD, normEpsPErr);
623 
624  tangent.Redim(nVars-6,nVars);
625 
626  for(i=0; i<nVars-6; i++)
627  for(j=0;j<nVars;j++)
628  tangent(i,j) = epsRes_FAD[i].dx(j);
629  }
630  break;
631  }
632 //#ifdef LOG4CXX_PLASTICITY
633 // std::stringstream sout;
634 // sout << "Matriz tangent " << tangent;
635 // LOGPZ_DEBUG(loggerLadeKim,sout.str().c_str());
636 //#endif
637 }
638 
640 {
641  const int nyield = TPZYCLadeKim::NYield;
642  const int nVars = 7+nyield+6; // also includes epsTotal
643  int i, j;
644 
646  TPZManVector<REAL, nVars-6> epsRes(nVars-6);
647  TPZManVector<REAL, nyield > delGamma(nyield);
648  REAL normEpsPErr;
649 
650  switch(icase)
651  {
652  case 0:
653  {
654  for(i=0;i<6;i++) Np1.m_eps_p[i] = gRefResidual[i];
655  Np1.m_hardening = gRefResidual[i++];
656  for(j=0;j<nyield;j++)delGamma[j] = gRefResidual[i++];
657  for(j=0;j<6;j++) Np1.m_eps_t[j] = gRefResidual[i++];
658 
659 
660  //Compute Residual
661  PlasticResidual<REAL>(fN, Np1, delGamma, epsRes, normEpsPErr);
662 
663  res.Redim(nVars-6,1);
664 
665  for(i=0; i<nVars-6; i++)
666  res(i,0) = epsRes[i];
667  }
668  break;
669  }
670 //#ifdef LOG4CXX_PLASTICITY
671 // std::stringstream sout;
672 // sout << "Residual vector " << res;
673 // LOGPZ_DEBUG(loggerLadeKim,sout.str().c_str());
674 //#endif
675 }
676 
677 
678 
679 
681 
682 #endif //TPZLADEKIM_H
#define _XZ_
Definition: TPZTensor.h:29
virtual void ApplyLoad(const TPZTensor< REAL > &sigma, TPZTensor< REAL > &epsTotal) override
Definition: TPZLadeKim.h:187
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...
Definition: checkconv.h:23
virtual TPZPlasticState< REAL > GetState() const override
Definition: TPZLadeKim.h:172
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
Definition: tfadfunc.h:140
static TPZManVector< REAL, 6+6+1+TPZYCLadeKim::NYield > gRefResidual
Definition: TPZLadeKim.h:504
void Add(const TPZTensor< T1 > &tensor, const T2 &constant)
Definition: TPZTensor.h:757
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
Definition: TPZLadeKim.cpp:4
static void DenseSacrRiverSand(TPZLadeKim &material)
Definition: TPZLadeKim.h:383
TPZTensor< T > m_eps_t
Tensors representing the total and plastic strain states.
virtual void ApplyStrain(const TPZTensor< REAL > &epsTotal) override
Definition: TPZLadeKim.h:203
T m_hardening
Plastic volumetric hardeing variable.
void Residual(TPZFMatrix< REAL > &res, int icase)
Definition: TPZLadeKim.h:639
std::underlying_type< Enumeration >::type as_integer(const Enumeration value)
Definition: pzreal.h:37
TPZLadeKim(const TPZLadeKim &source)
Definition: TPZLadeKim.h:54
clarg::argBool h("-h", "help message", false)
clarg::argString input("-if", "input file", "cube1.txt")
static void PlainConcreteMPa(TPZLadeKim &material)
Definition: TPZLadeKim.h:326
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object.
Definition: pzmanvector.h:426
void ComputeTangent(TPZFMatrix< REAL > &tangent, TPZVec< REAL > &, int icase)
Definition: TPZLadeKim.h:585
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)
Definition: TPZLadeKim.h:85
virtual const char * Name() const override
Definition: TPZLadeKim.h:69
virtual int GetNYield() const
Definition: TPZLadeKim.h:556
TPZLadeKim & operator=(const TPZLadeKim &source)
Definition: TPZLadeKim.h:60
virtual void Write(const bool val)
Definition: TPZStream.cpp:8
virtual void Phi(const TPZTensor< REAL > &epsTotal, TPZVec< REAL > &phi) const override
Definition: TPZLadeKim.h:263
#define DebugStop()
Returns a message to user put a breakpoint in.
Definition: pzerror.h:20
TPZPlasticState< REAL > fInitialEps
Definition: TPZLadeKim.h:289
#define _XX_
Definition: TPZTensor.h:27
Definition: tfad.h:64
#define _YZ_
Definition: TPZTensor.h:31
void Read(TPZStream &buf, void *context) override
Definition: TPZLadeKim.h:142
#define _XY_
Definition: TPZTensor.h:28
static void LooseSantaMonicaBeachSand(TPZLadeKim &material)
Definition: TPZLadeKim.h:467
string res
Definition: test.py:151
void Identity()
Definition: TPZTensor.h:705
void Read(TPZStream &buf, void *context) override
read objects from the stream
#define _YY_
Definition: TPZTensor.h:30
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
Definition: pzfmatrix.h:616
TPZTensor< T > m_eps_p
static void FineSilicaSand(TPZLadeKim &material)
Definition: TPZLadeKim.h:411
virtual void ApplyStrainComputeSigma(const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > *tangent=NULL) override
Definition: TPZLadeKim.h:227
static void FineSilicaSandPaperIII(TPZLadeKim &material)
Definition: TPZLadeKim.h:439
virtual void Print(std::ostream &out) const override
Definition: TPZLadeKim.h:111
#define _ZZ_
Definition: TPZTensor.h:32
int NumCases()
Definition: TPZLadeKim.h:565
TPZFlopCounter pow(const TPZFlopCounter &orig, const TPZFlopCounter &xp)
Returns the power and increments the counter of the power.
Definition: pzreal.h:487
static void CheckConv()
Definition: TPZLadeKim.h:516
virtual void SetUp(const TPZTensor< REAL > &epsTotal) override
Definition: TPZLadeKim.h:107
virtual void ApplyStrainComputeDep(const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > &Dep) override
Definition: TPZLadeKim.h:214
Defines the interface for saving and reading data. Persistency.
Definition: TPZStream.h:50
static void LooseSacrRiverSand(TPZLadeKim &material)
Definition: TPZLadeKim.h:355
void LoadState(TPZFMatrix< REAL > &state)
Definition: TPZLadeKim.h:570
Extra utilities for TPZVec. Implementations of the saxpy, sscal, sdot, intercept, max and min functio...
clarg::argString m("-m", "input matrix file name (text format)", "matrix.txt")
void Write(TPZStream &buf, int withclassid) const override
Definition: TPZLadeKim.h:125
virtual void SetState(const TPZPlasticState< REAL > &state) override
Definition: TPZLadeKim.h:162
#define LADEKIMPARENT
Definition: TPZLadeKim.h:17
Non abstract class which implements full matrices with preallocated storage with (N+1) entries...
Definition: pzfmatrix.h:716
static void PlainConcrete(TPZLadeKim &material)
Definition: TPZLadeKim.h:299
virtual void Read(bool &val)
Definition: TPZStream.cpp:91