![]() |
GranOO
3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
|
a bond model that represents an Hertzian contact (non linear contact) More...
#include <HertzSpring.hpp>

Public Member Functions | |
| HertzSpring (Element &el1, Element &el2) | |
| constructor More... | |
| HertzSpring (Element &el1, Element &el2, double young_modulus, double poisson_ratio) | |
| constructor More... | |
| virtual | ~HertzSpring () |
| destructor More... | |
| void | init () |
| initialize the hertzspring More... | |
| void | process () |
| compute the reaction force (no torque) More... | |
| virtual void | update () |
| virtual void | compute_load () |
| trigger the computing of the reaction force and torque More... | |
| virtual double | get_linear_stiffness () const |
| compute the linear stiffness of the bond More... | |
| virtual double | get_angular_stiffness () const |
| similar as get_linear_stiffness() for rotation (zero for a Hertzian spring) More... | |
| virtual double | compute_critical_time_step () const |
| compute the critical time of the bond More... | |
| virtual std::string | info () const |
| Display some useful info in the terminal More... | |
Public Member Functions inherited from GranOO3::DEM::Bond | |
| Bond (Element &el1, Element &el2, bool contact=false) | |
| Constructor. More... | |
| virtual | ~Bond ()=0 |
| Destructor. More... | |
| virtual void | draw () |
| OpenGL draw of the bond More... | |
| Element & | get_item1 () |
| const Element & | get_item1 () const |
| Element & | get_item2 () |
| const Element & | get_item2 () const |
| Element & | item1 () |
| Element & | item2 () |
| double | get_normal_force_intensity () const |
| double | get_tangential_force_intensity () const |
| Element & | bonded_element (const Element &) |
| get the bonded element More... | |
| const Element & | get_bonded_element (const Element &) const |
| same as bonded_element(const Element&) (provided for convenience) More... | |
| void | apply_linear_damping_factor () |
| compute and apply the linear (translation) damping factor of the bond More... | |
| void | apply_angular_damping_factor () |
| similar as apply_linear_damping_factor() for rotation More... | |
| void | apply_load () |
| apply the computed reaction force and torque to the bonded Element (_element1 and _element2) More... | |
| void | disable (bool manage_slave=true) |
| disable the bond More... | |
| void | disable_fast_mode (bool manage_slave=true) |
| simply disable the bond by switching the _disabled attribute to true without doing the lot of things done by the disable() method More... | |
| void | enable (bool manage_slave=true) |
| simply enable the bond by switching the _disabled attribute to false More... | |
| bool | is_disabled () const |
| check if the bond is enable or not More... | |
| void | crack (bool manage_slave=true) |
| void | uncrack (bool manage_slave=true) |
| bool | is_cracked () const |
| void | init_local_frame (bool update_initial_param=false) |
| initialize the bond local frame More... | |
| void | update_local_frame () |
| update the bond local frame More... | |
| void | update_current_length () |
| update the current value of the bond length (see _current_length attribute) More... | |
| void | build_voronoi_bond () |
| build a voronoi bond from the current bond More... | |
| virtual void | stiffness_matrix (Eigen::MatrixXd &kMatrix) |
| assemble a stiffness matrix More... | |
| virtual void | update_dof () |
| update the bond dof More... | |
| const std::vector< unsigned int > & | get_dof () const |
| get the dof vector More... | |
| const Geom::Point & | initial_pos (const Element &) const |
get the initial position of the el element More... | |
| Geom::Vector | get_disp (const Element &) const |
get the displacement of the el element More... | |
| Geom::Vector | get_disp1 () const |
| get the displacement of the first bonded element (_element1) More... | |
| Geom::Vector | get_disp2 () const |
| similar as get_disp1() More... | |
| void | swap (Element &from, Element &to) |
swap the bond from the Element from to to More... | |
| void | add_slave (Bond &b) |
| add a slave bond (useful for periodic simulation) More... | |
| virtual std::ostream & | export_to_povray (std::ostream &out) const |
| exporting to povray format More... | |
Public Member Functions inherited from GranOO3::Physic::BodyInteraction | |
| BodyInteraction (Body &b1, Body &b2, bool contact_interaction) | |
| constructor More... | |
| virtual | ~BodyInteraction () |
| destructor More... | |
| void | apply_torque () |
| apply the current torque value More... | |
| void | clear_torque () |
| set the torques to zero More... | |
| Geom::Vector & | torque_on (const Body &b) |
get the torque value applied on b More... | |
| const Geom::Vector & | torque_on (const Body &b) const |
| same as BodyInteraction::torque_on More... | |
| void | add_label_torque (const std::string &label, const Geom::Vector &t1, const Geom::Vector &t2) |
| add a label for the torque More... | |
| void | swap (Body &from, Body &to) |
| swap one body More... | |
Public Member Functions inherited from GranOO3::Physic::NodeInteraction | |
| NodeInteraction (Node &de1, Node &de2, bool build_node_interaction) | |
| virtual | ~NodeInteraction () |
| bool | contact_interaction () const |
| void | apply_force () |
| void | clear_force () |
| Geom::Vector & | force_on (const Node &) |
| const Geom::Vector & | force_on (const Node &) const |
| void | swap (Node &from, Node &to) |
| virtual std::ostream & | write_ascii (std::ostream &out) const |
| void | add_label_force (const std::string &label, const Geom::Vector &f1, const Geom::Vector &f2) |
Public Member Functions inherited from GranOO3::Core::Base | |
| virtual | ~Base () |
| size_t | numID () const |
| size_t | uID () const |
| void | set_numID (size_t val) |
| void | clear_numID () |
| Physic::Material & | get_mat () const |
| void | set_mat (Physic::Material *) |
| Base & | item () |
| const Base & | item () const |
| bool | is_same (const Base &) const |
| template<class T > | |
| T & | cast_to () |
| template<class T > | |
| const T & | cast_to () const |
| template<class T > | |
| bool | is () const |
| virtual bool | is (size_t) const |
| virtual const std::string & | get_ID () const |
| virtual Base & | clone () |
| template<class T > | |
| T & | clone_to () |
| virtual std::istream & | read_ascii (std::istream &in) |
| Signal< Base & > & | deleted_signal () |
Public Member Functions inherited from GranOO3::Core::Null | |
| Null () | |
| virtual | ~Null () |
Public Member Functions inherited from GranOO3::Core::Drawable | |
| Drawable () | |
| virtual | ~Drawable () |
| virtual void | draw_edge () |
| virtual void | init_default_color () |
| virtual std::ostream & | get_info (std::ostream &os) const |
| virtual const Color & | default_color () const |
| Color & | get_color () |
| const Color & | get_color () const |
| virtual void | set_color (const Color &) |
| virtual void | set_alpha (float alpha) |
| void | apply_color () const |
| void | apply_edge_color () const |
| void | apply_default_color () |
| void | apply_selected_color () |
| void | set_line_width (float) |
| float | get_line_width () const |
| float & | get_line_width () |
| void | apply_line_width () const |
| bool | is_visible () const |
| void | set_visible (bool) |
| void | paint () |
| void | paint_edge () |
| unsigned int | get_item_glkey () const |
Public Member Functions inherited from GranOO3::Core::Register< Base > | |
| Register () | |
| virtual | ~Register () |
| void | erase_from_all_setof () |
| bool | belong_to_setof (const std::string &setOfId) const |
| bool | belong_to_setof (const SetOf< Base > &set) const |
| std::list< SetOf< Base > * > & | get_setof_list () |
| unsigned long long int | get_numeric_ID () const |
Public Member Functions inherited from GranOO3::Core::Register< NodeInteraction > | |
| Register () | |
| virtual | ~Register () |
| void | erase_from_all_setof () |
| bool | belong_to_setof (const std::string &setOfId) const |
| bool | belong_to_setof (const SetOf< NodeInteraction > &set) const |
| std::list< SetOf< NodeInteraction > * > & | get_setof_list () |
| unsigned long long int | get_numeric_ID () const |
Public Member Functions inherited from GranOO3::Core::Register< BodyInteraction > | |
| Register () | |
| virtual | ~Register () |
| void | erase_from_all_setof () |
| bool | belong_to_setof (const std::string &setOfId) const |
| bool | belong_to_setof (const SetOf< BodyInteraction > &set) const |
| std::list< SetOf< BodyInteraction > * > & | get_setof_list () |
| unsigned long long int | get_numeric_ID () const |
Public Member Functions inherited from GranOO3::Core::PropClass< Bond > | |
| PropClass () | |
| virtual | ~PropClass () |
| T & | new_object () |
| T & | get () |
| const T & | get () const |
| bool | prop_exist () const |
| void | add_prop (Core::Prop< Bond > *) |
| void | remove_prop (Core::Prop< Bond > *) |
| std::string | info () const |
Public Member Functions inherited from GranOO3::Core::Register< Bond > | |
| Register () | |
| virtual | ~Register () |
| void | erase_from_all_setof () |
| bool | belong_to_setof (const std::string &setOfId) const |
| bool | belong_to_setof (const SetOf< Bond > &set) const |
| std::list< SetOf< Bond > * > & | get_setof_list () |
| unsigned long long int | get_numeric_ID () const |
Public Member Functions inherited from GranOO3::Core::Register< HertzSpring > | |
| Register () | |
| virtual | ~Register () |
| void | erase_from_all_setof () |
| bool | belong_to_setof (const std::string &setOfId) const |
| bool | belong_to_setof (const SetOf< HertzSpring > &set) const |
| std::list< SetOf< HertzSpring > * > & | get_setof_list () |
| unsigned long long int | get_numeric_ID () const |
Private Member Functions | |
| HertzSpring ()=delete | |
| HertzSpring (const HertzSpring &)=delete | |
| HertzSpring & | operator= (const HertzSpring &)=delete |
| template<class Archive > | |
| void | serialize (Archive &, const unsigned int) |
| complete serializing of the bond in the *.gdd format More... | |
Private Attributes | |
| double | _young_modulus |
| the Young's modulus value of the bond in [Pa] More... | |
| double | _poisson_ratio |
| the Poisson's ratio of the bond in [-] More... | |
| Geom::Vector | _direction |
| the current normal direction of the Hertz spring More... | |
| Geom::Vector | _force |
| the current normal force of the Hertz spring More... | |
| double | _equivalent_radius |
| the equivalent radius of the Hertz spring More... | |
| double | _stiffness |
| the equivalent stiffness of the Hertz spring More... | |
| double | _contact_radius |
| the contact radius of the Hertz spring More... | |
| double | _contact_surface |
| the contact surface of the Hertz spring More... | |
Friends | |
| class | boost::serialization::access |
Additional Inherited Members | |
Public Types inherited from GranOO3::DEM::Bond | |
| enum | FailureMode { NONE =0 , TENSION =1 , COMPRESSION =2 , SHEAR =3 } |
| enum | DrawMode { SOLID , LINE , NO } |
Static Public Member Functions inherited from GranOO3::DEM::Bond | |
| static double | get_disabled_cumulative_surface () |
| get the total surface disabled surface More... | |
Static Public Member Functions inherited from GranOO3::Core::Base | |
| static Base & | get_by_numID (size_t) |
| static void | clear_all_numID () |
| static unsigned int | get_sub_class_number () |
Static Public Member Functions inherited from GranOO3::Core::Drawable | |
| static Drawable & | get_drawable_item_by_glkey (int) |
| static void | set_draw_precision (unsigned int p) |
| static void | increase_draw_precision () |
| static void | decrease_draw_precision () |
| static unsigned int | get_draw_precision () |
Static Public Member Functions inherited from GranOO3::Physic::CriticalTimeStep | |
| static const std::set< CriticalTimeStep * > & | get_all () |
Static Public Attributes inherited from GranOO3::DEM::Bond | |
| static double | epsilon |
| a very small value used as a threshold More... | |
| static double | draw_solid_factor |
| static DrawMode | draw_mode = LINE |
| static Core::Signal< Bond & > | disable_signal = Core::Signal<Bond&>() |
| get the signal when a bond is disabled More... | |
Static Public Attributes inherited from GranOO3::Core::Null | |
| static Null | null = Null() |
Protected Member Functions inherited from GranOO3::DEM::Bond | |
| template<class Archive > | |
| void | save (Archive &, const unsigned int) const |
| template<class Archive > | |
| void | load (Archive &, const unsigned int) |
| BOOST_SERIALIZATION_SPLIT_MEMBER () | |
Protected Member Functions inherited from GranOO3::Core::Base | |
| Base () | |
Protected Member Functions inherited from GranOO3::Physic::CriticalTimeStep | |
| CriticalTimeStep () | |
| constructor More... | |
| virtual | ~CriticalTimeStep () |
| destructor More... | |
Static Protected Member Functions inherited from GranOO3::Core::Base | |
| static unsigned int | affect_class_rank_ID () |
Protected Attributes inherited from GranOO3::DEM::Bond | |
| Element * | _element1 |
| the first of the two bonded Element More... | |
| Element * | _element2 |
| the second of the two bonded Element More... | |
| double | _linear_damping_factor |
| the linear damping factor of the bond More... | |
| double | _angular_damping_factor |
| the angular damping factor of the bond More... | |
| double | _relaxed_length |
| the relaxed length of the bond. More... | |
| double | _current_length |
| the current length of the bond that correspond to the norm of the vector between the center of the bonded elements More... | |
| double | _max_relative_elongation |
| a threshold corresponding to a maximal admissible relative elongation (the longitudinal strain) More... | |
| double | _surface |
| this attribute stores the corresponding normal surface of the bond More... | |
| Core::SetOfBase< Bond > | _slave |
| a container that list the slave bond More... | |
| std::vector< unsigned int > | _dofs |
| a vector that stores the dof of the bond More... | |
Protected Attributes inherited from GranOO3::Physic::BodyInteraction | |
| Body * | _body1 |
| a pointer the first body More... | |
| Body * | _body2 |
| a pointer the second body More... | |
| Geom::Vector | _torque_on1 |
| the current value of the applied torque on the body 1 More... | |
| Geom::Vector | _torque_on2 |
| the current value of the applied torque on the body 2 More... | |
Protected Attributes inherited from GranOO3::Physic::NodeInteraction | |
| const bool | _contact_interaction |
| Node * | _node1 |
| Node * | _node2 |
| Geom::Vector | _force_on1 |
| Geom::Vector | _force_on2 |
Protected Attributes inherited from GranOO3::Core::PropClass< Bond > | |
| std::vector< Core::Prop< Bond > * > | _prop |
a bond model that represents an Hertzian contact (non linear contact)
constructor
| [in] | el1 | : the first bonded element |
| [in] | el2 | : the second bonded element |
Build a new hertzspring between the Element el1 and el2. Mechanical attributes are set to zero.
| GranOO3::DEM::HertzSpring::HertzSpring | ( | Element & | el1, |
| Element & | el2, | ||
| double | young_modulus, | ||
| double | poisson_ratio | ||
| ) |
constructor
| [in] | el1 | : the first bonded element |
| [in] | el2 | : the second bonded element |
| [in] | young_modulus | : the Young's modulus of the hertzspring in [Pa] |
| [in] | poisson_ratio | : the Poisson's ratio value of the beam |
Build a new hertzspring between the Element el1 and el2 with the required mechanical attributes.
|
virtual |
destructor
Destroy a hertzspring instance.
|
privatedelete |
|
privatedelete |
|
virtual |
compute the critical time of the bond
Note that this method computes on-the-fly the critical time step.
Implements GranOO3::Physic::CriticalTimeStep.
|
virtual |
trigger the computing of the reaction force and torque
Reimplemented from GranOO3::DEM::Bond.
|
virtual |
similar as get_linear_stiffness() for rotation (zero for a Hertzian spring)
Reimplemented from GranOO3::DEM::Bond.
|
virtual |
compute the linear stiffness of the bond
Reimplemented from GranOO3::DEM::Bond.
|
virtual |
Display some useful info in the terminal
Reimplemented from GranOO3::DEM::Bond.
| void GranOO3::DEM::HertzSpring::init | ( | ) |
initialize the hertzspring
This method is used to compute the _equivalent_radius of the hertzian contact
|
privatedelete |
| void GranOO3::DEM::HertzSpring::process | ( | ) |
compute the reaction force (no torque)
This method is used to update the force action on the tow bonded element
|
private |
|
virtual |
|
friend |
|
private |
the contact radius of the Hertz spring
|
private |
the contact surface of the Hertz spring
|
private |
the current normal direction of the Hertz spring
|
private |
the equivalent radius of the Hertz spring
|
private |
the current normal force of the Hertz spring
|
private |
the Poisson's ratio of the bond in [-]
|
private |
the equivalent stiffness of the Hertz spring
|
private |
the Young's modulus value of the bond in [Pa]