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

Detailed Description

Definition at line 163 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 170 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 173 of file PhaseFieldBase.h.

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

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

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

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

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

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: