GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Namespaces | Functions | Variables
ApplyFracture.cpp File Reference
#include <limits>
#include "GranOO3/DEM/Element.hpp"
#include "GranOO3/DEM/Bond.hpp"
#include "GranOO3/DEM/Bond/Beam.hpp"
#include "GranOO3/DEM/SupportShape.hpp"
#include "GranOO3/Core/Problem.hpp"
#include "GranOO3/Physic/Time.hpp"
#include "GranOO3/Math/UniRandom.hpp"
#include "GranOO3/PlugIn/ApplyFracture.hpp"
#include "GranOO3/DEM/Bond/PlasticBeam.hpp"

Namespaces

 GranOO3
 
 GranOO3::PlugIn
 This namespace group the entire PlugIn library.
 

Functions

 GranOO3::PlugIn::REGISTER_GRANOO_PLUGIN_DESC (ApplyFracture, desc)
 

Variables

static const char * desc
 

Variable Documentation

◆ desc

const char* desc
static
Initial value:
= R"V0G0N(
This PlugIn applied a specific fracture criterion to DEM::Element. Such a PlugIn must be used
in continuum media simulation with cohesive beam. Note that you probably must use
this PlugIn with the UPDATE-STRESS PlugIn because fracture criterion available in this
PlugIn use stress tensors which are computed with the UPDATE-STRESS PlugIn
### Info ###
+ Process on : `DEM::Element`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
FailureMode (string="BRITTLE" or "PLASTIC")
: Choose here the failure mode. Note that the plastic mode is experimental
### Optional param ###
MaxHydrostaticStress (float, default=0.)
: If this criterion is set, the failure computation is based on a
maximal hydrostatic stress value : 1/3 * (Sig_I + Sig_II + Sig_III)
MaxVonMisesStress (float, default=0.)
: If this criterion is set, the failure computation is based on a
maximal von mises stress value
MaxTrescaStress (float, default=0.)
: If this criterion is set, the failure computation is based on a
maximal Tresca stress value : (Sig_I - Sig_III)
MaxPrincipalStress (float, default=0.)
: If this criterion is set, the failure computation is based on a
maximal principal sress value : max(Sig_I, sig_II, Sig_III)
CriterionLaw (a list of math expression, default=none, separator=';')
: Instead of using MaxPrincipalCriterion, griffith_criterion and so on, you can
build your own expression. You can access to the principal stresses with the
`s1`, `s2` and `s3` variables. Note that `s1 > s2 > s3`.
For example, if you put `s1 > 10e6`, you set a max principal stress criterion
equal to 10 MPa. You can use the syntax allowed by [3], to build complex criterion
such as `s1 > 10e6 or s3 < -100e6`. In this case, a new criterion is added in compression.
CriterionVar (a list of variable and math expression, default=none, separator=';')
: If you use the 'CriterionLaw', you are probably interested by this feature. For example,
you can create variable here which can be re-used in the CriterionLaw.
For example, if you set 'C1=UniRnd(8e6,12e6);C2=UniRnd(-120e6,-80e6)', you create two new variables
with a uniform distribution applied on DEM::Element. Then you can reuse it inside the 'CriterionLaw'.
Note that each value of your criterion is stored in a std::vector of DEM::VirialStress object.
Set (string, default="Global")
: Set here the ID of the SetOf to apply the failure criterion
AddElementToCrackSet(bool, default=True)
: If set to true, the `DEM::Element` that reach the failure criterion
are added to a particular SetOf named "crack"
ApplyCriterionOn(string, default="CLOSEST")
: Only "ALL", "HALF_PLANE", "CLOSEST" values are allowed.
* ALL : the failure criterion is applied on all `DEM::Bond` connected with the `DEM::Element`
* HALF_PLANE : the failure criterion is applied on the half `DEM::Bond` connected with
the `DEM::Element`
* CLOSEST : the failure criterion is applied on only one `DEM::Bond` connected with the `DEM::Element`
HalfPlaneCoeff (float, default=0.)
: Here, you can choose the amount of removing. If you set 0, it corresponds to a plane. If you set
less than 0. it allows to break beside the plane. A good value for periodic domain is -0.5
### Example ###
```
<APPLY-FRACTURE Type="BRITTLE" ApplyOn="HALF_PLANE" HalfPlaneCoeff="-0.5"
MaxPrincipalStress="11.7e6" DeleteBrokenBond="False" Set="Master"/>
<APPLY-FRACTURE FailureMode="BRITTLE" Set="Breakable"
CriterionLaw="s1>C1 or s3<C2"
CriterionVar="C1=UniRnd(8e6,12e6);C2=UniRnd(-120e6,-80e6)"/>
```
### Simulation example ###
`00011_{lattice}{dem}{mechanical}{brittle}{beam}_TENSILE-TEST` and some other examples
that implement lattice/brittle/beam features
[1]: https://en.wikipedia.org/wiki/Virial_stress
[2]: Andre, D., Jebahi, M., Iordanoff, I., Charles, J. L., & Neauport, J. (2013). Using the discrete element method to simulate brittle fracture in the indentation of a silica glass with a blunt indenter. Computer Methods in Applied Mechanics and Engineering, 265, 136-147.
[3]: https://github.com/ArashPartow/exprtk
)V0G0N"