37 const shared_ptr<Element> object_i, object_j;
39 bool inertial =
false;
48 InteractionPair(
const shared_ptr<Element>&,
const shared_ptr<Element>&);
72 void initialize(
const shared_ptr<DomainBase>&);
74 virtual void apply(
bool,
const shared_ptr<Element>&)
const = 0;
75 virtual void apply(
bool,
const shared_ptr<InteractionPair>&)
const = 0;
79 static constexpr double four_third = 4. / 3.;
82 using Interaction::Interaction;
84 void apply(
bool,
const shared_ptr<Element>&)
const override {}
85 void apply(
bool,
const shared_ptr<InteractionPair>&)
const override;
89 std::set<unsigned> particles;
90 const double multiplier;
95 void apply(
bool,
const shared_ptr<Element>&)
const override;
96 void apply(
bool,
const shared_ptr<InteractionPair>&)
const override {}
Label objects that can be copied.
Definition Tag.h:73
CopyableTag(const CopyableTag &)=default
The DomainBase class is a template.
Definition DomainBase.h:94
A Element class.
Definition Element.h:118
Definition Interaction.h:88
void apply(bool, const shared_ptr< Element > &) const override
Definition Interaction.cpp:119
void apply(bool, const shared_ptr< InteractionPair > &) const override
Definition Interaction.h:96
Definition Interaction.h:78
void apply(bool, const shared_ptr< Element > &) const override
Definition Interaction.h:84
Definition Interaction.h:65
virtual void apply(bool, const shared_ptr< Element > &) const =0
void initialize(const shared_ptr< DomainBase > &)
Definition Interaction.cpp:49
std::weak_ptr< DomainBase > domain
Definition Interaction.h:67
virtual void apply(bool, const shared_ptr< InteractionPair > &) const =0
Definition Interaction.h:36
double effective_damping
Definition Interaction.h:46
double effective_mass
Definition Interaction.h:43
vec velocity_i() const
Definition Interaction.cpp:39
void set_dimension(const unsigned dim)
Definition Interaction.h:50
void set_inertial(const bool flag)
Definition Interaction.h:51
double effective_modulus
Definition Interaction.h:45
vec position_j() const
Definition Interaction.cpp:37
double effective_radius
Definition Interaction.h:44
double initial_gap() const
Definition Interaction.cpp:47
const uvec & dof_j() const
Definition Interaction.cpp:45
vec velocity_j() const
Definition Interaction.cpp:41
vec position_i() const
Definition Interaction.cpp:35
const uvec & dof_i() const
Definition Interaction.cpp:43