v0.16.0
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 235 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 236 of file EshelbianCohesive.cpp.

237 : FaceElementForcesAndSourcesCore::UserDataOperator(NOSPACE, OPSPACE),
238 gcPtr(gc_ptr), logSev(severity) {
239 CHK_THROW_MESSAGE(getOptions(), "Failed to get EshelbianCohesive options");
240 }
#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 242 of file EshelbianCohesive.cpp.

243 {
245 *gcPtr = defaultGc;
247 }
#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 256 of file EshelbianCohesive.cpp.

256 {
258
259 PetscOptionsBegin(PETSC_COMM_WORLD, "interface_", "", "none");
260
261 CHKERR PetscOptionsScalar("-gc", "Griffith energy release rate", "",
262 defaultGc, &defaultGc, PETSC_NULLPTR);
263 CHKERR PetscOptionsScalar("-min_stiffness", "Minimal interface stiffness",
264 "", min_stiffness, &min_stiffness, PETSC_NULLPTR);
265 CHKERR PetscOptionsScalar("-strength", "Strength of interface", "",
266 strength, &strength, PETSC_NULLPTR);
267 CHKERR PetscOptionsScalar("-min_kappa",
268 "Minimal kappa to avoid singularity", "",
269 min_kappa, &min_kappa, PETSC_NULLPTR);
270 CHKERR PetscOptionsScalar("-kappa0", "Characteristic length kappa0", "",
271 kappa0, &kappa0, PETSC_NULLPTR);
272 CHKERR PetscOptionsScalar("-beta", "Cohesive tangential coupling", "",
273 beta, &beta, PETSC_NULLPTR);
274
275 PetscOptionsEnd();
276
277 MOFEM_LOG("EP", logSev)
278 << "Interface Griffith energy release rate Gc -interface_gc = "
279 << defaultGc;
280 MOFEM_LOG("EP", logSev)
281 << "Interface min stiffness -interface_min_stiffness = "
282 << min_stiffness;
283 MOFEM_LOG("EP", logSev)
284 << "Interface strength -interface_strength = " << strength;
285 MOFEM_LOG("EP", logSev)
286 << "Interface minimal kappa -interface_min_kappa = " << min_kappa;
287 MOFEM_LOG("EP", logSev)
288 << "Interface characteristic length kappa0 -interface_kappa0 = "
289 << kappa0;
290 MOFEM_LOG("EP", logSev)
291 << "Interface tangential coupling -interface_beta = " << beta;
292
293 if (strength > 0) {
294 const double kappa_strength = GriffithCohesiveLaw::invInitialStrength(
295 static_cast<double>(strength), defaultGc);
296 min_kappa = std::max(min_kappa, kappa_strength);
297 MOFEM_LOG("EP", logSev)
298 << "Adjusted interface min kappa for initial Mode-I strength = "
299 << min_kappa << ", resulting strength = "
301 }
302
304 }
#define CHKERR
Inline error check.
#define MOFEM_LOG(channel, severity)
Log.
static double invInitialStrength(double strength, double gc)
static double getInitialStrength(double kappa, double gc)

Member Data Documentation

◆ beta

double EshelbianPlasticity::OpGetParameters::beta = 1
inlinestatic

Definition at line 253 of file EshelbianCohesive.cpp.

◆ defaultGc

double EshelbianPlasticity::OpGetParameters::defaultGc = 1.0
private

Definition at line 306 of file EshelbianCohesive.cpp.

◆ gcPtr

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

Definition at line 307 of file EshelbianCohesive.cpp.

◆ kappa0

double EshelbianPlasticity::OpGetParameters::kappa0 = 1
inlinestatic

Definition at line 252 of file EshelbianCohesive.cpp.

◆ logSev

Sev EshelbianPlasticity::OpGetParameters::logSev
private

Definition at line 308 of file EshelbianCohesive.cpp.

◆ min_kappa

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

Definition at line 250 of file EshelbianCohesive.cpp.

◆ min_stiffness

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

Definition at line 251 of file EshelbianCohesive.cpp.

◆ strength

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

Definition at line 249 of file EshelbianCohesive.cpp.


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