9 #ifndef __PZ__pzsandlerextPV__ 10 #define __PZ__pzsandlerextPV__ 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);
59 void Firstk(STATE &epsp, STATE &k)
const;
75 virtual void Print(std::ostream &out)
const override;
81 T
DF(
const T x)
const;
83 STATE
GetF(STATE x)
const;
85 virtual int ClassId()
const override;
104 T
EpsEqk(
const T k)
const;
107 T
ResLF2(
const TPZVec<T> &pt, T theta, T beta, T k, STATE kprev)
const;
114 STATE
NormalToF1(STATE I1, STATE I1_ref)
const;
121 STATE
DistF2(
const TPZVec<STATE> &pt,
const STATE theta,
const STATE beta,
const STATE k)
const;
198 void F2Cyl(
const STATE theta,
const STATE beta,
const STATE k,
TPZVec<STATE> &f2cyl)
const;
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);
392 STATE CK =
fE/(3.0*(1.0 - 2.0 *
fnu));
393 STATE C_per = (
fD*
fC)/(3.0*CK);
401 STATE
fA,
fB,
fC,
fD,
fW,
fK,
fR,
fG,
fPhi,
fN,
fPsi,
fE,
fnu,
fkappa_0;
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)
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
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.
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
void F1Cyl(STATE xi, STATE beta, TPZVec< STATE > &f1cyl) const
Compute the point on F1 in HW Cylindrical coordinates.
T EpsEqk(const T k) const
Compute the damage variable as a function of the position of the cap k.