480 {
482 try {
483 moab::Core moab;
489 CHKERR meshsets->setMeshsetFromFile();
491 if (block.size() != 2 || !block.count("c10") || !block.count("k"))
493 "Space atom requires MAT_NEOHOOKEAN JSON block 1001 with c10,k");
496 PetscInt quadrature_order = 0;
497 PetscReal tolerance = 0., newton_tolerance = 0.;
499 &quadrature_order, nullptr);
501 &tolerance, nullptr);
503 "-auxiliary_space_newton_tolerance",
504 &newton_tolerance, nullptr);
505 if (quadrature_order < 4 || !std::isfinite(tolerance) || tolerance <= 0. ||
506 !std::isfinite(newton_tolerance) || newton_tolerance <= 0. ||
507 newton_tolerance >= tolerance)
509 "Space atom requires positive finite JSON tolerances and "
510 "quadrature order at least four");
511 CHKERR runSpaceAtom(parameters, quadrature_order, tolerance, newton_tolerance);
512 }
515 return 0;
516}
#define CATCH_ERRORS
Catch errors.
@ MOFEM_ATOM_TEST_INVALID
#define CHKERR
Inline error check.
PetscErrorCode PetscOptionsGetInt(PetscOptions *, const char pre[], const char name[], PetscInt *ivalue, PetscBool *set)
PetscErrorCode PetscOptionsGetReal(PetscOptions *, const char pre[], const char name[], PetscReal *dval, PetscBool *set)
static MoFEMErrorCode validateParameters(const Parameters ¶meters)
Check finite, strictly positive C10, K and representable mu = 2*C10.
static MoFEMErrorCode Initialize(int *argc, char ***args, const char file[], const char help[])
Initializes the MoFEM database PETSc, MOAB and MPI.
static MoFEMErrorCode Finalize()
Checks for options to be called at the conclusion of the program.
Deprecated interface functions.
std::map< std::string, double > getParamsFromBlockset(const std::string &type_name, int meshset_id) const
Interface for managing meshsets containing materials and boundary conditions.
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.