15 #include "serac/serac_config.hpp"
17 #ifdef SERAC_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;
117 mfem::ParFiniteElementSpace& pressureSpace()
const;
124 void setPressure(
const FiniteElementState& pressure)
const;
131 int numPressureDofs()
const;
138 const mfem::Array<int>& inactiveDofs()
const;
146 const mfem::Array<int>& inactiveDofs(
const FiniteElementState& pressure)
const;
153 void evalJacobian(
bool eval)
const;
171 ContactOptions contact_opts_;
176 const mfem::ParGridFunction& current_coords_;
181 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)