30 #ifndef _libDEM_Beam_hpp_
31 #define _libDEM_Beam_hpp_
66 Beam(
Element& el1,
Element& el2,
double young_mod,
double radius,
double poisson_ratio,
double max_stress = 0.);
67 Beam(
Element& el1,
Element& el2,
double young_mod,
double damping,
double radius,
double poisson_ratio,
double max_stress);
77 virtual std::string
info()
const;
81 GRANOO_ACCESS(radius ,
double,
_radius);
85 GRANOO_ACCESS_GET_COPY(section,
double, M_PI*
pow(
_radius,2));
86 GRANOO_ACCESS_GET_COPY(inertia,
double, M_PI*
pow(
_radius*2.,4)/64.);
104 template<
class Archive>
void save(Archive&,
const unsigned int )
const;
105 template<
class Archive>
void load(Archive&,
const unsigned int);
129 template<
class Archive>
void
131 ar << boost::serialization::base_object<Bond>(*
this);
143 template<
class Archive>
void
145 ar >> boost::serialization::base_object<Bond>(*
this);
169 #include <boost/serialization/version.hpp>
175 namespace serialization
178 template<
class Archive>
181 const unsigned int) {
188 template<
class Archive>
191 const unsigned int) {
204 GRANOO_CLASS_DECLARE_TPL(DEM::Beam);
BOOST_CLASS_VERSION(GranOO3::DEM::Beam, 0) namespace boost
Definition: Beam.hpp:170
Definition: SetOf.hpp:346
a bond beam that works in tension, compression, bending and torsion
Definition: Beam.hpp:53
double _S
for storing some intermediate values to speed-up the computation (normal surface)
Definition: Beam.hpp:124
static unsigned int _broken_beam_number
Definition: Beam.hpp:58
virtual void compute_load()
compute the reaction force and torque of the beam
Definition: Beam.cpp:99
void update_coeff_value()
Definition: Beam.cpp:87
virtual std::string info() const
Display some useful info in the terminal
Definition: Beam.cpp:227
double _max_stress
the maximal tensile stress of the beam in [Pa]
Definition: Beam.hpp:113
double _current_stress
the current maximal stress (including normal, bending and torsion stresses) in [Pa]
Definition: Beam.hpp:115
Beam(const Beam &frame)=delete
void save(Archive &, const unsigned int) const
complete serializing of the bond in the *.gdd format
Definition: Beam.hpp:130
double _Io
for storing some intermediate values to speed-up the computation (quadratic polar inertia)
Definition: Beam.hpp:124
static unsigned int get_broken_beam_number()
Definition: Beam.cpp:52
Beam & operator=(const Beam &)=delete
BOOST_SERIALIZATION_SPLIT_MEMBER()
virtual double compute_critical_time_step() const
compute the critical time of the bond
Definition: Beam.cpp:201
double _factor_Tt
for storing some intermediate values to speed-up the computation
Definition: Beam.hpp:124
double _young_modulus
the Young's modulus value of the beam in [Pa]
Definition: Beam.hpp:110
virtual double get_angular_stiffness() const
similar as get_linear_stiffness() for rotation
Definition: Beam.cpp:195
double _current_tensile_stress
the current tensile stress into the beam
Definition: Beam.hpp:116
double _current_normal_stress
the current maximal normal stress into the beam (sum of tensile and bending stresses)
Definition: Beam.hpp:119
double _poisson_ratio
the Poisson's ratio of the beam in [-]
Definition: Beam.hpp:112
virtual ~Beam()
Definition: Beam.cpp:83
virtual double get_linear_stiffness() const
compute the linear stiffness of the bond
Definition: Beam.cpp:190
double _factor_Fb
for storing some intermediate values to speed-up the computation
Definition: Beam.hpp:124
double _K
for storing some intermediate values to speed-up the computation (normal stiffness)
Definition: Beam.hpp:124
double _radius
the radius of the beam in [m]
Definition: Beam.hpp:111
double _factor_Tb
for storing some intermediate values to speed-up the computation
Definition: Beam.hpp:124
friend class boost::serialization::access
Definition: Beam.hpp:103
double _G
for storing some intermediate values to speed-up the computation (Coulomb's modulus)
Definition: Beam.hpp:124
void load(Archive &, const unsigned int)
complete serializing of the bond in the *.gdd format
Definition: Beam.hpp:144
double _Ig
for storing some intermediate values to speed-up the computation (quadratic inertia)
Definition: Beam.hpp:124
double _current_torsion_stress
the current maximal torsion stress into the beam
Definition: Beam.hpp:118
double _current_bending_stress
the current maximal bending stress into the beam
Definition: Beam.hpp:117
virtual void draw()
OpenGL draw of the bond
Definition: Beam.hpp:159
the base class for all bonds between discrete elements.
Definition: Bond.hpp:49
virtual void draw()
OpenGL draw of the bond
Definition: Bond.cpp:428
double _relaxed_length
the relaxed length of the bond.
Definition: Bond.hpp:209
a base class that represents an element
Definition: Element.hpp:55
pure virtual class for modeling classes able to compute a critical time step
Definition: CriticalTimeStep.hpp:50
Definition: Common.hpp:198
void save_construct_data(Archive &ar, const GranOO3::Core::Pair< type > *t, const unsigned int)
Definition: Pair.hpp:207
void load_construct_data(Archive &ar, GranOO3::Core::Pair< type > *t, const unsigned int)
Definition: Pair.hpp:217
T pow(const T v0, const T v1)
Definition: Exprtk.hpp:1491
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t t(t+t)") define_sfop3(16