21 #include "serac/serac_config.hpp"
24 #ifdef SERAC_USE_TRIBOL
70 const std::set<int>& bdry_attr_surf2,
ContactOptions contact_opts);
79 void update(
int cycle,
double time,
double& dt);
119 mfem::HypreParVector
mergedGaps(
bool zero_inactive =
false)
const;
147 void residualFunction(
const mfem::Vector& u_shape,
const mfem::Vector& u, mfem::Vector& r);
157 std::unique_ptr<mfem::BlockOperator>
jacobianFunction(mfem::HypreParMatrix* orig_J)
const;
170 void setPressures(
const mfem::Vector& merged_pressures)
const;
188 #ifdef SERAC_USE_TRIBOL
189 return !interactions_.empty();
195 #ifdef SERAC_USE_TRIBOL
201 const std::vector<ContactInteraction>& getContactInteractions()
const {
return interactions_; }
220 #ifdef SERAC_USE_TRIBOL
226 void updateDofOffsets()
const;
231 const mfem::ParMesh& mesh_;
237 const mfem::ParGridFunction* reference_nodes_;
239 #ifdef SERAC_USE_TRIBOL
243 mfem::ParGridFunction current_coords_;
248 std::vector<ContactInteraction> interactions_;
255 bool have_lagrange_multipliers_;
260 int num_pressure_dofs_;
268 mutable bool offsets_up_to_date_;
277 mutable mfem::Array<int> jacobian_offsets_;
287 mutable mfem::Array<int> pressure_dof_offsets_;
297 mutable mfem::Array<HYPRE_BigInt> global_pressure_dof_offsets_;
Class for encapsulating the dual vector space of a finite element space (i.e. the space of linear for...
This contains a class that represents the dual of a finite element vector space, i....
Accelerator functionality.