29 #ifndef RIGIDWALLPENALTY_H 30 #define RIGIDWALLPENALTY_H 37 template<
DOF... D>
void set_handler() {
throw std::logic_error(
"not implemented"); }
48 Col<double> (*current_velocity_handler)(
const shared_ptr<Node>&) =
nullptr;
49 Col<double> (*incre_acceleration_handler)(
const shared_ptr<Node>&) =
nullptr;
50 Col<double> (*trial_position_handler)(
const shared_ptr<Node>&) =
nullptr;
51 Col<double> (*trial_displacement_handler)(
const shared_ptr<Node>&) =
nullptr;
52 Col<double> (*trial_velocity_handler)(
const shared_ptr<Node>&) =
nullptr;
53 Col<double> (*trial_acceleration_handler)(
const shared_ptr<Node>&) =
nullptr;
55 RigidWallPenalty(
unsigned,
unsigned,
unsigned, vec&&, vec&&,
double,
unsigned);
56 RigidWallPenalty(
unsigned,
unsigned,
unsigned, vec&&, vec&&, vec&&,
double,
unsigned);
58 int process(
const shared_ptr<DomainBase>&)
override;
65 template<>
inline void RigidWallPenalty::set_handler<DOF::U1>() {
75 template<>
inline void RigidWallPenalty::set_handler<DOF::U1, DOF::U2>() {
85 template<>
inline void RigidWallPenalty::set_handler<DOF::U1, DOF::U2, DOF::U3>() {
Col< double >(* incre_acceleration_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:49
Col< double >(* trial_velocity_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:52
Col< double >(* trial_displacement_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:51
const double length_b
Definition: RigidWallPenalty.h:45
void set_handler()
Definition: RigidWallPenalty.h:37
Col< double >(* trial_acceleration_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:53
void clear_status() override
Definition: RigidWallPenalty.cpp:75
A RigidWall class.
Definition: RigidWallPenalty.h:35
const double alpha
Definition: RigidWallPenalty.h:41
const vec outer_norm
Definition: RigidWallPenalty.h:44
void commit_status() override
Definition: RigidWallPenalty.cpp:73
void reset_status() override
Definition: RigidWallPenalty.cpp:77
const vec edge_a
Definition: RigidWallPenalty.h:43
bool(* checker_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:47
const double length_a
Definition: RigidWallPenalty.h:45
Definition: RigidWallPenalty.h:100
Definition: RigidWallPenalty.h:95
Definition: RigidWallPenalty.h:106
Col< double >(* trial_position_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:50
const vec edge_b
Definition: RigidWallPenalty.h:43
const unsigned n_dim
Definition: RigidWallPenalty.h:39
Col< double >(* current_velocity_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:48
int process(const shared_ptr< DomainBase > &) override
This method provides all necessary pieces of typical constraints/loads required, including additional...
Definition: RigidWallPenalty.cpp:40
RigidWallPenalty(unsigned, unsigned, unsigned, vec &&, vec &&, double, unsigned)
Definition: RigidWallPenalty.cpp:22
const vec origin
Definition: RigidWallPenalty.h:44
A Constraint class.
Definition: Constraint.h:36