GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Namespaces | Classes | Typedefs | Variables
GranOO3::DEM Namespace Reference

This namespace group the entire DEM library. More...

Namespaces

 PropUtil
 

Classes

class  Bond
 the base class for all bonds between discrete elements. More...
 
class  ContactDetection
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactLaw
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  DiscreteElement
 the discrete element is just a spherical Element with additional dedicated features More...
 
class  Domain
 singleton class mainly used for IO More...
 
class  ElementT
 a template class that model an element with a given shape More...
 
class  Element
 a base class that represents an element More...
 
class  NeighbourManager
 a util class for representing neighbouring (mainly DEM::Element) items More...
 
class  PeriodicBoundary
 a singleton virtual class for representing periodic boundaries More...
 
class  Plate
 
class  SupportShape
 a pure virtual class that represents a perfect shape associated with a collection of discrete element More...
 
class  SupportShapeBoundary
 a class that represents the discrete boundary of SupportShape More...
 
class  SupportShapeT
 a class that represents a perfect shape associated with a collection of discrete element More...
 
class  Tool
 a base class that represents a rigid body with various shape into a discrete element simulation More...
 
class  ToolT
 a class that represents a rigid body with various shape into a discrete element simulation More...
 
class  AttractiveSpring
 a bond spring that works only in tension More...
 
class  Beam
 a bond beam that works in tension, compression, bending and torsion More...
 
class  ContactBond
 this class is able to transform a regular contact into a bond More...
 
class  FlatBond
 a special bond that must be used with Voronoi domain in order to model a perfect elastic media More...
 
class  FlatBond_Ortho
 
class  HertzSpring
 a bond model that represents an Hertzian contact (non linear contact) More...
 
class  PlasticBeam
 a bond model that represents a beam able to handle plastic deformation. More...
 
class  PlasticBeamIT
 a bond model that represents a beam able to handle plastic deformation. More...
 
class  RepulsiveSpring
 a bond spring that works only in tension More...
 
class  SinterNeck
 
class  SinterNeck_Martin
 
class  SinterNeck_Rojek
 
class  SinterNeck_Viscous
 
class  Spring
 a bond spring More...
 
class  XBeam
 A bond XBeam that works in tension, compression, bending and torsion very similar to the Beam bond. More...
 
class  ContactDetection_Between2SetOf
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactDetection_FESurface
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactDetection_LCM
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactDetection_Raw
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactDetection_SupportShape
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactDetection_Tool
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  ContactLaw_Standard
 A class for managing contact with discrete elements (obsolete and not documented) More...
 
class  Full3D
 a singleton virtual class for representing periodic boundaries More...
 
class  BondElectrical
 
class  BondStrain
 a bond property able to associate and compute a full strain tensor to DEM::Bond
More...
 
class  BondStress
 a bond property able to associate and compute a full stress tensor to bonds. More...
 
class  BondVectorStress
 a bond property able to compute a stress vector. More...
 
class  Electrical
 a property for adding electrical physics to DEM::Element More...
 
class  Periodic
 a property for adding periodic behavior to DEM::Element More...
 
class  Strain
 a property for computing strain associated to DEM::Element More...
 
class  Stress
 a property for computing stress associated to DEM::Element More...
 
class  Thermal
 a property for adding thermal physics to DEM::Element More...
 
class  VoronoiBond
 a bond property which is dedicated to voronoi domain. More...
 

Typedefs

using ElementPair = Core::Pair< DEM::Element >
 this typedef is simply a shortcut to the Core::Pair<DEM::Element> class More...
 

Variables

static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 

Detailed Description

This namespace group the entire DEM library.

Variable Documentation

◆ desc [1/6]

const char* GranOO3::DEM::desc
static
Initial value:
= R"V0G0N(
The Between2SetOf broad_phase uses raw method to detect method between two
SetOf of DEM::DiscreteElement. Note that this algo is optimized for
DEM::DiscreteElement, you don't need a NarrowPhase approach.
### Info ###
+ Process on : `DEM::DiscreteElement`
+ Multithreaded : No (TODO)
+ Recommended section: Processing
+ Perf Critical : YES
### Required param ###
set_1 (string)
: The ID of the first SetOf `DEM::DiscreteElement`
set_2 (string)
: The ID of the second SetOf `DEM::DiscreteElement`
### Example ###
```
<... BroadPhase="Between2SetOf" set_1="Xmin" set_2="Boundary" .../>
```
)V0G0N"

◆ desc [2/6]

const char* GranOO3::DEM::desc
static
Initial value:
= R"V0G0N(
The Tool broad_phase method allows to detect contact between a
`DEM::Tool` and `DEM::DiscreteElement`.
Note that this version is optimized for DEM::DiscreteElement, so you
do not need a NarrowPhase approach in addition of this method.
### Info ###
+ Process on : `DEM::DiscreteElement` / `DEM::Tool`
+ Multithreaded : No
+ Recommended section: Processing
+ Perf Critical : Middle
### Required param ###
ToolID (string)
: Gives the support shape ID here for collision detection
### Optional param ###
Set (string, default:"Global")
: The `DEM::DiscreteElement` SetOf to perform the contact detection.
### Example ###
```
<.... BroadPhase="Tool" ToolID="Box" .../>
```
)V0G0N"

◆ desc [3/6]

const char* GranOO3::DEM::desc
static
Initial value:
= R"V0G0N(
The Lcm broad_phase method uses the Linked Cell algorithm [1] to search
contacts in the whole domain.
Note that this LCM version is optimized for DEM::DiscreteElement, so you
do not need a NarrowPhase approach in addition of this method.
### Info ###
+ Process on : `DEM::DiscreteElement`
+ Multithreaded : No (TODO)
+ Recommended section: Processing
+ Perf Critical : YES
### Optional param ###
K (float, default=1.004)
: The K factor is the expansion factor used to compute the cell lengths.
The default value (1.004) is optimized for monodisperse granular domain.
update_domain_dimensionEachIteration (int, default=1)
: This process is time consuming and you can choose if you want to
trigger it not at each time step.
Set (string, default:"Global")
: The SetOf to perform the contact detection.
### Example ###
```
<... BroadPhase="LCM" .../>
```
> [1] Welling, U., & Germano, G. (2011). Efficiency of linked cell algorithms.
> Computer Physics Communications, 182(3), 611-615.
)V0G0N"

◆ desc [4/6]

const char* GranOO3::DEM::desc
static
Initial value:
= R"V0G0N(
The Raw broad_phase method uses a really stupid and non-optimized method
to search contacts in the whole domain.
Note that this LCM version is designed for DEM::DiscreteElement, so you
do not need a NarrowPhase approach in addition of this method
### Info ###
+ Process on : `DEM::DiscreteElement`
+ Multithreaded : No
+ Recommended section: Processing
+ Perf Critical : YES
### Optional param ###
Set (string, default:"Global")
: If you use this option, the raw method is used in "mono-set" mode. It means
that contacts are searched inside this set.
### Example ###
```
<... BroadPhase="Raw" set_="Boundary" .../>
```
)V0G0N"

◆ desc [5/6]

const char* GranOO3::DEM::desc
static
Initial value:
= R"V0G0N(
The SupportShape `broad_phase` method allows to detect contact between a
DEM::SupportShape and DEM::DiscreteElement.
Note that this version is optimized for DEM::DiscreteElement, so you
do not need a NarrowPhase approach in addition of this method.
### Info ###
+ Process on : `DEM::DiscreteElement` / `DEM::SupportShape`
+ Multithreaded : No
+ Recommended section: Processing
+ Perf Critical : Middle
### Required param ###
SupportShapeID (string)
: Gives the support shape ID here for collision detection
### Optional param ###
Mode (string, default="INSIDE")
: Choose here if the discrete element are INSIDE or OUTSIDE the support shape.
Allowed values are "INSIDE" and "OUTSIDE"
Set (string, default:"Global")
: The `DEM::DiscreteElement` SetOf to perform the contact detection.
### Example ###
```
<... BroadPhase="SupportShape" SupportShapeID="Box" Mode="INSIDE" .../>
```
)V0G0N"

◆ desc [6/6]

const char* GranOO3::DEM::desc
static
Initial value:
= R"V0G0N(
The Tool broad_phase method allows to detect contact between a
`DEM::Tool` and `DEM::DiscreteElement`.
Note that this version is optimized for DEM::DiscreteElement, so you
do not need a NarrowPhase approach in addition of this method.
### Info ###
+ Process on : `DEM::DiscreteElement` / `DEM::Tool`
+ Multithreaded : No
+ Recommended section: Processing
+ Perf Critical : Middle
### Required param ###
ToolID (string)
: Gives the support shape ID here for collision detection
### Optional param ###
Set (string, default:"Global")
: The `DEM::DiscreteElement` SetOf to perform the contact detection.
### Example ###
```
<.... BroadPhase="Tool" ToolID="Box" .../>
```
)V0G0N"