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::Strain Class Reference

a property for computing strain associated to DEM::Element More...

#include <Strain.hpp>

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

Public Member Functions

 Strain ()
 constructor More...
 
virtual ~Strain ()
 destructor More...
 
virtual std::string info () const
 Display some useful info in the terminal
More...
 
void init ()
 just clear (set to zero) the _displacement_gradient and the _strain_tensor attributes More...
 
void update_lsq (bool ignore_cracked_bond)
 update the strain tensors using the least quare method (lsq) More...
 
- Public Member Functions inherited from GranOO3::Core::Prop< Element >
 Prop ()
 
virtual ~Prop ()
 
Element & item ()
 
const Element & item () const
 
void set_item (Element &)
 
virtual void set_color (const Core::Color &)
 
Core::Colorget_color ()
 
float & get_line_width ()
 
virtual void add (SetOf< Prop< Element > > *)
 
virtual void erase (SetOf< Prop< Element > > *)
 
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< Strain >
 Register ()
 
virtual ~Register ()
 
void erase_from_all_setof ()
 
bool belong_to_setof (const std::string &setOfId) const
 
bool belong_to_setof (const SetOf< Strain > &set) const
 
std::list< SetOf< Strain > * > & 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 item in the *.gdd format More...
 

Private Attributes

Geom::Tensor _displacement_gradient
 the displacement gradient tensor (be aware, this tensor is not symmetrical) More...
 
Geom::SymTensor _strain_tensor
 the strain tensor which is the main result of this property More...
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Public Types inherited from GranOO3::Core::Prop< Element >
typedef Element 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< Element >
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 property for computing strain associated to DEM::Element

The aim of this DEM::Element property is to compute strains associated to DEM::Element. Here, the method used for computing strains is based on the least square method. More details can be found in this publication [1].

[1] Damien André, Jérémie Girardot and Cédric Hubert (2019). A novel DEM approach for modeling brittle elastic media based on distinct lattice spring model. Computer Methods in Applied Mechanics and Engineering.

Constructor & Destructor Documentation

◆ Strain()

GranOO3::DEM::Strain::Strain ( )

constructor

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

◆ ~Strain()

GranOO3::DEM::Strain::~Strain ( )
virtual

destructor

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

Member Function Documentation

◆ info()

std::string GranOO3::DEM::Strain::info ( ) const
inlinevirtual

Display some useful info in the terminal

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

◆ init()

void GranOO3::DEM::Strain::init ( )

just clear (set to zero) the _displacement_gradient and the _strain_tensor attributes

◆ serialize()

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

complete serializing of the item in the *.gdd format

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

◆ update_lsq()

void GranOO3::DEM::Strain::update_lsq ( bool  ignore_cracked_bond)

update the strain tensors using the least quare method (lsq)

This method both update the values of the _displacement_gradient and the _strain_tensor attributes using the moving least square method. Be aware, If the element has not enough bonded neighbors (less than 4), the _displacement_gradient and the _strain_tensor are cleared.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Member Data Documentation

◆ _displacement_gradient

Geom::Tensor GranOO3::DEM::Strain::_displacement_gradient
private

the displacement gradient tensor (be aware, this tensor is not symmetrical)

◆ _strain_tensor

Geom::SymTensor GranOO3::DEM::Strain::_strain_tensor
private

the strain tensor which is the main result of this property


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