OGS
ProcessLib::PhaseField::COHESIVE_DegradationDerivative Class Reference

Detailed Description

Definition at line 88 of file PhaseFieldProcessData.h.

#include <PhaseFieldProcessData.h>

Inheritance diagram for ProcessLib::PhaseField::COHESIVE_DegradationDerivative:
[legend]
Collaboration diagram for ProcessLib::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 degradation_df1 (double const d_ip, double const ls) override
 
double degradation_df2 (double const d_ip, double const ls) override
 
- Public Member Functions inherited from ProcessLib::PhaseField::DegradationDerivative
virtual ~DegradationDerivative ()=default
 

Private Attributes

double const lch
 
SofteningCurve softening_curve
 

Constructor & Destructor Documentation

◆ COHESIVE_DegradationDerivative()

ProcessLib::PhaseField::COHESIVE_DegradationDerivative::COHESIVE_DegradationDerivative ( double const Parameter_lch,
SofteningCurve Parameter_softening_curve )
inline

Definition at line 95 of file PhaseFieldProcessData.h.

Member Function Documentation

◆ degradation()

double ProcessLib::PhaseField::COHESIVE_DegradationDerivative::degradation ( double const d_ip,
double const k,
double const ls )
inlineoverridevirtual

Implements ProcessLib::PhaseField::DegradationDerivative.

Definition at line 98 of file PhaseFieldProcessData.h.

101 {
102 double const m1 = 4.0 * lch / acos(-1.) / ls;
103 switch (softening_curve)
104 {
106 {
107 double const m2 = std::pow(2., 5. / 3.) - 3.;
108 double const n = 2.5;
109 return std::pow(d_ip, n) /
110 (std::pow(d_ip, n) +
111 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip))) *
112 (1.0 - k) +
113 k;
114 }
115 default:
116 {
117 double const m2 = -0.5;
118 double const n = 2.;
119 return std::pow(d_ip, n) /
120 (std::pow(d_ip, n) +
121 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip))) *
122 (1. - k) +
123 k;
124 }
125 }
126 };

References ProcessLib::PhaseField::Exponential, lch, and softening_curve.

◆ degradation_df1()

double ProcessLib::PhaseField::COHESIVE_DegradationDerivative::degradation_df1 ( double const d_ip,
double const ls )
inlineoverridevirtual

Implements ProcessLib::PhaseField::DegradationDerivative.

Definition at line 127 of file PhaseFieldProcessData.h.

128 {
129 double const m1 = 4.0 * lch / acos(-1.) / ls;
130 switch (softening_curve)
131 {
133 {
134 double const m2 = std::pow(2., 5. / 3.) - 3.;
135 double const n = 2.5;
136 double const a1 = std::pow(d_ip, n) +
137 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
138 double const a2 = n * std::pow(d_ip, n - 1.) -
139 2. * m1 * m2 * (1. - d_ip) - m1;
140 return (n * std::pow(d_ip, n - 1.) * a1 -
141 std::pow(d_ip, n) * a2) /
142 (a1 * a1);
143 }
144 default:
145 {
146 double const m2 = -0.5;
147 double const n = 2.;
148 double const a1 = std::pow(d_ip, n) +
149 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
150 double const a2 = n * std::pow(d_ip, n - 1.) -
151 2. * m1 * m2 * (1. - d_ip) - m1;
152 return (n * std::pow(d_ip, n - 1.) * a1 -
153 std::pow(d_ip, n) * a2) /
154 (a1 * a1);
155 }
156 }
157 };

References ProcessLib::PhaseField::Exponential, lch, and softening_curve.

◆ degradation_df2()

double ProcessLib::PhaseField::COHESIVE_DegradationDerivative::degradation_df2 ( double const d_ip,
double const ls )
inlineoverridevirtual

Implements ProcessLib::PhaseField::DegradationDerivative.

Definition at line 158 of file PhaseFieldProcessData.h.

159 {
160 double const m1 = 4.0 * lch / acos(-1.) / ls;
161 switch (softening_curve)
162 {
164 {
165 double const m2 = std::pow(2., 5. / 3.) - 3.;
166 double const n = 2.5;
167 double a1 = std::pow(d_ip, n) +
168 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
169 double a2 = n * std::pow(d_ip, n - 1.) -
170 2. * m1 * m2 * (1. - d_ip) - m1;
171 return (2. * a2 * a2 * std::pow(d_ip, n) -
172 a1 * std::pow(d_ip, n) *
173 (2. * m1 * m2 +
174 n * std::pow(d_ip, n - 2.) * (n - 1.)) -
175 2. * a1 * a2 * n * std::pow(d_ip, n - 1.) +
176 a1 * a1 * n * std::pow(d_ip, n - 2.) * (n - 1.)) /
177 (std::pow(a1, 3));
178 }
179 default:
180 {
181 double const m2 = -0.5;
182 double const n = 2.;
183 double const a1 = std::pow(d_ip, n) +
184 m1 * (1. - d_ip) * (1. + m2 * (1. - d_ip));
185 double const a2 = n * std::pow(d_ip, n - 1.) -
186 2. * m1 * m2 * (1. - d_ip) - m1;
187 return (2. * a2 * a2 * std::pow(d_ip, n) -
188 a1 * std::pow(d_ip, n) *
189 (2. * m1 * m2 +
190 n * std::pow(d_ip, n - 2.) * (n - 1.)) -
191 2. * a1 * a2 * n * std::pow(d_ip, n - 1.) +
192 a1 * a1 * n * std::pow(d_ip, n - 2.) * (n - 1.)) /
193 (std::pow(a1, 3));
194 }
195 }
196 };

References ProcessLib::PhaseField::Exponential, lch, and softening_curve.

Member Data Documentation

◆ lch

double const ProcessLib::PhaseField::COHESIVE_DegradationDerivative::lch
private

Definition at line 91 of file PhaseFieldProcessData.h.

Referenced by degradation(), degradation_df1(), and degradation_df2().

◆ softening_curve

SofteningCurve ProcessLib::PhaseField::COHESIVE_DegradationDerivative::softening_curve
private

Definition at line 92 of file PhaseFieldProcessData.h.

Referenced by degradation(), degradation_df1(), and degradation_df2().


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