GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Public Member Functions | Private Member Functions | Private Attributes | List of all members
GranOO3::Physic::EnergyBalance Class Reference

#include <EnergyBalance.hpp>

Inheritance diagram for GranOO3::Physic::EnergyBalance:
Inheritance graph
[legend]

Public Member Functions

 EnergyBalance ()
 
 ~EnergyBalance ()
 
void enable ()
 
void disable ()
 
bool is_enable () const
 
void clear ()
 
template<typename T >
void clear_map (T &map)
 
void add_force_on (const Node &, const std::string &label, const Geom::Vector &force)
 
void add_torque_on (const Body &, const std::string &label, const Geom::Vector &torque)
 
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)
 
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)
 
double compute_kinetic_energy () const
 
void update ()
 
std::vector< double > value () const
 
std::vector< std::string > label () const
 
const std::map< std::string, double > & get_energy () const
 
const std::map< std::string, double > & get_energy_for (const Node &) const
 
const std::map< std::string, double > & get_energy_for (const NodeInteraction &) const
 
double get_total_energy_for (const Node &) const
 
double get_total_energy_for (const NodeInteraction &) const
 
void manage_disabled_interaction (const NodeInteraction &inter)
 

Private Member Functions

 EnergyBalance (const EnergyBalance &)=delete
 
EnergyBalanceoperator= (const EnergyBalance &)=delete
 

Private Attributes

std::map< const Node *, std::map< std::string, Geom::Vector > > _force
 
std::map< const Body *, std::map< std::string, Geom::Vector > > _torque
 
std::map< const NodeInteraction *, const std::map< std::string, Geom::Vector > * > _force_on1
 
std::map< const NodeInteraction *, const std::map< std::string, Geom::Vector > * > _force_on2
 
std::map< const BodyInteraction *, const std::map< std::string, Geom::Vector > * > _torque_on1
 
std::map< const BodyInteraction *, const std::map< std::string, Geom::Vector > * > _torque_on2
 
std::map< const Node *, std::map< std::string, double > > _node_energy
 
std::map< const NodeInteraction *, std::map< std::string, double > > _interaction_energy
 
std::map< std::string, double > _total_energy
 
bool _enable
 

Additional Inherited Members

- Static Public Member Functions inherited from GranOO3::Core::Singleton< EnergyBalance >
static bool exist ()
 
static EnergyBalance & get ()
 
static void instanciate ()
 
static void delete_me ()
 
- Protected Member Functions inherited from GranOO3::Core::Singleton< EnergyBalance >
 Singleton ()
 
virtual ~Singleton ()
 
- Static Protected Attributes inherited from GranOO3::Core::Singleton< EnergyBalance >
static EnergyBalance * _me
 

Constructor & Destructor Documentation

◆ EnergyBalance() [1/2]

GranOO3::Physic::EnergyBalance::EnergyBalance ( )

◆ ~EnergyBalance()

GranOO3::Physic::EnergyBalance::~EnergyBalance ( )

◆ EnergyBalance() [2/2]

GranOO3::Physic::EnergyBalance::EnergyBalance ( const EnergyBalance )
privatedelete

Member Function Documentation

◆ add_force_on()

void GranOO3::Physic::EnergyBalance::add_force_on ( const Node part,
const std::string &  label,
const Geom::Vector force 
)

◆ add_torque_on()

void GranOO3::Physic::EnergyBalance::add_torque_on ( const Body body,
const std::string &  label,
const Geom::Vector torque 
)

◆ clear()

void GranOO3::Physic::EnergyBalance::clear ( )

◆ clear_map()

template<typename T >
void GranOO3::Physic::EnergyBalance::clear_map ( T &  map)

◆ collect_interaction_force()

void GranOO3::Physic::EnergyBalance::collect_interaction_force ( const NodeInteraction inter,
const std::map< std::string, Geom::Vector > &  map_forceOn1,
const std::map< std::string, Geom::Vector > &  map_forceOn2 
)

◆ collect_interaction_torque()

void GranOO3::Physic::EnergyBalance::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 
)

◆ compute_kinetic_energy()

double GranOO3::Physic::EnergyBalance::compute_kinetic_energy ( ) const

◆ disable()

void GranOO3::Physic::EnergyBalance::disable ( )

◆ enable()

void GranOO3::Physic::EnergyBalance::enable ( )

◆ get_energy()

const std::map< std::string, double > & GranOO3::Physic::EnergyBalance::get_energy ( ) const

◆ get_energy_for() [1/2]

const std::map< std::string, double > & GranOO3::Physic::EnergyBalance::get_energy_for ( const Node part) const

◆ get_energy_for() [2/2]

const std::map< std::string, double > & GranOO3::Physic::EnergyBalance::get_energy_for ( const NodeInteraction inter) const

◆ get_total_energy_for() [1/2]

double GranOO3::Physic::EnergyBalance::get_total_energy_for ( const Node part) const

◆ get_total_energy_for() [2/2]

double GranOO3::Physic::EnergyBalance::get_total_energy_for ( const NodeInteraction inter) const

◆ is_enable()

bool GranOO3::Physic::EnergyBalance::is_enable ( ) const

◆ label()

std::vector< std::string > GranOO3::Physic::EnergyBalance::label ( ) const

◆ manage_disabled_interaction()

void GranOO3::Physic::EnergyBalance::manage_disabled_interaction ( const NodeInteraction inter)

◆ operator=()

EnergyBalance& GranOO3::Physic::EnergyBalance::operator= ( const EnergyBalance )
privatedelete

◆ update()

void GranOO3::Physic::EnergyBalance::update ( )

◆ value()

std::vector< double > GranOO3::Physic::EnergyBalance::value ( ) const

Member Data Documentation

◆ _enable

bool GranOO3::Physic::EnergyBalance::_enable
private

◆ _force

std::map<const Node*, std::map<std::string, Geom::Vector> > GranOO3::Physic::EnergyBalance::_force
private

◆ _force_on1

std::map<const NodeInteraction*, const std::map<std::string, Geom::Vector>*> GranOO3::Physic::EnergyBalance::_force_on1
private

◆ _force_on2

std::map<const NodeInteraction*, const std::map<std::string, Geom::Vector>*> GranOO3::Physic::EnergyBalance::_force_on2
private

◆ _interaction_energy

std::map<const NodeInteraction*, std::map<std::string, double> > GranOO3::Physic::EnergyBalance::_interaction_energy
private

◆ _node_energy

std::map<const Node*, std::map<std::string, double> > GranOO3::Physic::EnergyBalance::_node_energy
private

◆ _torque

std::map<const Body*, std::map<std::string, Geom::Vector> > GranOO3::Physic::EnergyBalance::_torque
private

◆ _torque_on1

std::map<const BodyInteraction*, const std::map<std::string, Geom::Vector>*> GranOO3::Physic::EnergyBalance::_torque_on1
private

◆ _torque_on2

std::map<const BodyInteraction*, const std::map<std::string, Geom::Vector>*> GranOO3::Physic::EnergyBalance::_torque_on2
private

◆ _total_energy

std::map<std::string, double> GranOO3::Physic::EnergyBalance::_total_energy
private

The documentation for this class was generated from the following files: