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 | Friends | List of all members
GranOO3::DEM::BondStress Class Reference

a bond property able to associate and compute a full stress tensor to bonds. More...

#include <BondStress.hpp>

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

Public Member Functions

 BondStress ()
 constructor More...
 
virtual ~BondStress ()
 destructor More...
 
virtual std::string info () const
 
void update_from_bond_strain_with_hook_law (double young_modulus, double poisson_ratio)
 compute the current values of the stress tensors More...
 
- Public Member Functions inherited from GranOO3::Core::Prop< Bond >
 Prop ()
 
virtual ~Prop ()
 
Bond & item ()
 
const Bond & item () const
 
void set_item (Bond &)
 
virtual void set_color (const Core::Color &)
 
Core::Colorget_color ()
 
float & get_line_width ()
 
virtual void add (SetOf< Prop< Bond > > *)
 
virtual void erase (SetOf< Prop< Bond > > *)
 
virtual std::ostream & write_ascii (std::ostream &out) const
 
virtual std::istream & read_ascii (std::istream &in)
 
- 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::ostream & export_to_povray (std::ostream &out) const
 
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 ()
 
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_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< type >
 Register ()
 
virtual ~Register ()
 
void erase_from_all_setof ()
 
bool belong_to_setof (const std::string &setOfId) const
 
bool belong_to_setof (const SetOf< type > &set) const
 
std::list< SetOf< type > * > & get_setof_list ()
 
unsigned long long int get_numeric_ID () const
 
- Public Member Functions inherited from GranOO3::Core::Register< BondStress >
 Register ()
 
virtual ~Register ()
 
void erase_from_all_setof ()
 
bool belong_to_setof (const std::string &setOfId) const
 
bool belong_to_setof (const SetOf< BondStress > &set) const
 
std::list< SetOf< BondStress > * > & get_setof_list ()
 
unsigned long long int get_numeric_ID () const
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int)
 complete serializing of the instance in the *.gdd format More...
 

Private Attributes

Geom::SymTensor _global_stress_tensor
 the stress tensor expressed in the global frame
More...
 
Geom::SymTensor _local_stress_tensor
 the stress tensor expressed in the local bond frame
More...
 
Geom::Vector _eigen_vector
 the eigen vector that represent the principal stresses More...
 
Geom::Quaternion _eigen_quaternion
 a quaternion that represents the rotation matrix that gives the diagonal stress tensor More...
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Public Types inherited from GranOO3::Core::Prop< Bond >
typedef Bond Owner
 
- 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 Attributes inherited from GranOO3::Core::Null
static Null null = Null()
 
- Protected Member Functions inherited from GranOO3::Core::Prop< Bond >
virtual Basebase_item ()
 
virtual const Basebase_item () const
 
void serialize (Archive &ar, const unsigned int)
 
- Protected Member Functions inherited from GranOO3::Core::Base
 Base ()
 
- Static Protected Member Functions inherited from GranOO3::Core::Base
static unsigned int affect_class_rank_ID ()
 

Detailed Description

a bond property able to associate and compute a full stress tensor to bonds.

The stresses are computed from the BondStrain value thanks to the Hook's law. Be aware, this property is VERY EXPERIMENTAL

Constructor & Destructor Documentation

◆ BondStress()

GranOO3::DEM::BondStress::BondStress ( )

constructor

Construct a new BondStress. Do not call this constructor. To build a new BondStress instance, you must create a new property by invoking the Bond::new_prop<BondStress>() method of the Bond class.

◆ ~BondStress()

GranOO3::DEM::BondStress::~BondStress ( )
virtual

destructor

Destruct a BondStress instance. Be aware, as BondStress is a property, you must not invoke destructor by yourself, it could lead to unexpected behavior. Note that the BondStress instances are automatically destructed when their associated Bonds are destructed.

Member Function Documentation

◆ info()

std::string GranOO3::DEM::BondStress::info ( ) const
inlinevirtual
Returns
some useful info about the instance

Reimplemented from GranOO3::Core::Prop< Bond >.

◆ serialize()

template<class Archive >
void GranOO3::DEM::BondStress::serialize ( Archive &  ar,
const unsigned int  version 
)
private

complete serializing of the instance in the *.gdd format

See also
the Domain classes to get additional info about I/O

◆ update_from_bond_strain_with_hook_law()

void GranOO3::DEM::BondStress::update_from_bond_strain_with_hook_law ( double  young_modulus,
double  poisson_ratio 
)

compute the current values of the stress tensors

Parameters
[in]young_modulus: the Young's modulus value of the continuous material (macroscopic value)
[in]poisson_ratio: the Poisson's ratio value of the continuous material (macroscopic value)

The stress tensor is computed thanks to the strain tensor computed by BondStrain. The stresses are simply computed with the Hook's law for isotropic material.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Member Data Documentation

◆ _eigen_quaternion

Geom::Quaternion GranOO3::DEM::BondStress::_eigen_quaternion
private

a quaternion that represents the rotation matrix that gives the diagonal stress tensor

Note that this quaternion is computed from the global frame (and not the local frame)

◆ _eigen_vector

Geom::Vector GranOO3::DEM::BondStress::_eigen_vector
private

the eigen vector that represent the principal stresses

◆ _global_stress_tensor

Geom::SymTensor GranOO3::DEM::BondStress::_global_stress_tensor
private

the stress tensor expressed in the global frame

◆ _local_stress_tensor

Geom::SymTensor GranOO3::DEM::BondStress::_local_stress_tensor
private

the stress tensor expressed in the local bond frame


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