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

Detailed Description

Definition at line 157 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 164 of file PhaseFieldBase.h.

References lch, and softening_curve.

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 167 of file PhaseFieldBase.h.

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

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 196 of file PhaseFieldBase.h.

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

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 230 of file PhaseFieldBase.h.

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

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

Member Data Documentation

◆ lch

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

◆ softening_curve

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

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