21 params.
addParam<std::vector<BoundaryName>>(
"contact_primary",
22 "Primary surface list for included contacts");
23 params.
addParam<std::vector<BoundaryName>>(
"contact_secondary",
24 "Secondary surface list for included contacts");
28 "List of indicators whether displaced mesh is used to define included contact");
29 params.
addParam<std::vector<BoundaryName>>(
"uncontact_primary",
30 "Primary surface list for excluded contacts");
31 params.
addParam<std::vector<BoundaryName>>(
"uncontact_secondary",
32 "Secondary surface list for excluded contacts");
34 "uncontact_displaced",
36 "List of indicators whether displaced mesh is used to define excluded contact");
38 "Whether to include all nodes on the contact surfaces");
39 params.
addClassDescription(
"Split-based preconditioner that partitions the domain into DOFs " 40 "directly involved in contact (on contact surfaces) and those " 47 _contact_pairs(getParam<BoundaryName, BoundaryName>(
"contact_primary",
"contact_secondary")),
48 _contact_displaced(getParam<
std::vector<
int>>(
"contact_displaced")),
50 getParam<BoundaryName, BoundaryName>(
"uncontact_primary",
"uncontact_secondary")),
51 _uncontact_displaced(getParam<
std::vector<
int>>(
"uncontact_displaced")),
55 mooseError(
"Primary and displaced contact lists must have matching sizes: ",
64 mooseError(
"Primary and displaced uncontact lists must have matching sizes: ",
79 const std::string dmprefix = prefix +
"dm_moose_";
93 po.
pairs.emplace_back(
opt +
"_displaced",
"yes");
108 po.
pairs.emplace_back(
opt +
"_displaced",
"yes");
114 po.
pairs.emplace_back(dmprefix +
"includeAllContactNodes",
virtual void setup(NonlinearSystemBase &nl, const std::string &prefix="-")
Moose::PetscSupport::PetscOptions & getPetscOptions()
oopt<< "-dm_moose_includeAllContactNodes";ohelp<< "Whether to include all nodes on the contact surfaces into the subsolver";LibmeshPetscCallQ(PetscOptionsBool(oopt.str().c_str(), ohelp.str().c_str(), "", PETSC_FALSE, &is_include_all_nodes, LIBMESH_PETSC_NULLPTR));dmm-> _include_all_contact_nodes
std::vector< std::pair< std::string, std::string > > pairs
FEProblemBase & _fe_problem
std::string stringify(const T &t)
static InputParameters validParams()
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
void ErrorVector unsigned int