12 return Hash(
"TPZPorousElasticResponse");
114 return "TPZPorousElasticResponse";
119 out <<
"\n Logarithmic bulk modulus = " <<
m_kappa;
120 out <<
"\n Elastic tensile strength = " <<
m_pt_el;
121 out <<
"\n Initial void ratio = " <<
m_e_0;
122 out <<
"\n Initial hydrostatic stress = " <<
m_p_0;
124 if (m_is_G_constant_Q) {
125 out <<
"\n Second Lamé parameter (Shear modulus) = " <<
m_mu;
127 out <<
"\n Poisson ratio = " <<
m_nu;
134 STATE epsv = epsilon.
I1();
138 dG_desp_vol = (-3*
pow(1 +
m_e_0,2)*(1 + epsv)*
150 STATE lambda,
K, dK_desp_vol, dnu_dK;
151 this->
K(epsilon, K, dK_desp_vol);
152 nu = -1 + (9*
K)/(2.*(3*K +
m_mu));
154 dnu_desp_vol = dnu_dK * dK_desp_vol;
164 STATE epsv = epsilon.
I1();
165 STATE epsv_ref = epsilon_ref.
I1();
168 (-((epsv - epsv_ref)*(1 + epsv_ref)*
177 STATE epsv = epsilon.
I1();
187 STATE lambda,
K, dK_desp_vol;
188 this->
K(epsilon, K, dK_desp_vol);
189 lambda = K - (2.0/3.0)*
m_mu;
217 REAL constant = ( epsilon.
XX() + epsilon.
YY() + epsilon.
ZZ() ) * dK_desp_vol;
239 STATE lambda,
G, dG_desp_vol;
240 this->
G(epsilon, G, dG_desp_vol);
241 lambda = (2.0*G*
m_nu)/(1.0-2.0*
m_nu);
269 REAL constant = (2.0/(-1.0+2.0*
m_nu));
272 REAL l0_val = constant * ( epsilon.
XX() * (
m_nu - 1.0) -
m_nu * (epsilon.
YY() + epsilon.
ZZ())) * dG_desp_vol;
278 REAL l1_val = 2.0 * dG_desp_vol * epsilon.
XY();
284 REAL l2_val = 2.0 * dG_desp_vol * epsilon.
XZ();
290 REAL l3_val = constant * ( epsilon.
YY() * (
m_nu - 1.0) -
m_nu * (epsilon.
XX() + epsilon.
ZZ())) * dG_desp_vol;
296 REAL l4_val = 2.0 * dG_desp_vol * epsilon.
YZ();
302 REAL l5_val = constant * ( epsilon.
ZZ() * (
m_nu - 1.0) -
m_nu * (epsilon.
XX() + epsilon.
YY())) * dG_desp_vol;
326 STATE
K,dK_desp_vol,nu;
327 this->
K(epsilon, K, dK_desp_vol);
329 nu = (3.0*K-2.0*
m_mu)/(2.0*(3.0*K+
m_mu));
333 this->
G(epsilon, G, dG_desp_vol);
334 Eyoung = 2*G*(1.0+
m_nu);
343 eps_res = epsilon - linear_epsilon;
359 Eyoung = 2*
m_mu*(1.0+nu);
363 this->
G(epsilon, G, dG_desp_vol);
364 Eyoung = 2*G*(1.0+
m_nu);
374 eps_res = epsilon - linear_epsilon;
bool m_is_G_constant_Q
Directive for define constant shear modulus calculations (false means constant Poisson ratio) ...
void ComputeStress(const TPZTensor< T > &epsilon, TPZTensor< T > &sigma) const
bool m_plane_stress_Q
Directive for define Plain stress state or plane strain state.
TPZElasticResponse LinearizedElasticResponse(const TPZTensor< STATE > &epsilon_ref, const TPZTensor< STATE > &epsilon) const
Computes a linear elastic response from the linearization around a reference state eps_ref...
void Print(std::ostream &out) const
void SetShearModulusConstant(STATE G)
STATE m_mu
Second lamé parameter.
const char * Name() const
STATE m_p_0
Initial equivalent pressure stress.
void SetPoissonRatioConstant(STATE nu)
STATE m_kappa
Logarithmic bulk modulus.
void Poisson_linearized(const TPZTensor< STATE > &epsilon_ref, const TPZTensor< STATE > &epsilon, STATE &nu) const
TPZPorousElasticResponse & operator=(const TPZPorousElasticResponse &other)
void SetPorousElasticity(STATE kappa, STATE pt_el, STATE e_0, STATE p_0)
virtual void Write(const bool val)
void ComputeStrain(const TPZTensor< T > &sigma, TPZTensor< T > &epsilon) const
#define DebugStop()
Returns a message to user put a breakpoint in.
STATE m_pt_el
Elastic tensile strengh.
void De(const TPZTensor< STATE > &epsilon, TPZFMatrix< STATE > &De) const
TPZPorousElasticResponse()
int ClassId() const override
int32_t Hash(std::string str)
void De_G_constant(const TPZTensor< STATE > &epsilon, TPZFMatrix< STATE > &De) const
TPZFlopCounter pow(const TPZFlopCounter &orig, const TPZFlopCounter &xp)
Returns the power and increments the counter of the power.
void Read(TPZStream &buf, void *context) override
void De_Poisson_constant(const TPZTensor< STATE > &epsilon, TPZFMatrix< STATE > &De) const
void SetEngineeringData(REAL Eyoung, REAL Poisson)
STATE m_e_0
Initial void ratio.
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ exp
Defines the interface for saving and reading data. Persistency.
void Write(TPZStream &buf, int withclassid) const override
int PutVal(const int64_t row, const int64_t col, const TVar &value) override
Put values without bounds checking This method is faster than "Put" if DEBUG is defined.
TPZElasticResponse EvaluateElasticResponse(const TPZTensor< STATE > &epsilon) const
Computes a linear elastic response from function evaluation of non linear expressions.
void SetResidualStrainData(TPZTensor< REAL > &eps_res)
virtual void Read(bool &val)