NeoPZ
TPZSandlerExtended.h
Go to the documentation of this file.
1 //
2 // pzsandlerextPV.h
3 // PZ
4 //
5 // Created by Diogo Cecilio on 9/3/13.
6 //
7 //
8 
9 #ifndef __PZ__pzsandlerextPV__
10 #define __PZ__pzsandlerextPV__
11 
12 #include <iostream>
13 #include "TPZTensor.h"
14 #include "TPZElasticResponse.h"
15 #include "TPZPlasticState.h"
16 #include "TPZPlasticCriterion.h"
17 
19 public:
20 
21  enum {
22  NYield = 2
23  };
24 
26  TPZSandlerExtended(STATE A, STATE B, STATE C, STATE D, STATE K, STATE G, STATE W, STATE R, STATE Phi, STATE N, STATE Psi, STATE kappa_0);
31 
33  ftol = source.ftol;
34  fA = source.fA;
35  fB = source.fB;
36  fC = source.fC;
37  fD = source.fD;
38  fK = source.fK;
39  fG = source.fG;
40  fW = source.fW;
41  fR = source.fR;
42  fPhi = source.fPhi;
43  fN = source.fN;
44  fPsi = source.fPsi;
45  fE = source.fE;
46  fnu = source.fnu;
47  fkappa_0 = source.fkappa_0;
49 
50  return *this;
51  }
52 
54  virtual ~TPZSandlerExtended();
55 
56  STATE GetX(STATE k);
57 
59  void Firstk(STATE &epsp, STATE &k) const;
60 
62 
63  void SetElasticResponse(const TPZElasticResponse &ER);
64 
65  virtual TPZElasticResponse GetElasticResponse() const;
66 
67  STATE GetR();
68 
69  virtual void YieldFunction(const TPZVec<STATE> &sigma, STATE kprev, TPZVec<STATE> &yield) const override;
70 
71  virtual int GetNYield() const override {
72  return as_integer(NYield);
73  }
74 
75  virtual void Print(std::ostream &out) const override;
76 
77  template<class T>
78  T F(const T x) const;
79 
80  template<class T>
81  T DF(const T x) const;
82 
83  STATE GetF(STATE x) const;
84 
85  virtual int ClassId() const override;
86 
87  void Read(TPZStream& buf, void* context) override;
88 
89  void Write(TPZStream& buf, int withclassid) const override;
90 
91 private:
93 
94 
96  template<class T>
97  T X(const T k) const;
98 
100  template<class T>
101  T EpsEqX(T X) const;
103  template<class T>
104  T EpsEqk(const T k) const;
106  template<class T>
107  T ResLF2(const TPZVec<T> &pt, T theta, T beta, T k, STATE kprev) const;
108 
110  template<class T>
111  T ResLF2IJ(const TPZVec<T> &sigtrIJ, T theta, T k, STATE kprev) const;
112 
114  STATE NormalToF1(STATE I1, STATE I1_ref) const;
115 
117  STATE ResLF1(const TPZVec<STATE> &sigtrial, const TPZVec<STATE> &sigproj, const STATE k, const STATE kprev) const;
119  STATE DistF1(const TPZVec<STATE> &pt, const STATE xi, const STATE beta) const;
121  STATE DistF2(const TPZVec<STATE> &pt, const STATE theta, const STATE beta, const STATE k) const;
122 
124  STATE DistF2IJ(const TPZVec<STATE> &sigtrialIJ, STATE theta, STATE k) const;
125 
126 
128  void DDistFunc1(const TPZVec<STATE> &pt, STATE xi, STATE beta, TPZFMatrix<STATE> &ddistf1) const;
129 
131  template<class T>
132  void Res1(const TPZVec<T> &trial_stress, T i1, T beta, T k, T kprev, TPZVec<T> & residue_1) const;
133 
135  template<class T>
136  void Res2(const TPZVec<T> &trial_stress, T theta, T beta, T k, T kprev, TPZVec<T> & residue_2) const;
137 
139  template<class T>
140  void Res2CoVertex(const TPZVec<T> &trial_stress, T beta, T k, T kprev, TPZVec<T> & residue_covertex) const;
141 
143  template<class T>
144  void Res2Vertex(const TPZVec<T> &trial_stress, T k, T kprev, T & residue_vertex) const;
145 
147  template<class T>
148  void DDistF2IJ(TPZVec<T> &sigtrialIJ, T theta, T L, STATE Lprev, TPZVec<T> &ddistf2) const;
149 
150 
152  void D2DistFunc1(const TPZVec<STATE> &pt, STATE xi, STATE beta, TPZFMatrix<STATE> &d2distf1) const;
153 
155  void Jacobianf1(const TPZVec<STATE> &trial_stress, STATE i1, STATE beta, STATE k, TPZFMatrix<STATE> &jacobianf1)const;
156 
158  void Jacobianf2(const TPZVec<STATE> &trial_stress, STATE theta, STATE beta, STATE k, TPZFMatrix<STATE> &jacobianf2)const;
159 
161  void Jacobianf2CoVertex(const TPZVec<STATE> &trial_stress, STATE beta, STATE k, TPZFMatrix<STATE> &jacobianf2_covertex)const;
162 
164  void Jacobianf2Vertex(const TPZVec<STATE> &trial_stress, STATE k, STATE &jacobianf2_vertex)const;
165 
167  void JacobianVertex(const TPZVec<STATE> &trial_stress, STATE k, STATE &jacobian_vertex)const;
168 
170  void JacobianCoVertex(const TPZVec<STATE> &trial_stress, STATE beta, STATE k, TPZFMatrix<STATE> &jacobian_covertex)const;
171 
173  // the derivative are given in terms of theta, beta and k
174  void DResLF2(const TPZVec<STATE> &pt, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec<STATE> &dresl) const;
176  // the derivative are given in terms of k
177  STATE DResLF1(const TPZVec<STATE> &sigtrial, const TPZVec<STATE> &sigproj, const STATE k, const STATE kprev) const;
178 
179  template<class T>
180  void FromThetaKToSigIJ(const T &theta, const T &K, TPZVec<T> &sigIJ) const;
181 
183  void DF1Cart(STATE xi, STATE beta, TPZFMatrix<STATE> &DF1) const;
184 
186  void DF2Cart(STATE theta, STATE beta, STATE k, TPZFMatrix<STATE> &DF1) const;
187 
188 
190  void GradF1SigmaTrial(const TPZVec<STATE> &sigtrial, STATE xi, STATE beta, TPZFMatrix<STATE> &deriv) const;
191 
193  void GradF2SigmaTrial(const TPZVec<STATE> &sigtrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZFMatrix<STATE> &deriv) const;
194 
196  void F1Cyl(STATE xi, STATE beta, TPZVec<STATE> &f1cyl) const;
197 
198  void F2Cyl(const STATE theta, const STATE beta, const STATE k, TPZVec<STATE> &f2cyl) const;
199 
200 public:
201 
203  REAL InitialDamage(const TPZVec<REAL> &stress_p) const;
204 
205  void Phi(TPZVec<REAL> sigma, STATE alpha, TPZVec<STATE> &phi)const;
206 
207  void SurfaceParamF1(TPZVec<STATE> &sigproj, STATE &xi, STATE &beta) const;
208 
209  void SurfaceParamF2(const TPZVec<STATE> &sigproj, const STATE k, STATE &theta, STATE &beta) const;
210 
211  STATE NormalFunctionToF1(STATE & I1, STATE & k) const;
212 
213  void ProjectApex(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
214 
215  void ProjectF1(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
216 
217  void ProjectF2(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
218 
219  void ProjectCapVertex(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
220 
221  void ProjectCapCoVertex(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
222 
223  void ProjectCoVertex(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
224 
225  void ProjectVertex(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
226 
227  void ProjectRing(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
228 
229  void ProjectBetaConstF2(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj) const;
230 
237  // virtual void ApplyStrainComputeSigma(TPZPlasticState<STATE> &plasticstate, TPZVec<STATE> &sigma);
238 
239  // void ApplyStrainComputeSigma(const TPZVec<STATE> &eps, STATE kprev, TPZVec<STATE> &sigma,STATE &kproj) const;
240  void ApplyStrainComputeSigma(TPZVec<STATE> &epst, TPZVec<STATE> &epsp, STATE & kprev, TPZVec<STATE> &epspnext, TPZVec<STATE> &stressnext, STATE & knext, TPZFMatrix<REAL> * tangent = NULL) const;
241 
242 
243 
244  void ComputeI1(TPZVec<STATE> stress, STATE &I1)const;
245  void ComputeJ2(TPZVec<STATE> stress, STATE &J2)const;
246  void ApplyStrainComputeElasticStress(TPZVec<STATE> &strain, TPZVec<STATE> &stress)const;
247  void ApplyStressComputeElasticStrain(TPZVec<STATE> &stress, TPZVec<STATE> &strain)const;
248 
249  void ProjectSigma(const TPZVec<STATE> &sigmatrial, STATE kprev, TPZVec<STATE> &sigmaproj, STATE &kproj, int &m_type, TPZFMatrix<REAL> * gradient = NULL) const;
250 
251  void ProjectSigmaDep(const TPZVec<STATE> &sigmatrial, STATE kprev, TPZVec<STATE> &sigmaproj, STATE &kproj, TPZFMatrix<STATE> &GradSigma) const;
252 
257  void TaylorCheckDistF1(const TPZVec<STATE> &sigmatrial, STATE xi, STATE beta, TPZVec<STATE> &xnorm,
258  TPZVec<STATE> &errnorm) const;
259  void TaylorCheckDDistF1(const TPZVec<STATE> &sigmatrial, STATE xi, STATE beta, TPZVec<STATE> &xnorm,
260  TPZVec<STATE> &errnorm) const;
261  void TaylorCheckDDistF1DSigtrial(const TPZVec<STATE> &sigmatrial, STATE xi, STATE beta, TPZVec<STATE> &xnorm,
262  TPZVec<STATE> &errnorm) const;
263  void TaylorCheckDistF2(const TPZVec<STATE> &sigmatrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec<STATE> &xnorm,
264  TPZVec<STATE> &errnorm) const;
265  void TaylorCheckDDistF2(const TPZVec<STATE> &sigmatrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec<STATE> &xnorm,
266  TPZVec<STATE> &errnorm) const;
267  void TaylorCheckDDistF2DSigtrial(const TPZVec<STATE> &sigmatrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec<STATE> &xnorm,
268  TPZVec<STATE> &errnorm) const;
269  void TaylorCheckDF1Cart(STATE xi, STATE beta, TPZVec<STATE> &xnorm,
270  TPZVec<STATE> &errnorm) const;
271 
272  void TaylorCheckDF2Cart(STATE theta, STATE beta, STATE k, TPZVec<STATE> &xnorm,
273  TPZVec<STATE> &errnorm) const;
274 
276  void TaylorCheckParamF1Sigtrial(const TPZVec<STATE> &sigtrial, STATE kprev, TPZVec<STATE> &xnorm, TPZVec<STATE> &errnorm) const;
277 
278  void TaylorCheckProjectF1(const TPZVec<STATE> &sigtrial, STATE kprev, TPZVec<STATE> &xnorm, TPZVec<STATE> &errnorm) const;
279 
281  void TaylorCheckDtbkDsigtrial(const TPZVec<STATE> &sigtrial, STATE kprev, TPZVec<STATE> &xnorm, TPZVec<STATE> &errnorm) const;
282 
283  void TaylorCheckProjectF2(const TPZVec<STATE> &sigtrial, STATE kprev, TPZVec<STATE> &xnorm, TPZVec<STATE> &errnorm) const;
284 
285  static void ConvergenceRate(TPZVec<STATE> &xnorm, TPZVec<STATE> &errnorm, TPZVec<STATE> &convergence);
286 
287  static void CheckCoordinateTransformation(TPZVec<STATE> &cart);
288 
290  void ComputeCapTangent(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj, TPZFMatrix<REAL> * gradient) const;
291 
293  void ComputeCapVertexTangent(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj, TPZFMatrix<REAL> * gradient) const;
294 
296  void ComputeCapCoVertexTangent(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj, TPZFMatrix<REAL> * gradient) const;
297 
299  void ComputeFailureTangent(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &projected_stress, STATE &kproj, TPZFMatrix<REAL> * gradient) const;
300 
302  void TaylorCheckProjectSigma(const TPZVec<STATE> &trial_stress, STATE kprev, TPZVec<STATE> &xnorm, TPZVec<STATE> &errnorm) const;
303 
304 
305 public:
306 
307  // Set up charecteristic parameters
308  void SetUp(STATE A, STATE B, STATE C, STATE D, STATE K, STATE G, STATE W, STATE R, STATE Phi, STATE N, STATE Psi);
309 
310  // Set up the initial damage
311  void SetInitialDamage(STATE kappa_0);
312 
313  static void MCormicRanchSand(TPZSandlerExtended &mat);
314  static void ReservoirSandstone(TPZSandlerExtended &mat);
315  static void SalemLimestone(TPZSandlerExtended &mat);
316  static void PreSMat(TPZSandlerExtended &mat); // em MPa
317 
318  STATE A() {
319  return fA;
320  }
321 
322  void SetA(STATE A)
323  {
324  fA = A;
325  }
326 
327  STATE B() {
328  return fB;
329  }
330 
331  void SetB(STATE B)
332  {
333  fB = B;
334  }
335 
336  STATE C() {
337  return fC;
338  }
339 
340  void SetC(STATE C)
341  {
342  fC = C;
343  }
344 
345  STATE D() {
346  return fD;
347  }
348 
349  STATE W() {
350  return fW;
351  }
352 
353  STATE K() {
354  return fK;
355  }
356 
357  STATE R() {
358  return fR;
359  }
360 
361  STATE G() {
362  return fG;
363  }
364 
365  STATE E() {
366  return fE;
367  }
368 
369  STATE N() {
370  return fN;
371  }
372 
373  STATE Poisson() {
374  return fnu;
375  }
376 
377  STATE InitialDamage() {
378  return fkappa_0;
379  }
380 
381  STATE Apex() const {
382  STATE apex = log(fA/fC)/fB;
383  return apex;
384  }
385 
386  STATE X_0() const {
387  STATE X_0 = this->X(fkappa_0);
388  return X_0;
389  }
390 
391  STATE CPerturbation() const {
392  STATE CK = fE/(3.0*(1.0 - 2.0 *fnu));
393  STATE C_per = (fD*fC)/(3.0*CK);
394  return C_per;
395  }
396 
397  STATE ftol;
398 
399 private:
400 
401  STATE fA, fB, fC, fD, fW, fK, fR, fG, fPhi, fN, fPsi, fE, fnu, fkappa_0;
402 
403  // bool fIsonCap;
405 
406 
407 };
408 
409 
410 #endif /* defined(__PZ__pzsandlerextPV__) */
void DF2Cart(STATE theta, STATE beta, STATE k, TPZFMatrix< STATE > &DF1) const
Compute the derivative of the stress (principal s;tresses) as a function of xi and beta...
void TaylorCheckDistF1(const TPZVec< STATE > &sigmatrial, STATE xi, STATE beta, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
virtual void YieldFunction(const TPZVec< STATE > &sigma, STATE kprev, TPZVec< STATE > &yield) const override
TPZElasticResponse GetElasticResponse()
void ProjectVertex(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
void Res2CoVertex(const TPZVec< T > &trial_stress, T beta, T k, T kprev, TPZVec< T > &residue_covertex) const
Compute the derivative of the distance function to the covertex cap function and the result of covert...
void F2Cyl(const STATE theta, const STATE beta, const STATE k, TPZVec< STATE > &f2cyl) const
virtual ~TPZSandlerExtended()
Desctructor.
void ProjectF2(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
T ResLF2IJ(const TPZVec< T > &sigtrIJ, T theta, T k, STATE kprev) const
Compute the residual of the equation which defines the update of the damage variable.
TPZElasticResponse fElasticResponse
void ApplyStressComputeElasticStrain(TPZVec< STATE > &stress, TPZVec< STATE > &strain) const
void TaylorCheckParamF1Sigtrial(const TPZVec< STATE > &sigtrial, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
verifies the validity of dxi/dsigtrial and dbeta/dsigtrial
virtual int GetNYield() const override
void ProjectCapCoVertex(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
virtual void Print(std::ostream &out) const override
TPZSandlerExtended()
Empty constructor.
void TaylorCheckProjectSigma(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
Compute the approximation rate for the derivative of the projected stresses respect to trial stresses...
void TaylorCheckDF2Cart(STATE theta, STATE beta, STATE k, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
void Jacobianf1(const TPZVec< STATE > &trial_stress, STATE i1, STATE beta, STATE k, TPZFMatrix< STATE > &jacobianf1) const
Compute the jacobian function of the f1 (failure) distance as a function of i1, beta and k...
STATE NormalFunctionToF1(STATE &I1, STATE &k) const
void TaylorCheckDDistF1(const TPZVec< STATE > &sigmatrial, STATE xi, STATE beta, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
STATE DistF2(const TPZVec< STATE > &pt, const STATE theta, const STATE beta, const STATE k) const
Compute the distance of sigtrial to the point on the cap.
std::underlying_type< Enumeration >::type as_integer(const Enumeration value)
Definition: pzreal.h:37
T X(const T k) const
The function which defines the plastic surface.
void ComputeCapTangent(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj, TPZFMatrix< REAL > *gradient) const
Compute the derivative of the projected stresses respect to trial stresses (tangent) over the cap...
static void CheckCoordinateTransformation(TPZVec< STATE > &cart)
void FromThetaKToSigIJ(const T &theta, const T &K, TPZVec< T > &sigIJ) const
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
void GradF1SigmaTrial(const TPZVec< STATE > &sigtrial, STATE xi, STATE beta, TPZFMatrix< STATE > &deriv) const
Compute the derivative of the residual with respect to sigtrial.
void SetElasticResponse(const TPZElasticResponse &ER)
void SetInitialDamage(STATE kappa_0)
void TaylorCheckProjectF2(const TPZVec< STATE > &sigtrial, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
virtual int ClassId() const override
Define the class id associated with the class.
STATE NormalToF1(STATE I1, STATE I1_ref) const
Compute the normal function to the failure surface based on a reference point (I1_ref,f1(I1_ref))
void ProjectRing(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
void ApplyStrainComputeSigma(TPZVec< STATE > &epst, TPZVec< STATE > &epsp, STATE &kprev, TPZVec< STATE > &epspnext, TPZVec< STATE > &stressnext, STATE &knext, TPZFMatrix< REAL > *tangent=NULL) const
static void ConvergenceRate(TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm, TPZVec< STATE > &convergence)
void TaylorCheckDDistF2DSigtrial(const TPZVec< STATE > &sigmatrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
teste da derivada D(ResF2)/D(sigtrial)
void Firstk(STATE &epsp, STATE &k) const
Compute k as a function of epsp using Newton iterations.
void ProjectSigma(const TPZVec< STATE > &sigmatrial, STATE kprev, TPZVec< STATE > &sigmaproj, STATE &kproj, int &m_type, TPZFMatrix< REAL > *gradient=NULL) const
T ResLF2(const TPZVec< T > &pt, T theta, T beta, T k, STATE kprev) const
Compute the residual of the equation which defines the update of the damage variable.
void ApplyStrainComputeElasticStress(TPZVec< STATE > &strain, TPZVec< STATE > &stress) const
void ProjectCapVertex(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
TPZSandlerExtended & operator=(const TPZSandlerExtended &source)
void ProjectCoVertex(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
static void SalemLimestone(TPZSandlerExtended &mat)
void GradF2SigmaTrial(const TPZVec< STATE > &sigtrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZFMatrix< STATE > &deriv) const
Compute the derivative of the F2 residual with respecto do sigtrial.
void TaylorCheckDDistF1DSigtrial(const TPZVec< STATE > &sigmatrial, STATE xi, STATE beta, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
void TaylorCheckDistF2(const TPZVec< STATE > &sigmatrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
void ProjectSigmaDep(const TPZVec< STATE > &sigmatrial, STATE kprev, TPZVec< STATE > &sigmaproj, STATE &kproj, TPZFMatrix< STATE > &GradSigma) const
void SurfaceParamF1(TPZVec< STATE > &sigproj, STATE &xi, STATE &beta) const
void DResLF2(const TPZVec< STATE > &pt, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec< STATE > &dresl) const
Compute the derivative of the equation which determines the evolution of k.
void Jacobianf2CoVertex(const TPZVec< STATE > &trial_stress, STATE beta, STATE k, TPZFMatrix< STATE > &jacobianf2_covertex) const
Compute the jacobian function of the f2 (cap) distance as a function of beta and k.
void Phi(TPZVec< REAL > sigma, STATE alpha, TPZVec< STATE > &phi) const
static void ReservoirSandstone(TPZSandlerExtended &mat)
void TaylorCheckDDistF2(const TPZVec< STATE > &sigmatrial, STATE theta, STATE beta, STATE k, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
void JacobianVertex(const TPZVec< STATE > &trial_stress, STATE k, STATE &jacobian_vertex) const
Compute the jacobian of the distance function to the cap vertex function and the result of Vertex res...
STATE DistF1(const TPZVec< STATE > &pt, const STATE xi, const STATE beta) const
Compute the distance of sigtrial to the point on the yield surface.
STATE DResLF1(const TPZVec< STATE > &sigtrial, const TPZVec< STATE > &sigproj, const STATE k, const STATE kprev) const
Compute the derivative of the equation which determines the evolution of k.
void ProjectApex(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
void DDistFunc1(const TPZVec< STATE > &pt, STATE xi, STATE beta, TPZFMatrix< STATE > &ddistf1) const
Compute the derivative of the distance function to the yield surface as a function of xi and beta...
void ComputeJ2(TPZVec< STATE > stress, STATE &J2) const
void JacobianCoVertex(const TPZVec< STATE > &trial_stress, STATE beta, STATE k, TPZFMatrix< STATE > &jacobian_covertex) const
Compute the jacobian of the distance function to the cap covertex function and the result of Covertex...
void ComputeFailureTangent(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj, TPZFMatrix< REAL > *gradient) const
Compute the derivative of the projected stresses respect to trial stresses (tangent) over the failure...
void DF1Cart(STATE xi, STATE beta, TPZFMatrix< STATE > &DF1) const
Compute the derivative of the stress (principal s;tresses) as a function of xi and beta...
T EpsEqX(T X) const
compute the damage variable as a function of the X function
static void PreSMat(TPZSandlerExtended &mat)
void Jacobianf2Vertex(const TPZVec< STATE > &trial_stress, STATE k, STATE &jacobianf2_vertex) const
Compute the jacobian function of the vertex on f2 (cap) distance as a function of k...
void ProjectF1(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
void Res1(const TPZVec< T > &trial_stress, T i1, T beta, T k, T kprev, TPZVec< T > &residue_1) const
Compute the derivative of the distance function to the failure function and the result of Residue 1 (...
void TaylorCheckProjectF1(const TPZVec< STATE > &sigtrial, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
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_ log
Definition: tfadfunc.h:130
STATE ResLF1(const TPZVec< STATE > &sigtrial, const TPZVec< STATE > &sigproj, const STATE k, const STATE kprev) const
Compute the residual of the equation which defines the update of the damage variable.
STATE DistF2IJ(const TPZVec< STATE > &sigtrialIJ, STATE theta, STATE k) const
Compute the distance considering the sigtrial is given as a funcion of I1, sqJ2.
void D2DistFunc1(const TPZVec< STATE > &pt, STATE xi, STATE beta, TPZFMatrix< STATE > &d2distf1) const
Compute the second derivative of the distance as a function of xi and beta.
STATE CPerturbation() const
void DDistF2IJ(TPZVec< T > &sigtrialIJ, T theta, T L, STATE Lprev, TPZVec< T > &ddistf2) const
Compute the value of the equation which determines the orthogonality of the projection.
static void MCormicRanchSand(TPZSandlerExtended &mat)
void Res2Vertex(const TPZVec< T > &trial_stress, T k, T kprev, T &residue_vertex) const
Compute the derivative of the distance function to the vertex cap function and the result of vertex R...
void Jacobianf2(const TPZVec< STATE > &trial_stress, STATE theta, STATE beta, STATE k, TPZFMatrix< STATE > &jacobianf2) const
Compute the jacobian function of the f2 (cap) distance as a function of theta, beta and k...
STATE GetF(STATE x) const
Defines the interface for saving and reading data. Persistency.
Definition: TPZStream.h:50
void SetUp(STATE A, STATE B, STATE C, STATE D, STATE K, STATE G, STATE W, STATE R, STATE Phi, STATE N, STATE Psi)
void TaylorCheckDtbkDsigtrial(const TPZVec< STATE > &sigtrial, STATE kprev, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
verify D(theta,beta,k)/D(sigtrial)
void Read(TPZStream &buf, void *context) override
read objects from the stream
void TaylorCheckDF1Cart(STATE xi, STATE beta, TPZVec< STATE > &xnorm, TPZVec< STATE > &errnorm) const
void ComputeI1(TPZVec< STATE > stress, STATE &I1) const
void ComputeCapVertexTangent(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj, TPZFMatrix< REAL > *gradient) const
Compute the derivative of the projected stresses respect to trial stresses (tangent) over the cap...
void SurfaceParamF2(const TPZVec< STATE > &sigproj, const STATE k, STATE &theta, STATE &beta) const
void Res2(const TPZVec< T > &trial_stress, T theta, T beta, T k, T kprev, TPZVec< T > &residue_2) const
Compute the derivative of the distance function to the cap function and the result of Residue 2 (Cap)...
void ComputeCapCoVertexTangent(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj, TPZFMatrix< REAL > *gradient) const
Compute the derivative of the projected stresses respect to trial stresses (tangent) over the cap...
void ProjectBetaConstF2(const TPZVec< STATE > &trial_stress, STATE kprev, TPZVec< STATE > &projected_stress, STATE &kproj) const
T DF(const T x) const
void F1Cyl(STATE xi, STATE beta, TPZVec< STATE > &f1cyl) const
Compute the point on F1 in HW Cylindrical coordinates.
T F(const T x) const
T EpsEqk(const T k) const
Compute the damage variable as a function of the position of the cap k.