v0.15.5
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
EshelbianPlasticity::OpGetParameters Struct Reference
Inheritance diagram for EshelbianPlasticity::OpGetParameters:
[legend]
Collaboration diagram for EshelbianPlasticity::OpGetParameters:
[legend]

Public Member Functions

 OpGetParameters (boost::shared_ptr< double > gc_ptr, Sev severity=Sev::inform)
 
MoFEMErrorCode doWork (int row_side, EntityType row_type, EntitiesFieldData::EntData &row_data)
 

Static Public Attributes

static double strength = -1
 
static double min_kappa = 1e-12
 
static double min_stiffness = 1e-2
 
static double kappa0 = 1
 
static double beta = 1
 

Private Member Functions

MoFEMErrorCode getOptions ()
 

Private Attributes

double defaultGc = 1.0
 
boost::shared_ptr< doublegcPtr
 
Sev logSev
 

Detailed Description

Definition at line 205 of file EshelbianCohesive.cpp.

Constructor & Destructor Documentation

◆ OpGetParameters()

EshelbianPlasticity::OpGetParameters::OpGetParameters ( boost::shared_ptr< double gc_ptr,
Sev  severity = Sev::inform 
)
inline

Definition at line 206 of file EshelbianCohesive.cpp.

207 : FaceElementForcesAndSourcesCore::UserDataOperator(NOSPACE, OPSPACE),
208 gcPtr(gc_ptr), logSev(severity) {
209 CHK_THROW_MESSAGE(getOptions(), "Failed to get EshelbianCohesive options");
210 }
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
@ NOSPACE
Definition definitions.h:83

Member Function Documentation

◆ doWork()

MoFEMErrorCode EshelbianPlasticity::OpGetParameters::doWork ( int  row_side,
EntityType  row_type,
EntitiesFieldData::EntData row_data 
)
inline

Definition at line 212 of file EshelbianCohesive.cpp.

213 {
215 *gcPtr = defaultGc;
217 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()

◆ getOptions()

MoFEMErrorCode EshelbianPlasticity::OpGetParameters::getOptions ( )
inlineprivate

Definition at line 226 of file EshelbianCohesive.cpp.

226 {
228
229 PetscOptionsBegin(PETSC_COMM_WORLD, "interface_", "", "none");
230
231 CHKERR PetscOptionsScalar("-gc", "Griffith energy release rate", "",
232 defaultGc, &defaultGc, PETSC_NULLPTR);
233 CHKERR PetscOptionsScalar("-min_stiffness", "Minimal interface stiffness",
234 "", min_stiffness, &min_stiffness, PETSC_NULLPTR);
235 CHKERR PetscOptionsScalar("-strength", "Strength of interface", "",
236 strength, &strength, PETSC_NULLPTR);
237 CHKERR PetscOptionsScalar("-min_kappa",
238 "Minimal kappa to avoid singularity", "",
239 min_kappa, &min_kappa, PETSC_NULLPTR);
240 CHKERR PetscOptionsScalar("-kappa0", "Characteristic length kappa0", "",
241 kappa0, &kappa0, PETSC_NULLPTR);
242 CHKERR PetscOptionsScalar("-beta", "Cohesive tangential coupling", "",
243 beta, &beta, PETSC_NULLPTR);
244
245 PetscOptionsEnd();
246
247 MOFEM_LOG("EP", logSev)
248 << "Interface Griffith energy release rate Gc -interface_gc = "
249 << defaultGc;
250 MOFEM_LOG("EP", logSev)
251 << "Interface min stiffness -interface_min_stiffness = "
252 << min_stiffness;
253 MOFEM_LOG("EP", logSev)
254 << "Interface strength -interface_strength = " << strength;
255 MOFEM_LOG("EP", logSev)
256 << "Interface minimal kappa -interface_min_kappa = " << min_kappa;
257 MOFEM_LOG("EP", logSev)
258 << "Interface characteristic length kappa0 -interface_kappa0 = "
259 << kappa0;
260 MOFEM_LOG("EP", logSev)
261 << "Interface tangential coupling -interface_beta = " << beta;
262
263 if (strength > 0) {
264 double kappa_strength =
265 GriffithCohesiveLaw::invTau(static_cast<double>(strength), defaultGc);
266 min_kappa = std::max(min_kappa, kappa_strength);
267 MOFEM_LOG("EP", logSev)
268 << "Adjusted interface min kappa to capture strength = " << min_kappa;
269 }
270
272 }
#define CHKERR
Inline error check.
#define MOFEM_LOG(channel, severity)
Log.
static auto invTau(const T &tau, double Gf)

Member Data Documentation

◆ beta

double EshelbianPlasticity::OpGetParameters::beta = 1
inlinestatic

Definition at line 223 of file EshelbianCohesive.cpp.

◆ defaultGc

double EshelbianPlasticity::OpGetParameters::defaultGc = 1.0
private

Definition at line 274 of file EshelbianCohesive.cpp.

◆ gcPtr

boost::shared_ptr<double> EshelbianPlasticity::OpGetParameters::gcPtr
private

Definition at line 275 of file EshelbianCohesive.cpp.

◆ kappa0

double EshelbianPlasticity::OpGetParameters::kappa0 = 1
inlinestatic

Definition at line 222 of file EshelbianCohesive.cpp.

◆ logSev

Sev EshelbianPlasticity::OpGetParameters::logSev
private

Definition at line 276 of file EshelbianCohesive.cpp.

◆ min_kappa

double EshelbianPlasticity::OpGetParameters::min_kappa = 1e-12
inlinestatic

Definition at line 220 of file EshelbianCohesive.cpp.

◆ min_stiffness

double EshelbianPlasticity::OpGetParameters::min_stiffness = 1e-2
inlinestatic

Definition at line 221 of file EshelbianCohesive.cpp.

◆ strength

double EshelbianPlasticity::OpGetParameters::strength = -1
inlinestatic

Definition at line 219 of file EshelbianCohesive.cpp.


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