29#ifndef RIGIDWALLPENALTY_H
30#define RIGIDWALLPENALTY_H
37 template<
DOF... D>
void set_handler() {
throw std::logic_error(
"not implemented"); }
56 RigidWallPenalty(
unsigned,
unsigned,
unsigned, vec&&, vec&&,
double,
unsigned);
57 RigidWallPenalty(
unsigned,
unsigned,
unsigned, vec&&, vec&&, vec&&,
double,
unsigned);
59 int process(
const shared_ptr<DomainBase>&)
override;
66template<>
inline void RigidWallPenalty::set_handler<DOF::U1>() {
76template<>
inline void RigidWallPenalty::set_handler<DOF::U1, DOF::U2>() {
86template<>
inline void RigidWallPenalty::set_handler<DOF::U1, DOF::U2, DOF::U3>() {
bool check_dof_definition< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:58
vec get_trial_displacement< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:145
vec get_incre_acceleration< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:123
vec get_trial_acceleration< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:117
vec get_trial_displacement< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:113
vec get_trial_velocity< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:147
vec get_incre_acceleration< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:155
vec get_trial_position< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:100
vec get_current_velocity< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:77
vec get_trial_velocity< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:115
vec get_trial_acceleration< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:149
vec get_trial_velocity< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:83
bool check_dof_definition< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:48
vec get_current_velocity< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:141
vec get_incre_acceleration< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:91
vec get_trial_position< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:69
bool check_dof_definition< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:53
vec get_trial_displacement< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:81
vec get_trial_position< DOF::U1, DOF::U2, DOF::U3 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:132
vec get_trial_acceleration< DOF::U1 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:85
vec get_current_velocity< DOF::U1, DOF::U2 >(const shared_ptr< Node > &t_node)
Definition: NodeHelper.hpp:109
A Constraint class.
Definition: Constraint.h:36
Definition: RigidWallPenalty.h:96
Definition: RigidWallPenalty.h:101
Definition: RigidWallPenalty.h:107
A RigidWall class.
Definition: RigidWallPenalty.h:35
Col< double >(* trial_acceleration_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:53
Col< double >(* trial_velocity_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:52
const vec origin
Definition: RigidWallPenalty.h:44
bool(* checker_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:47
void clear_status() override
Definition: RigidWallPenalty.cpp:75
const double alpha
Definition: RigidWallPenalty.h:41
Col< double >(* trial_displacement_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:51
Col< double >(* trial_position_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:50
void reset_status() override
Definition: RigidWallPenalty.cpp:77
const unsigned n_dim
Definition: RigidWallPenalty.h:39
int process(const shared_ptr< DomainBase > &) override
This method provides all necessary pieces of typical constraints/loads required, including additional...
Definition: RigidWallPenalty.cpp:40
const double length_b
Definition: RigidWallPenalty.h:45
const vec edge_a
Definition: RigidWallPenalty.h:43
void commit_status() override
Definition: RigidWallPenalty.cpp:73
const double length_a
Definition: RigidWallPenalty.h:45
Col< double >(* incre_acceleration_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:49
void set_handler()
Definition: RigidWallPenalty.h:37
Col< double >(* current_velocity_handler)(const shared_ptr< Node > &)
Definition: RigidWallPenalty.h:48
const vec outer_norm
Definition: RigidWallPenalty.h:44
const vec edge_b
Definition: RigidWallPenalty.h:43