30 #ifndef _LibPhysic_EnergyBalance_H
31 #define _LibPhysic_EnergyBalance_H
64 template<
typename T>
void clear_map(T& map);
71 const std::map<std::string, Geom::Vector>& map_forceOn1,
72 const std::map<std::string, Geom::Vector>& map_forceOn2);
75 const std::map<std::string, Geom::Vector>& map_torque_on1,
76 const std::map<std::string, Geom::Vector>& map_torque_on2);
82 std::vector<double>
value()
const;
83 std::vector<std::string>
label()
const;
85 const std::map<std::string, double>&
get_energy()
const;
98 std::map<const Node*, std::map<std::string, Geom::Vector> >
_force;
99 std::map<const Body*, std::map<std::string, Geom::Vector> >
_torque;
101 std::map<const NodeInteraction*, const std::map<std::string, Geom::Vector>*>
_force_on1;
102 std::map<const NodeInteraction*, const std::map<std::string, Geom::Vector>*>
_force_on2;
103 std::map<const BodyInteraction*, const std::map<std::string, Geom::Vector>*>
_torque_on1;
104 std::map<const BodyInteraction*, const std::map<std::string, Geom::Vector>*>
_torque_on2;
115 template<
typename T>
void
118 for (
auto& it2: it1.second)
Definition: Singleton.hpp:75
Definition: Vector.hpp:75
a class that represents a body
Definition: Body.hpp:43
a class that represents a generic physical interaction between two bodies
Definition: BodyInteraction.hpp:44
Definition: EnergyBalance.hpp:50
EnergyBalance()
Definition: EnergyBalance.cpp:37
std::map< const BodyInteraction *, const std::map< std::string, Geom::Vector > * > _torque_on2
Definition: EnergyBalance.hpp:104
std::map< std::string, double > _total_energy
Definition: EnergyBalance.hpp:109
std::map< const Body *, std::map< std::string, Geom::Vector > > _torque
Definition: EnergyBalance.hpp:99
bool _enable
Definition: EnergyBalance.hpp:112
std::map< const BodyInteraction *, const std::map< std::string, Geom::Vector > * > _torque_on1
Definition: EnergyBalance.hpp:103
std::map< const NodeInteraction *, const std::map< std::string, Geom::Vector > * > _force_on2
Definition: EnergyBalance.hpp:102
~EnergyBalance()
Definition: EnergyBalance.cpp:49
std::vector< double > value() const
Definition: EnergyBalance.cpp:270
void disable()
Definition: EnergyBalance.cpp:58
void update()
Definition: EnergyBalance.cpp:170
void collect_interaction_force(const NodeInteraction &inter, const std::map< std::string, Geom::Vector > &map_forceOn1, const std::map< std::string, Geom::Vector > &map_forceOn2)
Definition: EnergyBalance.cpp:74
EnergyBalance(const EnergyBalance &)=delete
EnergyBalance & operator=(const EnergyBalance &)=delete
std::map< const Node *, std::map< std::string, Geom::Vector > > _force
Definition: EnergyBalance.hpp:98
void collect_interaction_torque(const BodyInteraction &inter, const std::map< std::string, Geom::Vector > &map_torque_on1, const std::map< std::string, Geom::Vector > &map_torque_on2)
Definition: EnergyBalance.cpp:98
double get_total_energy_for(const Node &) const
Definition: EnergyBalance.cpp:307
void clear_map(T &map)
Definition: EnergyBalance.hpp:116
std::map< const NodeInteraction *, const std::map< std::string, Geom::Vector > * > _force_on1
Definition: EnergyBalance.hpp:101
double compute_kinetic_energy() const
Definition: EnergyBalance.cpp:162
void enable()
Definition: EnergyBalance.cpp:53
void add_torque_on(const Body &, const std::string &label, const Geom::Vector &torque)
Definition: EnergyBalance.cpp:153
void manage_disabled_interaction(const NodeInteraction &inter)
Definition: EnergyBalance.cpp:121
void add_force_on(const Node &, const std::string &label, const Geom::Vector &force)
Definition: EnergyBalance.cpp:143
std::map< const Node *, std::map< std::string, double > > _node_energy
Definition: EnergyBalance.hpp:106
std::map< const NodeInteraction *, std::map< std::string, double > > _interaction_energy
Definition: EnergyBalance.hpp:107
const std::map< std::string, double > & get_energy_for(const Node &) const
Definition: EnergyBalance.cpp:295
const std::map< std::string, double > & get_energy() const
Definition: EnergyBalance.cpp:290
std::vector< std::string > label() const
Definition: EnergyBalance.cpp:280
bool is_enable() const
Definition: EnergyBalance.cpp:63
void clear()
Definition: EnergyBalance.cpp:68
Definition: NodeInteraction.hpp:41
Definition: Common.hpp:198