15 #include "smith/smith_config.hpp"
17 #ifdef SMITH_USE_TRIBOL
23 #include "tribol/common/Parameters.hpp"
39 class ContactInteraction {
52 ContactInteraction(
int interaction_id,
const mfem::ParMesh& mesh,
const std::set<int>& bdry_attr_surf1,
53 const std::set<int>& bdry_attr_surf2,
const mfem::ParGridFunction& current_coords,
54 ContactOptions contact_opts);
61 int getInteractionId()
const {
return interaction_id_; }
68 const ContactOptions& getContactOptions()
const {
return contact_opts_; }
75 FiniteElementDual forces()
const;
86 FiniteElementState pressure()
const;
97 FiniteElementDual gaps()
const;
110 std::unique_ptr<mfem::BlockOperator> jacobian()
const;
124 std::unique_ptr<mfem::BlockOperator> jacobianContribution()
const;
131 mfem::ParFiniteElementSpace& pressureSpace()
const;
138 void setPressure(
const FiniteElementState& pressure)
const;
145 int numPressureDofs()
const;
152 const mfem::Array<int>& inactiveDofs()
const;
160 const mfem::Array<int>& inactiveDofs(
const FiniteElementState& pressure)
const;
167 void evalJacobian(
bool eval)
const;
185 ContactOptions contact_opts_;
190 const mfem::ParGridFunction& current_coords_;
195 mutable mfem::Array<int> inactive_tdofs_;
This contains a class that represents the dual of a finite element vector space, i....
This file contains the declaration of structure that manages the MFEM objects that make up the state ...
Accelerator functionality.
ContactMethod
Methodology for enforcing contact constraints (i.e. how you form the constraint equations)