v0.15.4
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 172 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 173 of file EshelbianCohesive.cpp.

174 : FaceElementForcesAndSourcesCore::UserDataOperator(NOSPACE, OPSPACE),
175 gcPtr(gc_ptr), logSev(severity) {
176 CHK_THROW_MESSAGE(getOptions(), "Failed to get EshelbianCohesive options");
177 }
#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 179 of file EshelbianCohesive.cpp.

180 {
182 *gcPtr = defaultGc;
184 }
#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 193 of file EshelbianCohesive.cpp.

193 {
195
196 PetscOptionsBegin(PETSC_COMM_WORLD, "interface_", "", "none");
197
198 CHKERR PetscOptionsScalar("-gc", "Griffith energy release rate", "",
199 defaultGc, &defaultGc, PETSC_NULLPTR);
200 CHKERR PetscOptionsScalar("-min_stiffness", "Minimal interface stiffness",
201 "", min_stiffness, &min_stiffness, PETSC_NULLPTR);
202 CHKERR PetscOptionsScalar("-strength", "Strength of interface", "",
203 strength, &strength, PETSC_NULLPTR);
204 CHKERR PetscOptionsScalar("-min_kappa",
205 "Minimal kappa to avoid singularity", "",
206 min_kappa, &min_kappa, PETSC_NULLPTR);
207 CHKERR PetscOptionsScalar("-kappa0", "Characteristic length kappa0", "",
208 kappa0, &kappa0, PETSC_NULLPTR);
209 CHKERR PetscOptionsScalar("-beta", "Cohesive tangential coupling", "",
210 beta, &beta, PETSC_NULLPTR);
211
212 PetscOptionsEnd();
213
214 MOFEM_LOG("EP", logSev)
215 << "Interface Griffith energy release rate Gc -interface_gc = "
216 << defaultGc;
217 MOFEM_LOG("EP", logSev)
218 << "Interface min stiffness -interface_min_stiffness = "
219 << min_stiffness;
220 MOFEM_LOG("EP", logSev)
221 << "Interface strength -interface_strength = " << strength;
222 MOFEM_LOG("EP", logSev)
223 << "Interface minimal kappa -interface_min_kappa = " << min_kappa;
224 MOFEM_LOG("EP", logSev)
225 << "Interface characteristic length kappa0 -interface_kappa0 = "
226 << kappa0;
227
228 if (strength > 0) {
229 double kappa_strength =
230 GriffithCohesiveLaw::invTau(static_cast<double>(strength), defaultGc);
231 min_kappa = std::max(min_kappa, kappa_strength);
232 MOFEM_LOG("EP", logSev)
233 << "Adjusted interface min kappa to capture strength = " << min_kappa;
234 }
235
237 }
#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 190 of file EshelbianCohesive.cpp.

◆ defaultGc

double EshelbianPlasticity::OpGetParameters::defaultGc = 1.0
private

Definition at line 239 of file EshelbianCohesive.cpp.

◆ gcPtr

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

Definition at line 240 of file EshelbianCohesive.cpp.

◆ kappa0

double EshelbianPlasticity::OpGetParameters::kappa0 = 1
inlinestatic

Definition at line 189 of file EshelbianCohesive.cpp.

◆ logSev

Sev EshelbianPlasticity::OpGetParameters::logSev
private

Definition at line 241 of file EshelbianCohesive.cpp.

◆ min_kappa

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

Definition at line 187 of file EshelbianCohesive.cpp.

◆ min_stiffness

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

Definition at line 188 of file EshelbianCohesive.cpp.

◆ strength

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

Definition at line 186 of file EshelbianCohesive.cpp.


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