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

#include <SinterNeck.hpp>

Inheritance diagram for GranOO3::DEM::SinterNeck:
Inheritance graph
[legend]

Public Member Functions

 SinterNeck (Element &el1, Element &el2)
 
virtual ~SinterNeck ()
 
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 More...
 
virtual double compute_critical_time_step () const
 a pure virtual method able to return the critical time step value More...
 
virtual void draw ()
 OpenGL draw of the bond
More...
 
virtual std::string info () const
 Display some useful info in the terminal
More...
 
void init_all ()
 
void update_T ()
 
void update_n ()
 
void update_r ()
 
void update_h ()
 
void update_vn ()
 
void update_a ()
 
virtual void update_delta_b ()=0
 
void force_neck_radius_to_zero ()
 
- Public Member Functions inherited from GranOO3::DEM::Bond
 Bond (Element &el1, Element &el2, bool contact=false)
 Constructor. More...
 
virtual ~Bond ()=0
 Destructor. More...
 
Elementget_item1 ()
 
const Elementget_item1 () const
 
Elementget_item2 ()
 
const Elementget_item2 () const
 
Elementitem1 ()
 
Elementitem2 ()
 
double get_normal_force_intensity () const
 
double get_tangential_force_intensity () const
 
Elementbonded_element (const Element &)
 get the bonded element More...
 
const Elementget_bonded_element (const Element &) const
 same as bonded_element(const Element&) (provided for convenience) More...
 
virtual void compute_load ()
 compute the reaction force and torque of the bond 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::Pointinitial_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::Vectortorque_on (const Body &b)
 get the torque value applied on b More...
 
const Geom::Vectortorque_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::Vectorforce_on (const Node &)
 
const Geom::Vectorforce_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::Materialget_mat () const
 
void set_mat (Physic::Material *)
 
Baseitem ()
 
const Baseitem () 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 Baseclone ()
 
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 Colordefault_color () const
 
Colorget_color ()
 
const Colorget_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< SinterNeck >
 Register ()
 
virtual ~Register ()
 
void erase_from_all_setof ()
 
bool belong_to_setof (const std::string &setOfId) const
 
bool belong_to_setof (const SetOf< SinterNeck > &set) const
 
std::list< SetOf< SinterNeck > * > & get_setof_list ()
 
unsigned long long int get_numeric_ID () const
 

Protected Attributes

double _T = 0.
 
double _a = 0.
 
double _a0 = 0.
 
double _h = 0.
 
double _r = 0.
 
double _h0 = 0.
 
double _vn = 0.
 
double _gamma_s = 1.72
 
double _omega = 1.18e-29
 
double _delta_b = 0.
 
const double k = 1.3806503e-23
 
const double R = 8.314
 
double _Fnv = 0.
 
double _Fna = 0.
 
Geom::Vector _n = Geom::Vector(0.,0.,0.)
 
- 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
 

Private Member Functions

 SinterNeck ()=delete
 
 SinterNeck (const SinterNeck &frame)=delete
 
SinterNeckoperator= (const SinterNeck &)=delete
 
template<class Archive >
void save (Archive &, const unsigned int) const
 
template<class Archive >
void load (Archive &, const unsigned int)
 
 BOOST_SERIALIZATION_SPLIT_MEMBER ()
 

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 Baseget_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 Drawableget_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 ()
 

Constructor & Destructor Documentation

◆ SinterNeck() [1/3]

GranOO3::DEM::SinterNeck::SinterNeck ( Element el1,
Element el2 
)

◆ ~SinterNeck()

GranOO3::DEM::SinterNeck::~SinterNeck ( )
virtual

◆ SinterNeck() [2/3]

GranOO3::DEM::SinterNeck::SinterNeck ( )
privatedelete

◆ SinterNeck() [3/3]

GranOO3::DEM::SinterNeck::SinterNeck ( const SinterNeck frame)
privatedelete

Member Function Documentation

◆ BOOST_SERIALIZATION_SPLIT_MEMBER()

GranOO3::DEM::SinterNeck::BOOST_SERIALIZATION_SPLIT_MEMBER ( )
private

◆ compute_critical_time_step()

double GranOO3::DEM::SinterNeck::compute_critical_time_step ( ) const
virtual

a pure virtual method able to return the critical time step value

Implements GranOO3::Physic::CriticalTimeStep.

◆ draw()

void GranOO3::DEM::SinterNeck::draw ( )
inlinevirtual

OpenGL draw of the bond

This method is used for fdrwaing the bond. It is used by the granoo-viewer vizualization tool

Reimplemented from GranOO3::DEM::Bond.

◆ force_neck_radius_to_zero()

void GranOO3::DEM::SinterNeck::force_neck_radius_to_zero ( )

◆ get_angular_stiffness()

double GranOO3::DEM::SinterNeck::get_angular_stiffness ( ) const
virtual

similar as get_linear_stiffness() for rotation

Reimplemented from GranOO3::DEM::Bond.

◆ get_linear_stiffness()

double GranOO3::DEM::SinterNeck::get_linear_stiffness ( ) const
virtual

compute the linear stiffness of the bond

Returns
the linear stiffness

This method must be overridden by child classes. Note that this method returns 0 if it is not overridden. This method is mainly used for find the most rigid bond in order to compute the optimal time step of a simulation.

Reimplemented from GranOO3::DEM::Bond.

◆ info()

std::string GranOO3::DEM::SinterNeck::info ( ) const
virtual

Display some useful info in the terminal

Reimplemented from GranOO3::DEM::Bond.

Reimplemented in GranOO3::DEM::SinterNeck_Viscous, GranOO3::DEM::SinterNeck_Rojek, and GranOO3::DEM::SinterNeck_Martin.

◆ init_all()

void GranOO3::DEM::SinterNeck::init_all ( )

◆ load()

template<class Archive >
void GranOO3::DEM::SinterNeck::load ( Archive &  ar,
const unsigned int  v 
)
private

◆ operator=()

SinterNeck& GranOO3::DEM::SinterNeck::operator= ( const SinterNeck )
privatedelete

◆ save()

template<class Archive >
void GranOO3::DEM::SinterNeck::save ( Archive &  ar,
const unsigned int  v 
) const
private

◆ update_a()

void GranOO3::DEM::SinterNeck::update_a ( )

◆ update_delta_b()

virtual void GranOO3::DEM::SinterNeck::update_delta_b ( )
pure virtual

◆ update_h()

void GranOO3::DEM::SinterNeck::update_h ( )

◆ update_n()

void GranOO3::DEM::SinterNeck::update_n ( )

◆ update_r()

void GranOO3::DEM::SinterNeck::update_r ( )

◆ update_T()

void GranOO3::DEM::SinterNeck::update_T ( )

◆ update_vn()

void GranOO3::DEM::SinterNeck::update_vn ( )

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Member Data Documentation

◆ _a

double GranOO3::DEM::SinterNeck::_a = 0.
protected

geometrical parameters

◆ _a0

double GranOO3::DEM::SinterNeck::_a0 = 0.
protected

◆ _delta_b

double GranOO3::DEM::SinterNeck::_delta_b = 0.
protected

sintering parameter

◆ _Fna

double GranOO3::DEM::SinterNeck::_Fna = 0.
protected

◆ _Fnv

double GranOO3::DEM::SinterNeck::_Fnv = 0.
protected

reaction forces

◆ _gamma_s

double GranOO3::DEM::SinterNeck::_gamma_s = 1.72
protected

material parameters

◆ _h

double GranOO3::DEM::SinterNeck::_h = 0.
protected

◆ _h0

double GranOO3::DEM::SinterNeck::_h0 = 0.
protected

◆ _n

Geom::Vector GranOO3::DEM::SinterNeck::_n = Geom::Vector(0.,0.,0.)
protected

unit direction vectors

◆ _omega

double GranOO3::DEM::SinterNeck::_omega = 1.18e-29
protected

◆ _r

double GranOO3::DEM::SinterNeck::_r = 0.
protected

◆ _T

double GranOO3::DEM::SinterNeck::_T = 0.
protected

environmental parameters

◆ _vn

double GranOO3::DEM::SinterNeck::_vn = 0.
protected

kinematic parameters

◆ k

const double GranOO3::DEM::SinterNeck::k = 1.3806503e-23
protected

physical constant

◆ R

const double GranOO3::DEM::SinterNeck::R = 8.314
protected

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