OGS
ProcessLib::PhaseField::COHESIVE_DegradationDerivative Class Reference

Detailed Description

Definition at line 89 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 96 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 99 of file PhaseFieldProcessData.h.

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

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 128 of file PhaseFieldProcessData.h.

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

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 159 of file PhaseFieldProcessData.h.

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

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

Member Data Documentation

◆ lch

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

Definition at line 92 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 93 of file PhaseFieldProcessData.h.

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


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