OGS
MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative Class Reference

Detailed Description

Definition at line 158 of file PhaseFieldBase.h.

#include <PhaseFieldBase.h>

Inheritance diagram for MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative:
[legend]
Collaboration diagram for MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative:
[legend]

Public Member Functions

 COHESIVE_DegradationDerivative (double const Parameter_lch, SofteningCurve Parameter_softening_curve)
 
double degradation (double const d_ip, double const k, double const ls) override
 
double degradationDf1 (double const d_ip, double const k, double const ls) override
 
double degradationDf2 (double const d_ip, double const k, double const ls) override
 
- Public Member Functions inherited from MaterialLib::Solids::Phasefield::DegradationDerivative
virtual ~DegradationDerivative ()=default
 

Private Attributes

double const lch
 
SofteningCurve softening_curve
 

Constructor & Destructor Documentation

◆ COHESIVE_DegradationDerivative()

MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative::COHESIVE_DegradationDerivative ( double const Parameter_lch,
SofteningCurve Parameter_softening_curve )
inline

Definition at line 165 of file PhaseFieldBase.h.

Member Function Documentation

◆ degradation()

double MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative::degradation ( double const d_ip,
double const k,
double const ls )
inlineoverridevirtual

Implements MaterialLib::Solids::Phasefield::DegradationDerivative.

Definition at line 168 of file PhaseFieldBase.h.

171 {
172 double const m1 = 4.0 * lch / acos(-1.) / ls;
173 switch (softening_curve)
174 {
176 {
177 double const m2 = std::pow(2., 5. / 3.) - 3.;
178 double const n = 2.5;
179 return std::pow(d_ip, n) /
180 (std::pow(d_ip, n) +
181 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip))) *
182 (1.0 - k) +
183 k;
184 }
185 default:
186 {
187 double const m2 = -0.5;
188 double const n = 2.;
189 return std::pow(d_ip, n) /
190 (std::pow(d_ip, n) +
191 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip))) *
192 (1. - k) +
193 k;
194 }
195 }
196 };

References MaterialLib::Solids::Phasefield::Exponential, lch, and softening_curve.

◆ degradationDf1()

double MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative::degradationDf1 ( double const d_ip,
double const k,
double const ls )
inlineoverridevirtual

Implements MaterialLib::Solids::Phasefield::DegradationDerivative.

Definition at line 197 of file PhaseFieldBase.h.

199 {
200 double const m1 = 4.0 * lch / acos(-1.) / ls;
201 switch (softening_curve)
202 {
204 {
205 double const m2 = std::pow(2., 5. / 3.) - 3.;
206 double const n = 2.5;
207 double const a1 = std::pow(d_ip, n) +
208 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
209 double const a2 = n * std::pow(d_ip, n - 1.) -
210 2. * m1 * m2 * (1. - d_ip) - m1;
211 return (1. - k) *
212 (n * std::pow(d_ip, n - 1.) * a1 -
213 std::pow(d_ip, n) * a2) /
214 (a1 * a1);
215 }
216 default:
217 {
218 double const m2 = -0.5;
219 double const n = 2.;
220 double const a1 = std::pow(d_ip, n) +
221 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
222 double const a2 = n * std::pow(d_ip, n - 1.) -
223 2. * m1 * m2 * (1. - d_ip) - m1;
224 return (1. - k) *
225 (n * std::pow(d_ip, n - 1.) * a1 -
226 std::pow(d_ip, n) * a2) /
227 (a1 * a1);
228 }
229 }
230 };

References MaterialLib::Solids::Phasefield::Exponential, lch, and softening_curve.

◆ degradationDf2()

double MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative::degradationDf2 ( double const d_ip,
double const k,
double const ls )
inlineoverridevirtual

Implements MaterialLib::Solids::Phasefield::DegradationDerivative.

Definition at line 231 of file PhaseFieldBase.h.

233 {
234 double const m1 = 4.0 * lch / acos(-1.) / ls;
235 switch (softening_curve)
236 {
238 {
239 double const m2 = std::pow(2., 5. / 3.) - 3.;
240 double const n = 2.5;
241 double a1 = std::pow(d_ip, n) +
242 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
243 double a2 = n * std::pow(d_ip, n - 1.) -
244 2. * m1 * m2 * (1. - d_ip) - m1;
245 return (1. - k) *
246 (2. * a2 * a2 * std::pow(d_ip, n) -
247 a1 * std::pow(d_ip, n) *
248 (2. * m1 * m2 +
249 n * std::pow(d_ip, n - 2.) * (n - 1.)) -
250 2. * a1 * a2 * n * std::pow(d_ip, n - 1.) +
251 a1 * a1 * n * std::pow(d_ip, n - 2.) * (n - 1.)) /
252 (std::pow(a1, 3));
253 }
254 default:
255 {
256 double const m2 = -0.5;
257 double const n = 2.;
258 double const a1 = std::pow(d_ip, n) +
259 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
260 double const a2 = n * std::pow(d_ip, n - 1.) -
261 2. * m1 * m2 * (1. - d_ip) - m1;
262 return (1. - k) *
263 (2. * a2 * a2 * std::pow(d_ip, n) -
264 a1 * std::pow(d_ip, n) *
265 (2. * m1 * m2 +
266 n * std::pow(d_ip, n - 2.) * (n - 1.)) -
267 2. * a1 * a2 * n * std::pow(d_ip, n - 1.) +
268 a1 * a1 * n * std::pow(d_ip, n - 2.) * (n - 1.)) /
269 (std::pow(a1, 3));
270 }
271 }
272 };

References MaterialLib::Solids::Phasefield::Exponential, lch, and softening_curve.

Member Data Documentation

◆ lch

double const MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative::lch
private

Definition at line 161 of file PhaseFieldBase.h.

Referenced by degradation(), degradationDf1(), and degradationDf2().

◆ softening_curve

SofteningCurve MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative::softening_curve
private

Definition at line 162 of file PhaseFieldBase.h.

Referenced by degradation(), degradationDf1(), and degradationDf2().


The documentation for this class was generated from the following file: