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

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

Classes

class  AddVoltageSource
 
class  ApplyAngularVelocity
 
class  ApplyBondLoad
 
class  ApplyBondSurfaceIT
 
class  ApplyDensity
 
class  ApplyDisplacement
 
class  ApplyFEDisplacement
 
class  ApplyFELoad
 
class  ApplyFEMaterial
 
class  ApplyForce
 
class  ApplyFracture
 
class  ApplyGravity
 
class  ApplyLinearVelocity
 
class  ApplyMassScaling
 
class  ApplyOrientation
 
class  ApplyPeriodicCondition
 
class  ApplyRotation
 
class  ApplyTemperature
 
class  ApplyThermalExpansion
 
class  ApplyThermalExpansionAnisotropic
 
class  ApplyTorque
 
class  ApplyTranslation
 
class  BoundaryBox
 
class  BuildDelaunayElementPair
 
class  BuildElementPairSetFromElementSet
 
class  BuildGridDomain
 
class  BuildNeighbourElementPair
 
class  BuildVoronoiDomain
 
class  Check
 
class  ClearLoad
 
class  ComputeBondsurfaceIT
 
class  ComputeOptimalTimeStep
 
class  ComputeVolumeFraction
 
class  ConductCurrent
 
class  ConductHeat
 
class  ConductHeatWithFS
 
class  Convert
 
class  ConvertBondToElementPair
 
class  ConvertElementPairToBeam
 
class  ConvertElementPairToBond
 
class  ConvertElementPairToFlatBond
 
class  ConvertElementPairToFlatBond_Ortho
 
class  ConvertElementPairToHertzSpring
 
class  ConvertElementPairToPlasticBeam
 
class  ConvertElementPairToPlasticBeamIT
 
class  ConvertElementPairToSinterNeck_Martin
 
class  ConvertElementPairToSinterNeck_Rojek
 
class  ConvertElementPairToSinterNeck_Viscous
 
class  ConvertElementPairToSpring
 
class  ConvertElementPairToXBeam
 
class  CrackClusterTracking
 
class  DeformPeriodicBox
 
class  Delete
 
class  DeleteInconsistentVoronoiBond
 
class  DeleteUnbondedElement
 
class  DeleteUnbondedSlaveElement
 
class  DisplayInfo
 
class  EnergyBalance
 
class  Exit
 
class  ExportToPVD
 
class  InitElectricalProperties
 
class  InitPeriodicBond
 
class  InitThermalProperties
 
class  IntegrateAcceleration
 
class  InteractionHistogram
 
class  ManageCollision
 
class  MonitorExpression
 
class  MonitorItemNumber
 
class  MonitorStrain
 
class  NewExpression
 
class  NewFrame
 
class  NewGround
 
class  NewMaterial
 
class  NewMaterialCouple
 
class  NewPoint
 
class  NewQuaternion
 
class  NewSupportShape
 
class  NewTimeStep
 
class  NewTool
 
class  NewVariable
 
class  NewVector
 
class  PutInContact
 
class  ReadDomain
 
class  ReleaseElPowerAsHeat
 
class  ResetSensor
 
class  SaveDomain
 
class  SetOfOperator
 
class  SolverCD
 
class  SphApplyPressureForce
 
class  SphApplyViscousForce
 
class  SphClearInteraction
 
class  SphUpdateInteraction
 
class  SphUpdateLocalDensity
 
class  SphUpdatePressure
 
class  StaticSolve
 
class  Step
 
class  UpdateBondStrain
 
class  UpdateBondStress
 
class  UpdateBondVectorStress
 
class  UpdateStrain
 
class  UpdateStress
 
class  UpdateSupportShape
 
class  UpdateVoronoiDomain
 
class  VelocityVerletStep1
 
class  VelocityVerletStep2
 
class  WriteSensorData
 

Functions

 REGISTER_GRANOO_PLUGIN_DESC (AddVoltageSource, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyAngularVelocity, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyBondLoad, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyBondSurfaceIT, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyDensity, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyDisplacement, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyFEDisplacement, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyFELoad, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyFEMaterial, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyForce, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyFracture, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyGravity, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyLinearVelocity, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyMassScaling, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyOrientation, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyPeriodicCondition, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyRotation, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyTemperature, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyThermalExpansion, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyThermalExpansionAnisotropic, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyTorque, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ApplyTranslation, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (BoundaryBox, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (BuildDelaunayElementPair, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (BuildGridDomain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (BuildNeighbourElementPair, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (BuildVoronoiDomain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (Check, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ClearLoad, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ComputeBondsurfaceIT, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ComputeOptimalTimeStep, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ComputeVolumeFraction, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConductCurrent, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConductHeat, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConductHeatWithFS, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (Convert, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertBondToElementPair, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToBeam, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToFlatBond, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToFlatBond_Ortho, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToHertzSpring, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToPlasticBeam, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToPlasticBeamIT, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToSinterNeck_Martin, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToSinterNeck_Rojek, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToSinterNeck_Viscous, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToSpring, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ConvertElementPairToXBeam, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (CrackClusterTracking, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (DeformPeriodicBox, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (Delete, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (DeleteInconsistentVoronoiBond, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (DeleteUnbondedElement, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (DeleteUnbondedSlaveElement, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (DisplayInfo, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (EnergyBalance, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (Exit, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ExportToPVD, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (InitElectricalProperties, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (InitPeriodicBond, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (InitThermalProperties, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (IntegrateAcceleration, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (InteractionHistogram, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ManageCollision, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (MonitorExpression, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (MonitorItemNumber, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (MonitorStrain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewExpression, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewFrame, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewGround, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewMaterial, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewMaterialCouple, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewPoint, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewQuaternion, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewSupportShape, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewTimeStep, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewTool, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewVariable, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (NewVector, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (PutInContact, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ReadDomain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (ReleaseElPowerAsHeat, desc) ReleaseElPowerAsHeat
 
 REGISTER_GRANOO_PLUGIN_DESC (ResetSensor, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SaveDomain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SetOfOperator, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SolverCD, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SphApplyPressureForce, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SphApplyViscousForce, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SphClearInteraction, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SphUpdateInteraction, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SphUpdateLocalDensity, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (SphUpdatePressure, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (StaticSolve, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (Step, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateBondStrain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateBondStress, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateBondVectorStress, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateStrain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateStress, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateSupportShape, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (UpdateVoronoiDomain, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (VelocityVerletStep1, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (VelocityVerletStep2, desc)
 
 REGISTER_GRANOO_PLUGIN_DESC (WriteSensorData, desc)
 

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
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
static const char * desc
 
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 PlugIn library.

Function Documentation

◆ REGISTER_GRANOO_PLUGIN_DESC() [1/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [2/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [3/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [4/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [5/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [6/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [7/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [8/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [9/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [10/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [11/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [12/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [13/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [14/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [15/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [16/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [17/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [18/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [19/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [20/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [21/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [22/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [23/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [24/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [25/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [26/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [27/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [28/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [29/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [30/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [31/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [32/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [33/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [34/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [35/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [36/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [37/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [38/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [39/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [40/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [41/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [42/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [43/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [44/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [45/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [46/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [47/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [48/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [49/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [50/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [51/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [52/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [53/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [54/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [55/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [56/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [57/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [58/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [59/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [60/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [61/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [62/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [63/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [64/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [65/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [66/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [67/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [68/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [69/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [70/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [71/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [72/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [73/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [74/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [75/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [76/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [77/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [78/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [79/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [80/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [81/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [82/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [83/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [84/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [85/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [86/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [87/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [88/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [89/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [90/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [91/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [92/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [93/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [94/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [95/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [96/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [97/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [98/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [99/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [100/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [101/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [102/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [103/104]

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

◆ REGISTER_GRANOO_PLUGIN_DESC() [104/104]

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

Variable Documentation

◆ desc [1/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a voltage source in a `DEM::Element` domain between two
discrete elements sets. This plugin must be used in conjunction
with the INIT-ELECTRICAL-PROPERTIES and CONDUCT-CURRENT plugins.
### Info ###
+ Process on : `DEM::Element` set that own a `DEM::Electrical` property
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
GroundSetOf (string)
: The DE set Id which is grounded
PositiveSetOf (string)
: The DE set Id at which the voltage is applied
DCVoltage (float)
: Voltage magnitude applied between the GroundSetOf and the
Positive SetOf Discrete Elements sets
### Example ###
```
<ADD-VOLTAGE-SOURCE GroundSetOf="Box-xMin" PositiveSetOf="Box-xMax" DCVoltage="1.0"/>
```
### Simulation example ###
- `00042_{lattice}{electrical}{beam}_ELECTRICAL-CONDUCTION`
)V0G0N"

◆ desc [2/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Set the angular velocity of `Physic::Node` set. Note that the
linear acceleration and linear position are not affected.
### Info ###
+ Process on : `Physic::Node` set
+ Multithreaded : No
+ Recommended section: All
### Required param ###
X (float or expression)
: The X component value of the velocity
Y (float or expression)
: The Y component value of the velocity
Z (float or expression)
: The Z component value of the velocity
### Optional param ###
Set (string, default=global)
: The `Physic::Node` SetOf ID to apply the treatment
### Example ###
```
<APPLY-ANGULAR-VELOCITY X="0.1*t" Y="1." Z="0." Set="xMax"/>
```
### Simulation example ###
- No simulation example (TODO)
)V0G0N"

◆ desc [3/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Computes the loads (forces and/or torques) applied by `DEM::Bond` on
the two bonded elements. The calculation is based on the positions
and orientations newly computed for each discrete element.
Depending on the type of bond, torques are computed or not.
### Info ###
+ Process on : `DEM::Bond` set
+ Multithreaded : Yes
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `DEM::Bond` SetOf ID to apply the treatment
BuildCrack (boolean, default=True)
: If set to true, the plugin build new crack facets which are visible with viewer.
DeleteBond (boolean, default=True)
: If set to true, the plugin will delete all the disabled bond
ManageCrackedBond (boolean, default=True)
: If set to true, the plugin will manage the cracked bond (at this time only flat bond is concerned).
### Example ###
```
<APPLY-BOND-LOAD BuildElementPair="Yes" />
```
### Simulation example ###
`00010_{lattice}{dem}{mechanical}{elastic}{beam}_TENSILE-TEST` and all lattice examples
)V0G0N"

◆ desc [4/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin affect a surface to bonds. The method used here is coming from
Inigo Terreros idea [1]. This is an averaged method based on the global
coordination number and the mean radii value of discrete element. In such a
way all the bonds have the same surface value.
### Info ###
+ Process on : `DEM::DiscreteElement` and `DEM::Bond`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
Set (string, default=global)
: The `DEM::DiscreteElement` set to compute the average radius
CoordNumber (float, default=auto_compute)
: The global coordination number value. If you let it blanks, GranOO try
to compute a value automatically but it is preferable for you to put
manually the correct value.
AddBrokenSurfaceSensor (bool, default=True)
: If this flag is set to True, a sensor is added that monitors the
total broken surface (see DEM::Bond::get_disabled_cumulative_surface
method)
### Example ###
```
<APPLY-BOND-SURFACE-IT CoordNumber="10" AddBrokenSurfaceSensor="True"/>
```
### Simulation example ###
`00011_{lattice}{dem}{mechanical}{brittle}{beam}_TENSILE-TEST`
> [1] Terreros, I., Iordanoff, I., & Charles, J. L. (2013).
> Simulation of continuum heat conduction using DEM domains.
> Computational Materials Science, 69, 46-52.
)V0G0N"

◆ desc [5/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Set the density of a Physic::Body set
### Info ###
+ Process on : `Physic::Body` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Value (float)
: The value of the density
### Optional param ###
VolumeFraction (float, default=1.)
: This option is usefull when yo want to apply a continuous density.
The density (d) is computed with the volume fraction (vf) as d = 1 / vf
Set (string, default=global)
: The `Physic::Body` SetOf ID to apply the treatment
### Example ###
```
<APPLY-DENSITY Value="7000." Set="Box"/>
<APPLY-DENSITY Value="7000." VolumeFraction="0.5"/>
```
### Simulation example ###
`00013_{lattice}{dem}{mechanical}{brittle}{flatbond}_TENSILE-TEST` and a lot of others
)V0G0N"

◆ desc [6/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin applies a displacement on a specified `Physic::Node` set.
The imposed displacement is specified either by setting the imposed
displacement vector components X, Y and Z, or by setting parameter
_Clamp_ to Yes (which corresponds to X="0.", Y="0." and Z="0.").
In addition to numeric values, the imposed displacement vector also
accepts expression which can be set thought the _Expression_ XML Tag
(outline definition), or by direct typing of formula (inline definition).
The velocity and the acceleration are also affected by this plugin :
- velocity is set as the first derivative of the imposed displacement
- acceleration is set as the second derivative of the imposed displacement
### Info ###
+ Process on : `Physic::Node` set, `Physic::Ground` item
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
X (float or expression)
: The value on X. This option is NON required if _Clamp_ is set to true.
Y (float or expression)
: Same as above.
Z (float or expression)
: Same as above.
### Optional param ###
Clamp (bool, default=False)
: If set to true the imposed displacement is null and the _X_, _Y_, _Z_
options are non required
Set (string, default=global)
: The `Physic::Node` SetOf ID to apply the treatment
GroundID (string, default="")
: If GroundID is set, the displacement is applyed to a ground shape.
Note that a ground is also a DEM::SupportShape
RemoveInitialDisp (bool, default=False)
: If set to true the imposed displacement will take into account the initial
displacements. Initial means here the first time that the plugin is triggered.
### Example ###
```
<APPLY-DISPLACEMENT X="0." Y="1.3*t" Z="0."/>
<APPLY-DISPLACEMENT Clamp="Yes"/>
<APPLY-DISPLACEMENT X="0." Y="1.3*t" Z="0." GroundID="ground-plane"/>
```
### Simulation example ###
`00010_{lattice}{dem}{mechanical}{elastic}{beam}_TENSILE-TEST` and a lot of others
)V0G0N"

◆ desc [7/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin imposes a displacement on a specified `Physic::Node` set.
The imposed displacement is specified either by setting the imposed
displacement vector components X, Y and Z, or by setting parameter
_Clamp_ to Yes (which corresponds to X="0.", Y="0." and Z="0.").
In addition to numeric values, the imposed displacement vector also
accepts expression which can be set thought the _Expression_ XML Tag
(outline definition), or by direct typing of formula (inline definition).
The velocity and the acceleration are also affected by this plugin :
- velocity is set as the first derivative of the imposed displacement
- acceleration is set as the second derivative of the imposed displacement
### Info ###
+ Process on : `Physic::Node` set, `Physic::Ground` item
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
X (float or expression)
: The value on X. This option is NON required if _Clamp_ is set to true.
Y (float or expression)
: Same as above.
Z (float or expression)
: Same as above.
### Optional param ###
Clamp (bool, default=False)
: If set to true the imposed displacement is null and the _X_, _Y_, _Z_
options are non required
Set (string, default=global)
: The `Physic::Node` SetOf ID to apply the treatment
GroundID (string, default="")
: If GroundID is set, the displacement is applyed to a ground shape.
Note that a ground is also a DEM::SupportShape
### Example ###
```
<APPLY-FE-DISPLACEMENT X="0." Y="1.3*t" Z="0."/>
<APPLY-FE-DISPLACEMENT Clamp="Yes"/>
<APPLY-FE-DISPLACEMENT X="0." Y="1.3*t" Z="0." GroundID="ground-plane"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [8/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Apply a loading on FEM::Element.
### Info ###
+ Process on : `FEM::Element` set,
+ Multithreaded : No
+ Recommended section: ??
### Example ###
```
<APPLY-FE-LOAD />
```
### Simulation example ###
`00050_{fem}{mechanical}{elastic}_TENSILE-TEST` and some FEM examples
)V0G0N"

◆ desc [9/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Set the elastic and density property of FEM::Element set
### Info ###
+ Process on : `FEM::Element` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
YoungModulus (float)
: Set the Young's modulus value
PoissonRation (float)
: Set the Poisson's ratio value
Density (float)
: Set the density value
### Optional param ###
Set (string, default=global)
: The `FEM::Element` SetOf ID to apply the treatment
### Example ###
```
<APPLY-FE-MATERIAL YoungModulus="50e9" PoissonRatio="0.2" Density="3200"/>
```
### Simulation example ###
`00050_{fem}{mechanical}{elastic}_TENSILE-TEST` and other FEM examples
)V0G0N"

◆ desc [10/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Apply a force vector with components X, Y and Z to all the
`Physic::Node` of the associated SetOf. If Resultant option
is set to True, the provided vector components are divided
by the number of particle in the SetOf.
### Info ###
+ Process on : `Physic::Node` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
X (float or mathematical expression)
: The X value of the force vector.
Y (float or mathematical expression)
: The Y value of the force vector
Z (float or mathematical expression)
: The Z value of the force vector
### Optional param ###
Resultant (bool, default=False)
: If set to True the force value is divided by the number of discrete element.
Set (string, default=global)
: The `Physic::Node` SetOf ID to apply the force
### Example ###
```
<APPLY-FORCE X="100." Y="-1.*sin(it)" Z="0." Set="xMax"/>
```
### Simulation example ###
`00003_{tutorial}_SIMPLE-TENSILE-TEST` and some others
)V0G0N"

◆ desc [11/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Applies the gravity to all the `Physic::Node` of the associated SetOf.
The gravity is considered as a uniform vector field.
### Info ###
+ Process on : `Physic::Node`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
X (float)
: The X value of the gravity vector.
Y (float)
: The Y value of the gravity vector
Z (float)
: The Z value of the gravity vector
### Optional param ###
+ Set : (string, default=global)
The `Physic::Node` SetOf ID to apply the gravity
### Example ###
```
<APPLY-GRAVITY X="0." Y="-9.81" Z="0." Set="Global"/>
```
### Simulation example ###
`00104_{dem}{mechanical}{granular}_SPHERICAL-RAIN` and a lot of others
)V0G0N"

◆ desc [12/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Set the linear velocity of `Physic::Node` set. Note that the
linear acceleration and linear position are not affected.
### Info ###
+ Process on : `Physic::Node` set
+ Multithreaded : No
+ Recommended section: All
### Required param ###
X (float or expression)
: The X component value of the velocity
Y (float or expression)
: The Y component value of the velocity
Z (float or expression)
: The Z component value of the velocity
### Optional param ###
Set (string, default=global)
: The `Physic::Node` SetOf ID to apply the treatment
### Example ###
```
<APPLY-LINEAR-VELOCITY X="0.1*t" Y="1." Z="0." Set="xMax"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [13/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Set the density of a Physic::Body set
### Info ###
+ Process on : `Physic::Body` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Value (float)
: The value of the density
### Optional param ###
Set (string, default=global)
: The `Physic::Body` SetOf ID to apply the treatment
### Example ###
```
<APPLY-MASS-SCALING Value="1e10."/>
```
### Simulation example ###
TODO
)V0G0N"

◆ desc [14/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin imposes an orientation on a specified `Physic::Body` set.
The imposed orientation is specified either by setting the imposed
orientation quaternion components X, Y, Z, and R. or by setting parameter
_Clamp_ to Yes (which corresponds to X="0.", Y="0.", Z="0." and R="1.").
In addition to numeric values, the imposed displacement vector also
accepts expression which can be set thought the _Expression_ XML Tag
(outline definition), or by direct typing of formula (inline definition).
The angular velocity and acceleration are also affected by this plugin.
### Info ###
+ Process on : `Physic::Body` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
X (float or expression)
: The value on X. This option is NON required if _Clamp_ is set to true.
Y (float or expression)
: Same as above.
Z (float or expression)
: Same as above.
R (float or expression)
: Same as above.
### Optional param ###
Clamp (bool, default=False)
: If set to true the imposed displacement is null and the _X_, _Y_, _Z_, _R_
options are non required
Set (string, default=global)
: The Physic::Body SetOf ID to apply the treatment
### Example ###
```
<APPLY-ORIENTATION Clamp="Yes"/>
```
### Simulation example ###
`00031_{lattice}{dem}{mechanical}{elastic}{beam}_BOUNCING-BALL-v0` and some others
)V0G0N"

◆ desc [15/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
If you use Periodic boundaries, you must use this PlugIn. This
PlugIn allows DEM::Element to :
- cross the periodic boundaries
- apply similar displacements to slave element
- manage periodic bonds between master element and slave element
### Info ###
+ Process on : `DEM::Element`, `DEM::Bond`, `DEM::PeriodicBoundary`, `DEM::Periodic` (property)
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
FollowMasterVelocity (bool, default=True)
: If set to false the velocity of slave element will not be computed according from its master
but from its own displacement using a simple derivative method (note that this is very experimental)
### Example ###
```
<APPLY-PERIODIC-CONDITION />
```
### Simulation example ###
No example for periodic condition (TODO)
)V0G0N"

◆ desc [16/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin imposes a rigid rotation on a specified `Physic::Body` set.
Here, the process is different from the APPLY-ORIENTATION PlugIn because
the Physic::Body set is considered as a rigid body.
The imposed rotation is specified through an angle, an axis and center.
### Info ###
+ Process on : `Physic::Body` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Axis (vector:triplet of floats or vector id)
: The X,Y,Z values of the rotation axis.
Angle (float or expression)
: The rotation angle. To impose an angular velocity, you can use a
depending time expression here,
Center (triplet of floats or vector id))
: The X,Y,Z values of the rotation center. Note that, if you use the
"Centroid" pattern, the point coordinates are automatic computed by
taking the centroid value of the specified set.
### Optional param ###
Set (string, default=global)
: The `Physic::Body` SetOf ID to apply the treatment
### Example ###
```
<APPLY-ROTATION Axis="( 1.,0.,0.)" Center="Centroid" Angle="sin(t)" Set="Cylinder-xMax"/>
```
### Simulation example ###
`00014_{lattice}{dem}{mechanical}{brittle}{beam}_BENDING-TEST` and some others
)V0G0N"

◆ desc [17/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Applies the provided Temperature value to all `DEM::Element`
in the SetOf defined by the ElementSet. This plugins requires
to run the _InitThermalProperties_ plugin in the _PreProcessing_
section of the input file.
### Info ###
+ Process on : `DEM::Element`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Value (float or expression)
: The temperature value the temperature to be applied to the DEM::Element
### Optional param ###
Senstor (bool, default=true)
: if set to true, the temperature is stored in a sensor. The name of the sensor
is simply "Temperature_" + Set (concatenation of "Temperature_" string the set's ID).
Set (string, default=global)
: The `DEM::Element` SetOf ID to apply the temperature
### Example ###
```
<APPLY-TEMPERATURE Value="798." Set="Cylinder-xMin"/>
```
### Simulation example ###
`00040_{lattice}{thermo-mechanical}{elastic}{beam}_THERMAL-CONDUCTION` and some others
)V0G0N"

◆ desc [18/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin imposes a thermal expansion on a `DEM::Bond` set. The thermal expansion
is introduced by expanding the relaxed length of the `DEM::Bond` in relation with temperature.
Note that you don't need to calibrate the value of the thermal expansion coefficient. The local
value is equal to the global value [1].
### Info ###
+ Process on : `DEM::Bond` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Alpha (float or expression)
: The value of the linear thermal expansion coefficient.
Note that you can use an expression with 'T' for temperature dependent thermal expansion coeff
### Optional param ###
Set (string, default=global)
: The `DEM::Bond` SetOf ID to apply the treatment
Temperature (float or expression)
: If this val is set, the temperature is considered as uniform in the whole domain.
If not, the temperature is local and computed with `DEM::Thermal` properties.
If you set an uniform temperature, you can retrieve it with
`Math::Expression::glob("Temperature")`
ID (string)
: If you set an uniform temperature, you can retrieve it with
`Math::Expression::glob(ID)` in your C++ code.
### Example ###
```
<APPLY-THERMAL-EXPANSION Alpha="10e-6" Temperature="0.001*it"/>
```
### Simulation example ###
`00041_{lattice}{thermo-mechanical}{elastic}{flatbond}_THERMAL-CONDUCTION` and some others
> [1] Andre, D., Levraut, B., Tessier-Doyen, N., & Huger, M. (2017).
> A discrete element thermo-mechanical modelling of diffuse damage induced by
> thermal expansion mismatch of two-phase materials.
> Computer Methods in Applied Mechanics and Engineering, 318, 898-916.
)V0G0N"

◆ desc [19/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin imposes an anisotropic thermal expansion on a `DEM::Bond` bond set. The thermal expansion
is introduced by updating the initial bond frame in relation with temperature.
### Info ###
+ Process on : `DEM::Bond` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
AlphaX (float or expression)
: The value of the thermal expansion coefficient along the X axis
Note that you can use an expression with 'T' for temperature dependent thermal expansion coeff
AlphaY (float or expression)
: The value of the thermal expansion coefficient along the Y axis
Note that you can use an expression with 'T' for temperature dependent thermal expansion coeff
AlphaZ (float or expression)
: The value of the thermal expansion coefficient along the Z axis
Note that you can use an expression with 'T' for temperature dependent thermal expansion coeff
### Optional param ###
Set (string, default=global)
: The `DEM::Bond` SetOf ID to apply the thermal expansion
Temperature (float or expression)
: If this val is set, the temperature is considered as uniform in the whole domain.
If not, the temperature is local and computed with `DEM::Thermal` properties.
If you set an uniform temperature, you can retrieve it with
`Math::Expression::glob("Temperature")`
ID (string)
: If you set an uniform temperature, you can retrieve it with
`Math::Expression::glob(ID)` in your C++ code.
Crystal (bool, default=False)
: If set to True, the thermal expansion coefficient AlphaX, AlphaY and AlphaZ will be related
to the crystal (see DEM/Util/Crystal.hpp class)
### Example ###
```
<APPLY-THERMAL-EXPANSION-ANISOTROPIC lphaX="10e-6" AlphaY="-10e-6" AlphaZ="0e-6" Crystal="True"/>
```
)V0G0N"

◆ desc [20/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Applies a torque vector with components X, Y and Z to all the
`Physic::Body` of the associated SetOf. If Resultant option
is set to True, the provided vector components are divided
by the number of particle in the SetOf.
### Info ###
+ Process on : `Physic::Body` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
X (float or mathematical expression)
: The X value of the torque vector.
Y (float or mathematical expression)
: The Y value of the torque vector
Z (float or mathematical expression)
: The Z value of the torque vector
### Optional param ###
Resultant (boolean, default=False)
: If set to True the torque value is divided by the number of discrete element.
Set (string, default=global)
: The `Physic::Body` SetOf ID to apply the torque
### Example ###
```
<APPLY-TORQUE X="100." Y="-1.*sin(it)" Z="0." Set="xMax"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [21/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Apply a translation to a given `Physic::Node` and/or a `Physic::Ground` set.
Note that velocities and acceleration are not affected
by the imposed movement.
### Info ###
+ Process on : all `Physic::Node`, `Physic::Ground`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Vector (triplet of float or vector ID)
: Set the translation vector
### Optional param ###
Set (string, default=global)
: The `Physic::Node` SetOf ID to apply the treatment
Freeze (bool, default=True)
: If set to True, the SetOf is frozen after transformation. It means that its velocity
and acceleration (linear and angular) are set to null values
and its initial parameters are updated to the current parameter.
### Example ###
```
<APPLY-TRANSLATION Vector=(1., 0., 0.)/>
```
### Simulation example ###
`00031_{lattice}{dem}{mechanical}{elastic}{beam}_BOUNCING-BALL-v0`
)V0G0N"

◆ desc [22/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin limits the domain to a given boundary box. If a Node cross
this boundary box, it is automatically deleted.
### Info ###
+ Process on : all `Physic::Node`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
MinCorner (triplet of float or string)
: The min point position of the bounding box corner
MaxCorner (triplet of float or string)
: The max point position of the bounding box corner
### Optional param param ###
Verbose (bool, default=True)
: If set to True, it displays the number of deleted particle
### Example ###
```
<BOUNDARY-BOX MinCorner=(-1,-1,-1) MaxCorner=(1,1,1)/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [23/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Build `DEM::ElementPair` in the provided DEM::Element set based on a Delaunay tessellation.
The cutoff distance is given by the parameter _BondLengthRatioCutoff_, which is used to
calculate maximum distance between two discrete elements to consider them as bonded.
The maximum distance between two discrete elements is expressed in terms of the mean
radius of the DEM::Element.
### Info ###
+ Process on : `DEM::Element` to create `DEM::ElementPair`
+ Multithreaded : No
+ Recommended section: PreProcessing, PostProcessing
### Optional param ###
BondLengthRatioCutoff (float, default=2.0)
: The maximal acceptable length of bonds.
### Example ###
```
<BUILD-DELAUNAY-ELEMENT-PAIR BondLengthRatioCutoff="2.0" />
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [24/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Build a parallelepiped discrete elements domain, with dimensions _Lx_,
_Ly_ and _Lz_, with number of `DEM::DiscreteElement` defined by _ElementNumber_.
By default, a dispersion factor is applied to each discrete element position
and radius, using parameters _Dispersion_ and _RadiusDispersion_, respectively.
To generate a simple cubic crystalline domain, both dispersion parameters
must be set to 0. Finally, the discrete elements belonging to faces of the
parallelepiped will have their center perfectly adjusted on their respective plane,
except if _PerfectBoundaries_ is set to False.
Note that you may use this PlugIn in addition to the _BUILD-DELAUNAY-ELEMENT-PAIR_
to build a full DEM discrete domain.
### Info ###
+ Process on : It creates `DEM::DiscreteElement`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Lx (float)
: Set the length along X of the parallelepiped
Ly (float)
: Set the length along Y of the parallelepiped
Lz (float)
: Set the length along Z of the parallelepiped
ElementNumber (int)
: The number of discrete element to create
### Optional param ###
Dispersion (float, default=0.5)
: Set the spatial dispersion. Tha value must be in the [0., 1.] range
RadiusDispersion (float, default=0.5)
: Set the dispersion of discrete element radii. The value must be in the [0., 1.] range
PerfectBoundaries (bool, default=True)
: If True the discrete elements that belong to the boundaries are perfectly aligned on
the boundary
### Example ###
```
<BUILD-GRID-DOMAIN Lx="0.01" Ly="0.01" Lz="0.1" ElementNumber="2000"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [25/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin allows to build element pair between neighbouring `DEM::DiscreteElement`
in the SetOf. Two discrete elements are considered as bonded when an
interpenetration is detected. In this first case, the coordination number
of the domain is an output.
It is also possible to force the coordination number by setting the _ForceCardinality_
parameter to True, and by setting the value of _WantedCardinalityValue_,
which thus becomes an input. In this second case, you must specify a valid
SetOf name to parameter _BoundarySet_. This set of discrete elements is used
to increase the precision of the coordination number calculation (because the
frontier of domain as a degraded value of coordination number).
### Info ###
+ Process on : `DEM::ElementPair` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
WantedCardinalityValue (float)
: This option is required only if the ForceCardinality is set to True
### Optional param ###
ForceCardinality (float, default=False)
: if True, the cardinality (coordination) value is forced to the
value specified by the _WantedCardinalityValue_ option
BoundarySet (string, default="")
: if a boundary set and an inclusion set is specified, the computation
of the coordination number is more precise
InclusionSet (string, default="")
: similar as BoundarySet but for inclusional particles inside the domain
NeighbourSet (string, default="")
: you can specify a discrete element set to process the element pair construction
### Example ###
```
<BUILD-NEIGHBOUR-ELEMENT-PAIR ForceCardinality="Yes" WantedCardinalityValue="8." BoundarySet="Boundary"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [26/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin creates a voronoi domain from discrete domain. All the
elements are replaced by polyhedral elements that completely
covers a volume delimited by a DEM::SupportShape.
### Info ###
+ Process on : `DEM::DiscreteElement`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
BuildDelaunayElementPair (bool, default=False)
: Instantiate element pair from the Delaunay diagram given by the Voronoi tessellation.
Note that all the previous element pairs are removed.
BondLengthRatioCutoff (float, default=2.0)
: The maximal acceptable length of bonds.
This is a sub-option of the `BuildDelaunayElementPair` option.
GroundID (string, default="")
: By default the plugin search of a ground which defines the boundaries
of the discrete domain. You can set a specific GroundID here.
Periodic (bool, default=False)
: If you want to deal with periodic voronoi domain, you must set
this option. Note that, it works only if the initial discrete domain
is also periodic.
### Example ###
```
<BUILD-VORONOI-DOMAIN BuildDelaunayElementPair="True"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [27/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin checks the validity of numerical computation.
If any _NaN_ (Not a Numerical) value is found in data,
the calculation is immediately stopped. It can be used at
any place where you want to ensure numerical computation integrity.
### Info ###
+ Process on : all `Physic::Node`
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
AntiSwap (bool, default=true)
: for detection if an element is going too far (1e5 far from the origin)
DeleteBadElement (bool, default=false)
: if true the inconsistent element is removed from the computation.
In most of cases, this is a bad idea :(
SaveDomainBeforeQuit (bool, default=true)
: if true the whole domain is saved before quitting.
### Example ###
```
<CHECK/>
```
### Simulation example ###
`00003_{tutorial}_SIMPLE-TENSILE-TEST` and a lot of others
)V0G0N"

◆ desc [28/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Resets all the external loads (forces and torques) associated to
the `Physic::Node` and `Physic::Body` of the domain. Generally you
must use it at the end of a processing loop.
### Info ###
+ Process on : Physic::Node and Physic::Body set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `Physic::Node` and `Physic::Body` SetOf ID to apply the treatment
### Example ###
```
<CLEAR-LOAD/>
```
### Simulation example ###
`00003_{tutorial}_SIMPLE-TENSILE-TEST` and a lot of others
)V0G0N"

◆ desc [29/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin computes the surface of bonds with the Inigo Terreros'
method described here [1]. It affects automaticaaly the right value
of the `surface` bond's attribute.
### Info ###
+ Process on : `DEM::DiscreteElement` and `DEM::Bond`
+ Multithreaded : No
+ Recommended section: Processing
### Example ###
```
<COMPUTE-BOND-SURFACE-IT/>
```
### Simulation example ###
No example (TODO)
> [1] : Terreros, I., Iordanoff, I., & Charles, J. L. (2013).
> Simulation of continuum heat conduction using DEM domains.
> Computational Materials Science, 69, 46-52.
)V0G0N"

◆ desc [30/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Computes the greatest time step value that ensures numerical
integration stability. This value is related to 2*pi*omega, where omega is
the highest natural frequency of all the mass-stiffness resonators. It
writes automatically the main time step of the simulation.
### Info ###
+ Process on : All `Physic::CriticalTimeStep` objects
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
Ratio (float, default=0.147)
: This coefficient is applied to the computed value of the time step
TimeStep (string, default=)
: Give an alternative `Physic::Time` ID to use. This alternatrive time step may be created
with the _NewTimeStep_ plugin. By default the main time step is chosen.
### Example ###
```
<COMPUTE-OPTIMAL-TIME-STEP Ratio="0.1"/>
```
### Simulation example ###
`00003_{tutorial}_SIMPLE-TENSILE-TEST` and a lot of others
)V0G0N"

◆ desc [31/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin compute the volume fraction of arbitrary granular domains
thanks to a voronoi tesselation. The result of the computation is stored
in the `_result` attribute.
### Info ###
+ Process on : `DEM::Element`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
Set (string, default=global)
: The `DEM::Element` set to compute the volume fraction
Lx (float, default=0.)
: Specify a box's length to compute the volume
fraction (must be used with Ly and Lz)
Ly (float, default=0.)
: Specify a box's length to compute the volume
fraction (must be used with Lx and Lz)
Lz (float, default=0.)
: Specify a box's length to compute the volume
fraction (must be used with Lx and Ly)
Center (vector, default=(0,0,0))
: Specify the box's center (must be used with
Lx, Ly and Lz)
### Example ###
```
<COMPUTE-VOLUME-FRACTION/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [32/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Solves the electrical state related to the applied voltage source through
the ADD-VOLTAGE-SOURCE plugin. The domain is assumed as a large electrical
resistances network, where a resistance exists when two discrete elements are
in contact. The system assembly is performed using the Graphs method, and is
solved in one time step using a Conjugate Gradient iterative (implicit) solver.
This means that if there is no change in the domain geometry, this plugin can be
called only once, for instance by setting _Max_ to _IterLoop_.
At the end of the plugin processing, the electrical state of the discrete
domain is fully known, i.e. the electrical potentials, electrical currents and
domain equivalent resistance between the electrical pins defined by the
_AddVoltageSource_ plugin. The details of the implementation are given in [1].
### Info ###
+ Process on : `DEM::Element` set that own a `DEM::Electrical` property
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Verbose (bool, default=false)
: When activated, this options prints the system size and solving time, as
well as the domain equivalent resistance to the standard output
Set (string, default=global)
: The DEM::Element SetOf ID to apply the treatment
### Example ###
```
<CONDUCT-CURRENT Verbose="Yes" IterLoop="Max"/>
```
### Simulation example ###
`00042_{lattice}{electrical}{beam}_ELECTRICAL-CONDUCTION` and other electrical examples
> [1] Hubert, C., André, D., Dubar, L., Iordanoff, I., & Charles, J. L. (2017).
> Simulation of continuum electrical conduction and Joule heating using DEM domains.
> International Journal for Numerical Methods in Engineering, 110(9), 862-877.
)V0G0N"

◆ desc [33/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Computes the new thermal state of the discrete domain, related to
the thermal boundary conditions applied through the APPLY-TEMPERATURE
plugin. The thermal solution is calculated explicitly, based on the
mechanical stable time increment.
Note that you can add another time step with the NEW-TIME-STEP PlugIn
and you can use it if you want to combine a mechanical time step with
a thermal time step. This is not physical but you can save a lot of
computational time with this trick.
The implement method is described in [1]
### Info ###
+ Process on : `DEM::DiscreteElement` set that own a `DEM::Thermal` property
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Method (string)
: Here you can choose 'VORO' or 'IT'. This is two different methods
for computing the surface transmission. The 'IT' comes from this
work [1] and can be applied with spherical element. The 'VORO' method
is based on voronoi tesselation, so it works only with polyhedral elements that
come from a voronoi tesselation.
### Optional param ###
Set (string, default=global)
: The `DEM::DiscreteElement` SetOf ID to apply the treatment
TimeStep (string, default=)
: Give an alternative `Physic::Time` ID to use. This alternatrive time step may be created
with the _NewTimeStep_ plugin. By default the main time step is chosen.
### Example ###
```
<CONDUCT-HEAT Method="VORO"/>
```
### Simulation example ###
`00040_{lattice}{thermo-mechanical}{elastic}{beam}_THERMAL-CONDUCTION` and other thermal examples
[1] : Terreros, I., Iordanoff, I., & Charles, J. L. (2013). Simulation of continuum heat conduction using DEM domains. Computational Materials Science, 69, 46-52.
)V0G0N"

◆ desc [34/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Calculates the new thermal state of the discrete domain, related to
the thermal boundary conditions applied through the APPLY-TEMPERATURE
plugin. The thermal solution is calculated explicitly, based on the
mechanical stable time increment.
This plugin works in the same way as its counterpart CONDUCT-HEAT except that
it takes into account the domain free surfaces, which are determined automatically
based on the barycenter of the neighbors surrounding a given discrete element.
### Info ###
+ Process on : `DEM::Element` set that own a `DEM::Thermal` property
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The DEM::Element SetOf ID to apply the treatment
### Example ###
```
<CONDUCT-HEAT-WITH-FS/>
```
### Simulation example ###
`00043_{lattice}{thermo-electrical}{beam}_JOULE-HEATING` and a lot of others
)V0G0N"

◆ desc [35/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces some items of a given type by other items of another type.
In fact this PlugIn is a smart interface to all the Convert**To**
PlugIn. Please refer to the documentation of each specific Convert**To**
to get the complete list of the allowed parameters.
)V0G0N"

◆ desc [36/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the `DEM::Bond` instances by `DEM::ElementPair` instances.
### Info ###
+ Process on : `DEM:Bond` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
Set (string, default=global)
: The `DEM::Bond` SetOf ID to apply the treatment
### Example ###
```
<CONVERT-BOND-TO-ELEMENT-PAIR/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [37/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the element pair (`DEM::ElementPair` class) by `DEM::Beam`.
If you create an initial discrete domain with the _cooker_ program,
it contains only DEM::ElementPair. You can use this plugin in the pre-processing
section to replace all these virtual bonds by usable beam. Cohesive beam are
especially designed to simulate continuous domains. For details see [1].
Note that you can use directly macroscopic values of Young's modulus and Poisson's
ratio. This magic trick is explained in this paper [2].
### Info ###
+ Process on : DEM::ElementPair set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param (set1) ###
YoungModulus (float)
: Set the Young's modulus value of the beam
RadiusRatio (float)
: Set the radius of the beam. The beam radius is computed with the RadiusRatio value.
with the average value of discrete element radius
### Required param (set2) ###
MacroYoungModulus (float)
: Set the macroscopic Young's modulus value of your domain.
It involves automatic calibration process.
Note that this options is not allowed if you specify directly microscopic parameters such
as the 'YoungModulus' and the 'RadiusRatio' options.
MacroPoissonRatio (float)
: Set the macroscopic Poisson's ratio value of your domain.
It involves automatic calibration process.
Note that this options is not allowed if you specify directly microscopic parameters such
as the 'YoungModulus' and the 'RadiusRatio' options.
### Optional param ###
DampingFactor (float, default=0.)
: Set the value of the damping factor
PoissonRatio (float, default=0.3)
: Set the value of the Poisson's ratio (unuseful in most of case)
MaxStress (float, default=None)
: Set the maximal equivalent Rankine stress (for brittle material). If the beam reaches this value,
the bond is broken. You can choose if the beam is disabled or deleted
with the _APPLY-LOAD_ PlugIn. Note that this way of deleting bond is not really
accurate, you may prefer use the APPLY-FRACTURE plugin
MaxRelativeElongation (float, default=None)
: Set the maximal elongation that can support the beam. Note that this way of deleting bond is not really
accurate, you may prefer use the APPLY-FRACTURE plugin
ComputeAverageRadiusOnSet (string, default=global)
: Choose the DEM::DiscreteElement SetOf to compute the average radius.
Set (string, default=global)
: The DEM:: SetOf ID to apply the treatment
Epsilon (float, default=1e-300)
: In some cases the default value of epsilon is too aggressive. You can choose
a lower value such as 1e-12 to avoid approximation errors.
### Example ###
```
<!-- Here, you set directly the (microscopic) parameter of the beam -->
<CONVERT-ELEMENT-PAIR-TO-BEAM YoungModulus="1.2e11" RadiusRatio="0.28" Set="xMax"/>
<!-- Here, you set directly the macroscopic parameter of the continuum media -->
<CONVERT-ELEMENT-PAIR-TO-BEAM MacroYoungModulus="50e9" MacroPoissonRatio="0.2"/>
```
### Simulation example ###
`00042_{lattice}{electrical}{beam}_ELECTRICAL-CONDUCTION` and a lot of others that implement beam bonds y
> [1] André, D., Iordanoff, I., Charles, J. L., & Néauport, J. (2012).
> Discrete element method to simulate continuous material by using the
> cohesive beam model. Computer Methods in Applied Mechanics and Engineering, 213, 113-125.
> [2] Nguyen, T. T., André, D., & Huger, M. (2019).
> Analytic laws for direct calibration of discrete element modeling of brittle elastic
> media using cohesive beam model. Computational Particle Mechanics, 6(3), 393-409.
)V0G0N"

◆ desc [38/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the element pair (`Core::Pair<DEM::Element>` class) by `DEM::FlatBond`.
FlatBond [1] are a new way for modeling continuum material with DEM. FlatBond needs
a strain tensor. So, you must use FlatBond with the UPDATE-STRAIN plugin.
### Info ###
+ Process on : `Core::Pair<DEM::Element>` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
YoungModulus (float)
: Set the Young's modulus of the material
PoissonRatio (float)
: Set the Poisson's ratio of the material
### Optional param ###
ManageCrackClosure (bool, default=False)
: If Set to true the flat bond will manage crack closure. It means that
the bond, after breakage, can transmit force if it is in compression
FrictionCoeff (float, default=0., <1.)
: This option should be used with the ManageCrackClosure. The friction coef will be used
during crack closure as this :
- a negative value will allow to transmit without limitation shear stress
- a null value will set to zero shear stress
- a positive value will limit the shear component (Comlomb's law)
MaxTensileStress (float, default=0., > 0.)
: Set the normal tensile stress criterion of the bond
MaxCompressiveStress (float, default=0., >0.)
: Set the normal compressive stress criterion of the bond
MaxShearStress (float, default=0., >0.)
: Set the maximal shear stress criterion of the bond
UseStressTensor (bool, default=false)
: If set to true, the flat bond use the virial stress instead of least square strain
### Example ###
```
<CONVERT-ELEMENT-PAIR-TO-FLAT-BOND YoungModulus="72e9" PoissonRatio="0.17" MaxTensileStress="50e6" MaxCompressiveStress="500e6"/>
```
### Simulation example ###
`00013_{lattice}{dem}{mechanical}{brittle}{flatbond}_TENSILE-TEST` and the other examples that implement the flat bond model
> [1] André, D., Girardot, J., & Hubert, C. (2019).
> A novel DEM approach for modeling brittle elastic media based on distinct lattice spring model.
> Computer Methods in Applied Mechanics and Engineering, 350, 100-122.
)V0G0N"

◆ desc [39/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
)V0G0N"

◆ desc [40/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the element pair (`Core::Pair<DEM::Element>` class) by `DEM::XBeam`.
If you create an initial discrete domain with the _cooker_ program,
it contains only virtual bonds. You can use this plugin in the pre-processing
section to replace all these virtual bonds by usable beam. Cohesive beam are
especially designed to simulate continuous domains. For details see [1].
Note that you can use the `_SetElasticParameter` PlugIn to avoid fastidious
calibration step and set directly the macroscopic elastic parameters of your
domain.
### Info ###
+ Process on : Core::Pair<DEM::Element> set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
YoungModulus (float)
: Set the Young's modulus value of the Hertz contact
PoissonRatio (float)
: Set the Poisson's ratio value of the Hertz contact
### Example ###
```
< CONVERT-ELEMENT-PAIR-TO-HERTZSPRING YoungModulus="50e9" PoissonRatio="0.2" />
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [41/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the element pair (`Core::Pair<DEM::Element>` class) by `DEM::PlasticBeam`.
The `DEM::PlasticBeam` class inherits from the `DEM::Beam` class. So, you can set
also all the parameters of the `CONVERT-ELEMENT-PAIR-TO-BEAM` PlugIn.
BE AWARE, THIS IS AN EXPERIMENTAL WORK !!!
### Info ###
+ Process on : Core::Pair<DEM::Element> set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
MaxElasticRelativeElongation (float, default=inf)
: Set the value of the elongation threshold. This value is relative. For example,
if you set 20%, it means that the beam could get 20% max of elastic elongation,
so the beam is going to be plastic.
### Example ###
```
<CONVERT-ELEMENT-PAIR-TO-PLASTIC-BEAM YoungModulus="1.2e11" RadiusRatio="0.28" MaxElasticRelativeElongation="20%"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [42/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the element pair (`Core::Pair<DEM::Element>` class) by `DEM::PlasticBeamIT`.
The `DEM::PlasticBeam` class inherits from the `DEM::Beam` class. So, you can set
also all the parameters of the `CONVERT-ELEMENT-PAIR-TO-BEAM` PlugIn. If you want
to document yourself about this plastic beam, you can read the Inigo Terreros' PhD
manuscript [1] (in french).
BE AWARE, THIS IS AN EXPERIMENTAL WORK !!!
### Info ###
+ Process on : Core::Pair<DEM::Element> set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
MaxElasticRelativeElongation (float, default=inf)
: Set the value of the elongation threshold. This value is relative. For example,
if you set 20%, it means that the beam could get 20% max of elastic elongation,
so the beam is going to be plastic.
### Example ###
```
<CONVERT-ELEMENT-PAIR-TO-PLASTIC-BEAM YoungModulus="1.2e11" RadiusRatio="0.28" MaxElasticRelativeElongation="20%"/>
```
### Simulation example ###
No example (TODO)
> Modélisation DEM thermo-mécanique d'un milieu continu. Vers la simulation du procédé FSW,
> Terreros, Iñigo, 2013, http://www.theses.fr/2013ENAM0060/document
)V0G0N"

◆ desc [43/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
TODO
)V0G0N"

◆ desc [44/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
TODO
)V0G0N"

◆ desc [45/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
TODO
)V0G0N"

◆ desc [46/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Replaces all the element pair (`Core::Pair<DEM::Element>` class) by `DEM::Spring`.
### Info ###
+ Process on : `Core::Pair<DEM::Element>` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Stiffness (float)
: Set the stiffness of the spring
### Optional param ###
RestitutionCoeff (float, default=None)
: Set the coefficient of restitution. Must be between in the range [0,1].
1. corresponds to no damping factor otherwise 0. corresponds to a maximal
value of damping. In fact a damping factor is computed from the RestitutionCoeff value
thanks to the formula given in the _DEM/Util/Formula.hpp_ source file
DampingFactor (float, default=None)
: Set the damping factor. Note that you can not set both RestitutionCoeff and
DampingFactor options.
AttractiveCoeff (float, default=None),
: Set the attractive coefficient, this coefficient is applied to the resultant
force to modify the attraction (> 1 = more attractive, < 1 = less attractive).
This coefficient is only applied if the current elongation is positive.
RepulsiveCoeff (float, default=None),
: Set the repulsive coefficient, this coefficient is applied to the resultant
force to to modify the repulsion (> 1 = more repulsive, < 1 = less repulsive).
This coefficient is only applied if the current elongation is negative.
MaxRelativeElongation (float, default=None),
: Set the maximal elongation of the spring.
Set (string, default=global)
: The `Core::Pair<DEM::Element>` SetOf ID to apply the treatment
### Example ###
```
<CONVERT-ELEMENT-PAIR-TO-SPRING Stiffness="1.5e7" RestitutionCoeff="0.9"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [47/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Similar as the CONVERT-ELEMENT-PAIR-TO-BEAM but use a faster strategy for
the computation of the reaction forces and torques. The sole difference comes
from the NLGeom attribute (see below).
### Info ###
Please refer to the CONVERT-ELEMENT-PAIR-TO-BEAM documention
### Required param ###
Please refer to the CONVERT-ELEMENT-PAIR-TO-BEAM documention
### Optional param ###
Please refer to the CONVERT-ELEMENT-PAIR-TO-BEAM documention
NLGeom (bool, default=False)
: if set to true, the computation is faster but it works only for small
transformation (displacement, rotation and strain). So, if you activate
this option, you must ensure that your simulation matches with the small
transformation hypothesis.
### Example ###
```
<CONVERT-ELEMENT-PAIR-TO-XBEAM YoungModulus="1.2e11" RadiusRatio="0.28"/>
```
### Simulation example ###
`00020_{lattice}{fem}{mechanical}{elastic}{xbeam}_TENSILE-TEST` and other examples that implement the xbeam bond model
)V0G0N"

◆ desc [48/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin creates crack cluster in order to track isolated
cracks that merge. Note that this plugin works only with
DEM::VoronoiBond and DEM::CrackFacet. Note that this plugin
is time consuming, do not trigger it every iteration. This plugin
no influence on the mechanical calculation.
### Info ###
+ Process on : all `DEM::CrackFacet`
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
CrackClusterPrefix (str, default=""crack_cluster_"")
: you can change the default prefix for convenience
### Example ###
```
<CRACK-CLUSTER-TRACKING EveryIter="200"/>
```
### Simulation example ###
`00013_{lattice}{dem}{mechanical}{brittle}{flatbond}_TENSILE-TEST`
`01013_{lattice}{dem}{full-periodic}{mechanical}{brittle}{flatbond}_TENSILE-TEST`
)V0G0N"

◆ desc [49/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin allows to deform a periodic box which represents a full 3D periodic domain.
Deforming periodic box is useful for applying loading to a periodic discrete domain. So,
this plugin can stretch/reduce one (or more) given length of the box. In addition, this
plugin allows you to control the stresses in the other direction. For example, you can
stretch along X while maintaining zero stresses along Y and Z to produce a uniaxial
tensile test in the X direction. You can generate full periodic 3D domains with
the granoo-cooker program utility.
### Info ###
+ Process on : DEM::Element with a DEM::Periodic property
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
InitSensor (bool, default=True)
: If set to true the global strains and stresses will be recorded in sensors
Strain_?? (float, default=None)
: Replace ?? by the right tensor component (XX, YY, ZZ, XY, XZ or YZ).
You can give here the strain that you want to impose to the periodic box
Stress_?? (float, default=None)
: Replace ?? by the right tensor component (XX, YY, ZZ, XY, XZ or YZ).
You can give here the value of the Stress that you want to target to the periodic box.
In the such case the periodic box will try to deform automatically to target the
wanted value of the stress. Note that you can not impose a strain and target a stress
for the same component.
PID_Stress_?? (a set of 6 floats, efault=None)
: If you target a stress, you must tune here the value of the PID that allows to
constol the deformation. You must provide 6 parameters which are : time step, max,
min, Kp (proportional), Kd (derivate), Ki (integral)
### Example ###
```
<!-- Make a tensile test along the XX axis -->
<DEFORM-PERIODIC-BOX Strain_XX="2e-6*it"
Stress_YY="0" PID_Stress_YY="1,0.01,-0.01,1e-16,1e-16,1e-16"
Stress_ZZ="0" PID_Stress_ZZ="1,0.01,-0.01,1e-16,1e-16,1e-16"/>
```
### Simulation example ###
No example with periodic condition (TODO)
)V0G0N"

◆ desc [50/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin delete the specified items.
### Info ###
+ Process on : All
+ Multithreaded : No
+ Recommended section: PreProcessing, Processing
### Required param ###
What (string)
: The type of item to delete : `Core::Base`, `DEM::Element`, `Physic::Body`, `Physic::Ground` and so on...
### Optional param ###
Set (string, default="Global")
: The plugin removes only the particular items that belong to the specified set
ID (string, default="")
: If ID is set, the plugin removes only item with the specified ID. It works only for classes that
own ID such as `Physic::Ground`, `DEM::Tool` or `DEM::SupportShape`
### Example ###
```
<DELETE What="Physic::Ground"/>
<DELETE What="DEM::SupportShape" ID="Boundary"/>
```
### Simulation example ###
`00031_{lattice}{dem}{mechanical}{elastic}{beam}_BOUNCING-BALL-v0`
)V0G0N"

◆ desc [51/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin delete what we called inconsistent voronoi bond.
An inconsistent voronoi bond is a bond that do not match with
a polyhedral facet of its DEM::Element. This problem is propably
due by too large approximation during the voronoi tesselation made
by voro++ but this is not sure. This problem must be investigated
to have a better understanding.
### Info ###
+ Process on : `DEM::Bond`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
Set (string, default=global)
: The `DEM::Bond` SetOf ID to apply the treatment
### Example ###
```
<DELETE-INCONSISTENT-VORONOI-BOND/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [52/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Delete all the unbonded `DEM::Element`. The related
`DEM::Element` are said as alone and they may induce
some problems in some simulations. For example, you can
use it, if you want to avoid debris in your simulation.
### Info ###
+ Process on : `DEM::Element` and `DEM::Bond` set
+ Multithreaded : No
+ Recommended section: PreProcessing & Processing & PostProcessing
### Optional param ###
Verbose (bool, default=False)
: If set to true gives some information: number of
deleted element, etc...
Set (string, default=global)
: The `DEM::Element` SetOf ID to apply the treatment
### Example ###
```
<DELETE-UNBONDED-ELEMENT Verbose="True"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [53/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin remove all the useless slave element which are very numerous.
It allows to speed-up computation and IO operations. You must use this plugin
only for lattice simulation !
### Info ###
+ Process on : `DEM::Bond` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Optional param ###
DetectionMode (string, default="AUTO")
: Values could be "AUTO" (for automatic detection), "BOND" (slave with no bond will be removed) or "EL_PAIR" (slave with no element pair will be removed)
### Example ###
```
<DELETE-UNBONDED-SLAVE-ELEMENT />
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [54/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
A plugin that displays some information at screen. It is almost
an example plugin that let you understand how to implement your own plugin
thanks to copy/paste/modify some C++ source code. Also, it may be useful
to print a specific message by triggering it when a bond is disabled
using the _TriggerOnSignal_ parameter.
### Info ###
+ Process on : Nothing
+ Multithreaded : No
+ Recommended section: All
### Optional param ###
Message (string, default="")
: The message to display
### Example ###
```
<DISPLAY-INFO Message="Hello, GranOO User !!"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [55/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Trigger energy balance recording. Note that you must use the 'WRITE-SENSOR-DATA'
plugin to record these data in a file. It's better to place both 'ENERGY-BALANCE' and
'WRITE-SENSOR-DATA' plugins at the end of the processing loop as it is shown
in the following example.
### Info ###
+ Process on : Nothing
+ Multithreaded : No
+ Recommended section: Processing
### Example ###
```
(...)
<ENERGY-BALANCE>
<WRITE-SENSOR-DATA/>
</ (end of processing loop) >
```
### Simulation example ###
`00011_{lattice}{dem}{mechanical}{brittle}{beam}_TENSILE-TEST`
)V0G0N"

◆ desc [56/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Immediately interrupt the simulation
### Info ###
+ Process on : Nothing
+ Multithreaded : No
+ Recommended section: Any
### Example ###
```
<EXIT/>
```
)V0G0N"

◆ desc [57/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Exports the domain data to ParaView Data format (.pvd file), for further
post treatment in the free and open-source _ParaView_, developed by Kitware
[paraview](http://www.paraview.org). Most of the fields available in the GddViewer
are available in ParaView, and are defined by the _Field_ parameter.
To specify which data must be exported into the .pvd file, the starting point
is to define the _Field_ parameter, using values _All_ or _Nothing_. Then, you
can add or remove a specific magnitude from a specific classes. For example,
if Field="Nothing", you will add the acceleration quantities related to
the discrete elements using Element_add="Acceleration". Similarly, if you want
to export all parameters but not the torsion stress from beams, you would
use Beam_rm="current_torsion_stress".
### Info ###
+ Process on : All objects
+ Multithreaded : No
+ Recommended section: All
+ Result : A .pvd file in the output directory
### Required param ###
Field (string)
: The attempted value must be "All" or "Nothing"
### Optional param ###
ClassName_add (string)
: Used to add to the export list a specific field belonging to the specified class
ClassName_rm (string)
: Used to remove to the export list a specific field belonging to specified class
SaveDEShape (bool, default=False)
: Used to export Discrete Elements as a material points or using their physical shape
### Example ###
```
<!-- This example save nothing by default except the acceleration of element -->
<EXPORT-TO-PVD Field="Nothing" Element_add="Acceleration" EveryIter="100"/>
<!-- This example save all by default. It saves also element shapes (good for polyhedral shape)-->
<EXPORT-TO-PVD Field="All" SaveDEShape="Yes" EveryIter="100"/>
```
### Simulation example ###
`00010_{lattice}{dem}{mechanical}{elastic}{beam}_TENSILE-TEST` and a lot of others
)V0G0N"

◆ desc [58/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Initializes the electrical properties of the specified `DEM::Element` set.
You can specify the name of the set.
### Info ###
+ Process on : `DEM::Element` set that own a `DEM::Electrical` property
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Resistivity (float)
: The material electrical resistivity rho
Conductivity (float)
: The material electrical conductivity calculated as 1/rho
Note that you MUST specify the material electrical resistivity OR
conductivity. These two parameters are mutually exclusive.
### Optional param ###
Set (string, default=global)
: The `DEM::Element` SetOf ID to apply the treatment
### Example ###
```
<INIT-ELECTRICAL-PROPERTIES Resistivity="0.73e-6"/>
```
### Simulation example ###
`00042_{lattice}{electrical}{beam}_ELECTRICAL-CONDUCTION` and other examples that implement electrical physics
)V0G0N"

◆ desc [59/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin must be used when running periodic simulation
with bonds (periodic lattice model). This plugin parses
the periodic bonds for detecting potential slave. It allows
to break bond in a periodic way. A "periodic way" means that
if a bond is broken at a given boundary, the corresponding bonds
on the other periodic boundaries are also destroyed.
### Info ###
+ Process on : `DEM::Bond` set
+ Multithreaded : No
+ Recommended section: PreProcessing
### Example ###
```
<INIT-PERIODIC-BOND />
```
### Simulation example ###
01010_{lattice}{dem}{full-periodic}{mechanical}{elastic}{beam}_TENSILE-TEST
)V0G0N"

◆ desc [60/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Initializes the thermal properties of the specified `DEM::Element` set.
You can specify the name of the set.
### Info ###
+ Process on : `DEM::Element` set that own a `DEM::Thermal` property
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Temperature (float)
: Set the element temperature
Cp (float)
: Set the heat capacity
Conductivity (float)
: Set the thermal conductivity
### Optional param ###
Set (string, default=global)
: The `DEM::Element` SetOf ID to apply the treatment
### Example ###
```
<INIT-THERMAL-PROPERTIES Temperature="0" Cp="500" Conductivity="15" />
```
### Simulation example ###
`00043_{lattice}{thermo-electrical}{beam}_JOULE-HEATING` and other examples that implement thermal physics
)V0G0N"

◆ desc [61/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Computes the new positions and angular positions for all the `Physic::Body` and/or
`Physic::Node`. Performs a numerical integration of the linear (on `Physic::Node`)
and the angular acceleration (on `Physic::Body`) to compute the new position values.
The integration scheme is derived from Tchamwa–Wielgosz (TW) [1] scheme, with a damping coefficient.
It produces some numerical damping when the time step is close to the critical
value given by the plugin _ComputeOptimalTimeStep_. One can use beta = 1.3 to produce
significant damping and beta = 0.5 produces no damping effect (default value).
### Info ###
+ Process on : `Physic::Node` and `Physic::Body`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Linear (bool)
: Set to true if you want to perform linear integration
Angular (bool)
: Set to true if you want to perform angular integration
### Optional param ###
BetaLinear (float, default=0.5)
: The damping effect factor beta for linear integration.
Default value corresponds to no damping effect
BetaAngular (float, default=0.5)
: The damping effect factor beta for angular integration.
Default value corresponds to no damping effect
Set (string, default=global)
: The SetOf ID (both `Physic::Body` and `Physic::Node`) to apply the treatment
TimeStep (string, default=)
: Give an alternative `Physic::Time` ID to use. This alternatrive time step may be created
with the _NewTimeStep_ plugin. By default the main time step is chosen.
SaveKinematic (bool, default=False)
: Save in Physic::Node and Physic::Body the previous kinematic : linear and angular position,
velocity and acceleration. This feature can be used for different things such as energy balance
computations.
### Example ###
```
<INTEGRATE-ACCELERATION Linear="Yes" Angular="No" BetaLinear="1.3"/>
```
### Simulation example ###
`00003_{tutorial}_SIMPLE-TENSILE-TEST` and a lot of others that use dynamics !
> [1] Mahéo, L., Grolleau, V., & Rio, G. (2009).
> Damping efficiency of the Tchamwa–Wielgosz explicit dissipative scheme
> under instantaneous loading conditions.
> Comptes Rendus Mécanique, 337(11-12), 722-732.
)V0G0N"

◆ desc [62/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin creates a 3D histogram that displays bond interaction direction.
It is usefull to check geometrical isotropy or anisotropy. Note that this
plugin will erase completly the current domain from memory. The domain
is replaced by polyhedron that represent the 3D chart. You can use
directly this plugin in the 'granoo-viewer' by hitting the 'T' key.
### Info ###
+ Process on : `DEM::DiscreteElement`
+ Multithreaded : No
+ Recommended section: Pre or PostProcessing
### Optional param ###
ComputeOnSphere (bool, default=True)
: If true, the interaction histogram will be computed on a spherical domain.
This is required for correctly checking isotropy without geometrical effects.
SphereRatio (float, default=0.9)
: With this param, the computed sphere is decreasing by this ratio. By default
the radius is 90% of the maximal radius.
### Example ###
```
<INTERACTION-HISTOGRAM/>
```
### Simulation example ###
No example, for internal use only
)V0G0N"

◆ desc [63/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Manages collision between two types of body. This PlugIn is the main interface to the
collision detection algorithm. Note that this PlugIn instantiate the right
`Collision::Manager` object (depending on the _Between_ field).
A `Collision::Manager` object allows to plug different kind of collision
detection algorithms such as :
- a `Collision::BroadPhase` algorithm -> preliminary approach
- a `Collision::UpdateStrategy` -> a strategy to avoid re-computation of contact pairs
- a `Collision::NarrowPhase` algorithm -> closest approach
- a `Collision::CallBack` function triggered when a collision is detected.
### Info ###
+ Process on : All possible item that need collision
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Between (string)
: Choose here the two kinds of item you want to manage. The allowed
types are : body/body, body/ground, particle/ground,
discreteElement/discreteElement, discreteElement/supportShape and
discreteElement/tool.
BroadPhase (string)
: The wanted `Collision::BroadPhase` Method. Note that you can list all
the available BroadPhase by typing `granoo -d -f BroadPhase`.
Please refer to the documentation of the chosen BroadPhase to get the list
of available option.
CallBack (string)
: The wanted `Collision::CallBack` Method. Note that you can list all
the available CallBack by typing `granoo -d -f CallBack`.
Please refer to the documentation of the chosen CallBack to get the list
of available option.
### Optional param ###
UpdateStrategy (string, default="")
: The wanted `Collision::UpdateStrategy` Method. Note that this feature is optional.
If you choose an update strategy method, the contact pairs detected by the
broad_phase method are recorded in an array. This array is used instead of on-the-fly
contact detection to avoid useless computations. ote that you can list all
the available BroadPhase by typing `granoo -d -f UpdateStrategy`.
Please refer to the documentation of the chosen BroadPhase to get the list
of available option.
Note that you can list all
the available BroadPhase by typing `granoo -d -f BroadPhase`.
Please refer to the documentation of the chosen BroadPhase to get the list
of available option.
NarrowPhase (string, default="")
: The wanted `Collision::NarrowPhase` Method. Note that you can list all
the available NarrowPhase by typing `granoo -d -f NarrowPhase`
Please refer to the documentation of the chosen NarrowPhase to get the list
of available option. The NarrowPhase method is optional because some
BroadPhase algorithm treat on-the-fly and embed the NarrowPhase collision step.
ExcludeInteraction(bool, default=False)
: If set to true the interacted bonded bodies are not taken into account
### Example ###
Using Hertz Mindlin model
```
<MANAGE-COLLISION Between="Body/Body"
BroadPhase="Lcm" SkipNarrowPhase="True" Regularization="POSITION"
CallBack="HertzMindlin" RestitutionCoeff="0.1" StaticFriction="0.6"
E_star="5e9" G_star="2e9" RollingLimit="5°"/>
```
Or using the standard2 contact
```
<MANAGE-COLLISION Between="Body/Body"
BroadPhase="Lcm" SkipNarrowPhase="True" Set="Global" Regularization="VELOCITY"
CallBack="Standard2" NormalStiffness="1e7" RestitutionCoeff="0.5"
StaticFriction="0.6" RollingLimit="20°"/>
```
### Simulation example ###
`00105_{dem}{mechanical}{granular}_MULTISHAPE-RAIN` and a lot of others that implement conacts
)V0G0N"

◆ desc [64/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Monitor the value of a mathematical expression and put it in a sensor.
Don't forget to use the `WRITE-SENSOR_DATA` plugin with this plugin to
trigger the writing of the date in the `Sensors.txt` file.
### Info ###
+ Process on : `Math::Expression`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Expression (string)
: Give a mathematical expression (inlined or outlined).
For outlined expression they can be instantiated
with the _NEW-EXPRESSION_ PlugIn.
SensorLobal (string)
: The label of the related column in the sensor file
### Example ###
```
<MONITOR-EXPRESSION Expression="sin(t)" SensorLabel="Sine"/>
<MONITOR-EXPRESSION Expression="SineRamp" SensorLabel="Sine"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [65/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin monitor the current value of deleted item of a given type.
This plugin has no influence on the computation except the possibility to
stop the simulation with the `StopAt` option.
### Info ###
+ Process on : All
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
What (string)
: The type of item to delete : `Core::Base`, `DEM::Element`, `Physic::Body`, `Physic::Ground` and so on...
### Optional param ###
Set (string, default="Global")
: The plugin removes only the particular items that belong to the specified set
StopAt (int, default=0)
: If the number of deleted items is higher than this value, the computation is stopped
ID (string, default="")
: If ID is set, the plugin removes only item with the specified ID. It works only for classes that
own ID such as `Physic::Ground`, `DEM::Tool` or `DEM::SupportShape`
Symbol (string, default="")
: If a symbol is set, two variables are automatically created. The first, named 'n_symbol', is
related to the total number of removed items. The second, named 'dn_symbol' is related to the
difference between two consecutive runs of this plugin of the 'n_symbol'. It is useful for
triggering automatically saving domains if broken bond are detected as follows ;
<MONITOR-ITEM-NUMBER What="DEM::Bond" Symbol="dbond"/>
...
<SAVE-DOMAIN TriggerIf="dn_dbond > 1"/>
### Example ###
```
<MONITOR-ITEM-NUMBER What="Physic::Ground"/>
<MONITOR-ITEM-NUMBER What="DEM::SupportShape" ID="Boundary"/>
<MONITOR-ITEM-NUMBER What="DEM::Beam" StopAt="1000"/>
```
### Simulation example ###
`00034_{lattice}{dem}{mechanical}{elastic}{beam}_BRAZILIAN-TEST`
)V0G0N"

◆ desc [66/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin monitor a global strain of a given set of Physic::Node elements.
The strain is computed with both a linear displacement assumption and
least square method to approximate a global linear displacement field.
Base on this global linear displacement field a strain is measurement.
This Plugin creates a sensor and must be ran in the processing section
to be updated.
### Info ###
+ Process on : `Physic::Node` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `Physic::Node` SetOf ID to measure the strain
### Example ###
```
<MONITOR-STRAIN/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [67/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Math::Expression` with a given ID
### Info ###
+ Recommended section: PreProcessing
### Required param ###
F (string)
: Put here the mathematical formula related to your expression
ID (string)
: The ID of the new Math::Expression. Note that related new Math::Expression
can be retrieved in C++ code with `Math::Expression::glob("ID")`
### Example ###
```
<NEW-EXPRESSION F="Sin(3*t)+4" ID="Sinus" />
```
### Simulation example ###
`00014_{lattice}{dem}{mechanical}{brittle}{beam}_BENDING-TEST` and some others
)V0G0N"

◆ desc [68/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Geom::Frame` with a given ID. The created frame can be used
to set position and orientation of new items.
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Center (triplet of float or string)
: Put here the coordinates of the frame center, for example (0., 0. ,1.5)
Or, you can set a Center ID of a point already built with the _NewPoint_ PlugIn.
ID (string)
: The ID of the new `Geom::Frame`. The new `Geom::Frame` can be retrieved
in C++ code with `Geom::Frame::glob("ID")`
### Optional param ###
Quat (quadruplet of float or string, default=(0,0,0,1))
: Put here the coordinates of the frame quaternion, for example (0., 0. ,0. ,1.)
Or, you can set a Quaternion ID of a quaternion already built with the _NewQuaternion_ PlugIn.
Note that this param is optional, if you set the nothing a default
unit quaternion (0., 0., 0., 1.) is chosen.
### Example ###
```
<NEW-FRAME Center="Pt" Quat="Qt" ID="F1" />
<NEW-FRAME Center="Pt" ID="F2" />
<NEW-FRAME Center="(0,0,1)" ID="F3" />
<NEW-FRAME Center="(0,0,1)" Quat="(0,0,1)(90)" ID="F4" />
```
### Simulation example ###
`00032_{lattice}{dem}{mechanical}{elastic}{beam}_BOUNCING-BALL-v1/` and many other examples
)V0G0N"

◆ desc [69/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Physic::Ground` with a given ID. A ground is a rigid body which
is excluded for the dynamic calculation. So, a ground is fixed by default. However,
you can impose a displacement ta a ground to move it.
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Type (string)
: Set the type of the Ground. It must be Cylinder, Cone, etc...
To get the list of all the available attributes please refer to the specific
documentation of each tool. To get this documentation, simply run granoo with
the following argument `granoo -d -f Ground`
### Optional param ###
ID (string)
: The ID of the new Ground. The new Ground can be retrieved
in C++ code with `Physic::Ground::glob("ID")` or by its child class
such as `Physic::GroundT<Shape::Sphere>::glob("ID")`.
Set (string, default="")
: put the created tool in the specified set. If the set does not exist,
a new one is created.
### Example ###
```
<NEW-GROUND Type="Sphere" Radius="1.0" ID="Sphere"/>
```
### Simulation example ###
`00032_{lattice}{dem}{mechanical}{elastic}{beam}_BOUNCING-BALL-v1` and many other examples
)V0G0N"

◆ desc [70/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Physic::Material` with a given ID
### Info ###
+ Recommended section: PreProcessing
### Required param ###
ID (string)
: Set the name of the material (must be unique)
Set (string)
: Specify a set of DEM::Element related to the given material
### Optional param ###
YoungModulus (float, default = 0)
: Specify the Young's modulus of the material
PoissonRatio (float, default = 0)
: Specify the Poisson's ratio of the material
### Example ###
```
<NEW-MATERIAL ID="Steel" YoungModulus="210e9" PoissonRatio="0.2" Set="Drum"/>
```
### Simulation example ###
`00102_{dem}{mechanical}{granular}_MIXER` and some other examples
)V0G0N"

◆ desc [71/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Physic::MaterialCouple` with a given ID. A material couple
can be used with contact to implement specific material properties between
two specific material. A material couple must be related to two specific
materials defined with the NEW-MATERIAL plugin. After that, if you want to
use it inside contact management, you must activate the 'UseMat' option of
the Callback method of the 'MANAGE-COLLISION' plugin.
### Info ###
+ Recommended section: PreProcessing
### Required param ###
ID (string)
: Set a unique ID of this material couple, it should be
like "Material1 / Material2"
### Optional param ###
NormalStiffness (float, default=0)
: The normal stiffness of the contact
AdhesionForce (float, default=0)
: The adhesion force of the contact
RestitutionCoeff (float, default=0)
: The restitution coefficient of the contact. Must be in
the [0, 1] range.
TangentialStiffness (float, default=0)
: The tangential stiffness of the contact
StaticFriction (float, default=0)
: The static friction coefficient of the contact.
Must be in the [0, 0.5] range
DynamicFriction (float, default=0)
: The dynamic friction coefficient of the contact.
Must be in the [0, 0.5] range
FrictionSlope (float, default=1e5)
: The Friction slope of the contact (used for regularization of friction)
RollingStiffness (float, default=0)
: The rolling stiffness of the contact
RollingLimit (float, default=0)
: The rolling limit of the contact
### Example ###
```
<NEW-MATERIAL-COUPLE ID="Aluminium / Steel" RestitutionCoeff="0.4" StaticFriction="0.2" />
```
### Simulation example ###
`00102_{dem}{mechanical}{granular}_MIXER`
)V0G0N"

◆ desc [72/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Geom::Point` with a given ID
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Val (triplet of float)
: Put here the point value with the format (xxx, yyy, zzz)
ID (string)
: The ID of the new Geom::Point. The new `Geom::Point` can be retrieved
in C++ code with `Geom::Point::glob("ID")`
### Example ###
```
<NEW-POINT Val="(1.0, 0.3, 0.)" ID="P1o"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [73/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Geom::Quaternion` with a given ID
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Val (quadruplet of float)
: Put here the quaternion value with the format (xxx, yyy, zzz, rrrr).
Instead of the standard quadruplet quaternion, you can specify an
axis-angle definition (more intuitive) as : (x,y,z)(a) where (x,y,z)
is the axis and a is the angle in degree.
ID (string)
: The ID of the new `Geom::Quaternion`. The new `Geom::Quaternion` can be retrieved
in C++ code with `Geom::Quaternion::glob("ID")``
### Example ###
```
<NEW-QUATERNION Val=(1.0, 0.3, 0.) ID="Q1"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [74/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `DEM::SupportShape` with a given ID. A `DEM::SupportShape` is a shape
that contains a discrete domain. You can associate the `DEM::SupportShape` with
this discrete domain. If you call _UPDATE-SUPPORT-SHAPE_ PlugIn the length
of the support shape is recomputed from the state of its associated discrete
elements.
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Type (string)
: Set the type of the `DEM::SupportShape`. It must be a Cylinder, a Cone, etc...
### Optional param ###
ID (string)
: The ID of the new Ground. The new Ground can be retrieved
in C++ code with `Physic::Ground::glob("ID")` or by its child class
such as `Physic::GroundT<Shape::Sphere>::glob("ID")`.
Set (string, default="")
: put the created tool in the specified set. If the set does not exist,
a new one is created.
To get the list of all the available attributes please refer to the specific
documentation of each tool. To get this documentation, simply run granoo with
the following argument `granoo -d -f SupportShape`
### Example ###
```
<NEW-SUPPORT-SHAPE Type="Sphere" Radius="1.0" ID="SHShape"/>
```
### Simulation example ###
No example, but it could be replaced by NEW-GROUND plugin in most of case
)V0G0N"

◆ desc [75/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Physic::Time` with a given ID. This feature may be used when
multiple time steps are required. For example, a simulation may embed a mechanical
time step and a thermal time step with different values.
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Val (float)
: The value of the time step
ID (string)
: The ID of the new `Physic::Time`
Note that you can retrieve your time step in C++ code
with the `Physic::Time::glob("ID")` static method. In addition,
new `Math::Variable` are dynamically created. You can retrieve them
as t_ID, it_ID, dt_ID and use them to construct expression in your inp file.
### Example ###
```
<NEW-TIME-STEP Val="1e-3" ID="Thermal"/>
```
### Simulation example ###
`00040_{lattice}{thermo-mechanical}{elastic}{beam}_THERMAL-CONDUCTION`
)V0G0N"

◆ desc [76/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `DEM::Tool` with a given ID. A `DEM::Tool` is a
body that may interact and collide with `DEM::DiscreteElement`.
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Type (string)
: Set the type of the tool. It must be a Cylinder, a Cone, etc...
### Optional param ###
ID (string)
: The ID of the new tool. The new tool can be retrieved
in C++ code with `DEM::Tool::glob("ID")` or by its child class
such as `DEM::ToolT<Shape::Shere>::glob("ID")`.
Density (float, default=1000)
: set the density value used to compute mass and inertia tensor
of the tool
Set (string, default="")
: put the created tool in the specified set. If the set does not exist,
a new one is created.
To get the list of all the available attributes please refer to the specific
documentation of each tool. To get this documentation, simply run granoo with
the following argument `granoo -d -f Tool`
### Example ###
```
<NEW-TOOL Type="Sphere" Radius="1.0" ID="Impacter"/>
```
### Simulation example ###
`00034_{lattice}{dem}{mechanical}{elastic}{beam}_BRAZILIAN-TEST` and some other examples
)V0G0N"

◆ desc [77/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Math::Variable` with a given ID
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Val (float)
: Set the initial value of the variable
ID (string)
: The ID of the new `Math::Variable`. The new `Math::Variable` can be retrieved
in C++ code with `Math::Variable::glob("expression_id")`
### Required param ###
Description (string, default="")
: Set a description of the variable.
### Example ###
```
<NEW-VARIABLE Val="6.283185307179586" desc="this is 2 x pi" ID="2_PI"/>
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [78/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Creates a new `Geom::Vector` with a given ID
### Info ###
+ Recommended section: PreProcessing
### Required param ###
Val (triplet of float)
: Put here the vector value with the format (xxx, yyy, zzz)
ID (string)
: The ID of the new `Geom::Vector`. The new `Geom::Vector` can be retrieved
in C++ code with `Geom::Vector;;glob("ID")`
### Example ###
```
<NEW-VECTOR Val=(1.0, 0.3, 0.) ID="V1"/>
```
### Simulation example ###
No example (but it is useless plugin)
)V0G0N"

◆ desc [79/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Put a body with a given ID in contact with others. This plugin is useful
when you create a Tool with the NewTool plugin. You can place your tool
aproximately with the `NEW-TOOL` plugin and use this plugin to put the
tool very close from your domain. The algorithm implemented here is a
kind of dichotomy algorithm. So, you need a
- an initial step used to move the body,
- a direction vector used to move the body and
- a targeted precision used to stop the calculation.
### Info ###
+ Process on : `Physic::Body`
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
ID (string)
: The ID of the body to put in contact
Direction (triplet of float)
: The direction to move the body
InitialStep (float)
: Value of the initial step for moving the body
Precision (float)
: When the penetration is less than this value the calculation is stopped
### Optional param ###
Set (string, default=global)
: The `Physic::Body` set used to compute contact
### Example ###
```
<PUT-IN-CONTACT ID="indentor" Direction="(0,-1,0)" InitialStep="0.000001" Precision="1e-10"/>
```
### Simulation example ###
`00034_{lattice}{dem}{mechanical}{elastic}{beam}_BRAZILIAN-TEST`
)V0G0N"

◆ desc [80/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin read a discrete domain file (or a Finite Element file (.gfem format)
and load it in the current simulation.
### Info ###
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
FileName (string)
: the domain file name to load in the simulation
### Optional param ###
Suffix (string, default="")
: Gives a suffix to all SetOf contained in the loaded domain
Prefix (string, default="")
: Gives a prefix to all SetOf contained in the loaded domain
Set (string, default="")
: Constructs a new SetOf and registers all the domain items inside
this new set.
Freeze (bool, default=True)
: If set to True, the loaded domain is frozen. It means that its velocity
and acceleration (linear and angular) are set to null values
and its initial parameters are updated to the current parameter.
DeleteSupportShape (bool, default=False)
: If set to True, the SupportShapes related to the loaded domain are deleted.
FastMode (bool, default=False)
: If set to True, the file is loading in fast mode which can siginificantly
speedup the time needs to load a huge domain. Be aware FastMode is not
compatible with some option such as Suffix, Prefix and Set.
### Example ###
```
<READ-DOMAIN FileName="Hello.agdd" FastMode="True"/>
```
### Simulation example ###
`00003_{tutorial}_SIMPLE-TENSILE-TEST` and a lot of examples
)V0G0N"

◆ desc [81/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Releases the electrical power, computed by the `CONDUCT-CURRENT` plugin, as heat.
The amount of released electrical power can be adjusted with the non-dimensional
factor eta, where eta is in the range [0, 1]. When eta=0, no electrical power is
released, while eta=1 means that 100\% of the electrical power is released as heat.
### Info ###
+ Process on : `DEM::Element` set that own a `DEM::Electrical` and `DEM::Thermal` properties
+ Multithreaded : No
+ Recommended section: Processing
### Required parameters ###
Factor (float)
: The eta factor, must be in the range [0, 1]
### Optional param ###
Set (string, default=global)
: The `DEM::Element` SetOf ID to apply the treatment
### Example ###
```
<RELEASE-EL-POWER-AS-HEAT Factor="0.9" />
```
### Simulation example ###
`/00043_{lattice}{thermo-electrical}{beam}_JOULE-HEATING`
)V0G0N"

◆ desc [82/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This PlugIn resets all the sensors
### Info ###
+ Process on : `libCore::Sensor` objects
+ Multithreaded : No
+ Recommended section: Processing
### Example ###
```
<RESET-SENSOR />
```
)V0G0N"

◆ desc [83/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Writes the simulation state in a file. 3 file formats are available:
- the .gdd format that store a complete copy of the simulation state.
Be carefull, this format is not good for portability.
- the .agdd format that store a simplified version of the state.
This format is very simple and ensure portability. Note that this
format is dedicated for DEM simulations.
- the .lgdd format that store a simplified version of the state.
This format ensure portability and may work with any kind of simulations.
- the .xyz or .xyzr format is a very simple and common format that stores
the discrete element center and their radii
- the .off format only save the polyhedral support shape in the .off format
Note that you can visualize these files with the gddViewer program. If you want
to use paraview, you have to use the _ExportToPVD_ PlugIn instead.
### Info ###
+ Process on : All items
+ Multithreaded : No
+ Recommended section: All
### Optional param ###
FileName (string, default="")
: Set the name of the file to store. If you do not set this field the
name of the file will take automatically the current iteration number.
Precision (integer, default=10)
: The number of digits that take the automatic name (see above)
Type (string, default="gdd")
: The type of the stored file, must be "gdd", "agdd", "lgdd", "off", "xyz", "xyzr"
Prefix (string, default="domain")
: Set the file prefix (only useful for automatic saving)
### Example ###
```
<SAVE-DOMAIN EveryIter="50"/>
<SAVE-DOMAIN TriggerIf="(t>=20 and t<=30)" Type="lgdd"/>
<SAVE-DOMAIN FileName="DiscreteDomain1.gdd"/>
```
### Simulation example ###
`00011_{lattice}{dem}{mechanical}{brittle}{beam}_TENSILE-TEST` and a lot of examples
)V0G0N"

◆ desc [84/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin makes operations between two SetOf :union, make_intersection or make_difference
### Info ###
+ Multithreaded : No
+ Recommended section: PreProcessing
### Required param ###
Set (string)
: Gives the SetOf ID that stores the result of the operation. If the
the SetOf ID does not exist a new SetOf is created.
Set1 (string)
: Gives the first SetOf ID to perform the operation.
Set2 (string)
: Gives the second SetOf ID to perform the operation.
Op (string)
: Gives the wanted operator. Allowed values are "union",
"make_intersection" and "make_difference".
### Example ###
```
<SETOF-OPERATOR Set1="Global" Set2="xMin" Op="make_difference" Set="Result" />
```
### Simulation example ###
No example (TODO)
)V0G0N"

◆ desc [85/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
The solver CD is an Explicit solver for finite element simulation
### Info ###
+ Process on : `Physic::Node`
+ Multithreaded : No
+ Recommended section: Processing
### Example ###
```
<SOLVER-CD />
```
### Simulation example ###
`00050_{fem}{mechanical}{elastic}_TENSILE-TEST` and some other FEM examples
)V0G0N"

◆ desc [86/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Compute and apply the pressure force on `SPH::Particle`
### Info ###
+ Process on : `SPH::Particle` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `SPH::Particle` SetOf ID to apply the treatment
### Example ###
```
<SPH-APPLY-PRESSURE-FORCE />
```
### Simulation example ###
`00060_{sph}{mechanical}{fluid}_LIQUID-RAIN`
)V0G0N"

◆ desc [87/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Compute and apply the viscous force on `SPH::Particle`
### Info ###
+ Process on : `SPH::Particle` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `SPH::Particle` SetOf ID to apply the treatment
### Example ###
```
<SPH-APPLY-VISCOUS-FORCE/>
```
### Simulation example ###
`00060_{sph}{mechanical}{fluid}_LIQUID-RAIN`
)V0G0N"

◆ desc [88/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Clear the interactions on a `SPH::Particle` set
### Info ###
+ Process on : `SPH::Particle` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `SPH::Particle` SetOf ID to apply the treatment
### Example ###
```
<SPH-CLEAR-INTERACTION />
```
### Simulation example ###
`00060_{sph}{mechanical}{fluid}_LIQUID-RAIN`
)V0G0N"

◆ desc [89/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Update the interaction between `SPH::Particle`
### Info ###
+ Process on : `SPH::Particle` set
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Method (string)
: Choose a detection method. To get the list of available method,
type `granoo -d -f BroadPhase_SPH`.
Please refer to the documentation of the chosen detection method
to get the list of available option.
### Example ###
```
<SPH-UPDATE-INTERACTION Method="Lcm"/>
```
### Simulation example ###
`00060_{sph}{mechanical}{fluid}_LIQUID-RAIN`
)V0G0N"

◆ desc [90/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Update the local density of a `SPH::Particle` set
### Info ###
+ Process on : `SPH::Particle` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `SPH::Particle` SetOf ID to apply the treatment
### Example ###
```
<SPH-UPDATE-LOCAL-DENSITY />
```
### Simulation example ###
`00060_{sph}{mechanical}{fluid}_LIQUID-RAIN`
)V0G0N"

◆ desc [91/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Update the local pressure of a `SPH::Particle` set
### Info ###
+ Process on : `SPH::Particle` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
GazStiffness (float)
: global gaz stiffness
GazDensity (float)
: global gaz density
### Optional param ###
Set (string, default=global)
: The `SPH::Particle` SetOf ID to apply the treatment
### Example ###
```
<SPH-UPDATE-PRESSURE GazStiffness="3" GazDensity="1000"/>
```
### Simulation example ###
`00060_{sph}{mechanical}{fluid}_LIQUID-RAIN`
)V0G0N"

◆ desc [92/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This Plugin can be used to solve a static problem in one iteration.
At this time, it can be used only with a XBeam Set. Note that you must
compile GranOO in `FEM_MODE` (this is the default mode) to use this feature.
### Info ###
+ Process on : `DEM::Bond` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `DEM::Bond` SetOf ID to apply the treatment
### Example ###
```
<STATIC-SOLVE/>
```
### Simulation example ###
`00020_{lattice}{fem}{mechanical}{elastic}{xbeam}_TENSILE-TEST` and other xbeam examples
)V0G0N"

◆ desc [93/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This plugin is a special plugin that you must trigger when
you want to begin a new sequence in your simulation. Commonly
there are only 3 steps : PreProcessing, Processing and PostProcessing.
However, with this plugin, you can do as you want. It is quite useful
when you want to mix several sequence in your simulation.
### Info ###
+ Process on : Nothing
+ Multithreaded : No
### Required param ###
Label (string)
: The name of your step
### Optional param ###
TimeStep (float, default=none)
: You can choose a kind of local time step for your step
DisplayProgression (bool, default=True)
: Display the current progression of your step (or not)
IterNumber (int, default=1)
: Choose a number of iteration loop
ResetIteration (bool, default=False)
: If set to yes, the total number of iteration is set to zero at the beginning of the step
### Example ###
```
<STEP Label="init-processing" IterNumber="10000" >
...
... some plugin here ...
...
</STEP>
```
### Simulation example ###
`00001_{tutorial}_HELLO-WORLD` and all the examples !
)V0G0N"

◆ desc [94/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Update `DEM::SupportShape` length from its associated moving `DEM::DiscreteElement` set.
The `DEM::SupportShape` are a perfect shape which can be associated to a discrete domain.
It is useful when you want to compute macroscopic global stresses or strains.
### Info ###
+ Process on : `DEM::SupportShape` set
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
Set (string, default=global)
: The `DEM::SupportShape` ID to apply the treatment
### Example ###
```
<UPDATE-SUPPORT-SHAPE />
```
### Simulation example ###
`00010_{lattice}{dem}{mechanical}{elastic}{beam}_TENSILE-TEST` and some other examples
)V0G0N"

◆ desc [95/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This Plugin is quite rigorous way for computing the new positions and angular positions.
If you want to really have an accurate solution, you can use this plugin instead of the
`INTEGRATE-ACCELERATION` plugin. Note that :
- we do not find any significant difference between `INTEGRATE-ACCELERATION` and this plugin
- this plugin must be used with the VELOCITY-VERLET-STEP2
This plugin corresponds to the step 1 and 2 described on the wikipedia page [1] while
`VELOCITY-VERLET-STEP2` corresponds to the step 3 and 4
### Info ###
+ Process on : `Physic::Node` and `Physic::Body`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Linear (bool)
: Set to true if you want to perform linear integration
Angular (bool)
: Set to true if you want to perform angular integration
### Optional param ###
Set (string, default=global)
: The SetOf ID (both `Physic::Body` and `Physic::Node`) to apply the treatment
TimeStep (string, default=)
: Give an alternative `Physic::Time` ID to use. This alternatrive time step may be created
with the _NewTimeStep_ plugin. By default the main time step is chosen.
### Example ###
```
<VELOCITY-VERLET-STEP1 Linear="Yes" Angular="No"/>
... some plugins and treatments (bond loads, contact managements, etc.) ...
<VELOCITY-VERLET-STEP2 Linear="Yes" Angular="No"/>
```
### Simulation example ###
No example, useful for internal benchmark
> [1] https://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet
)V0G0N"

◆ desc [96/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
This Plugin is quite rigorous way for computing the new positions and angular positions.
If you want to really have an accurate solution, you can use this plugin instead of the
`INTEGRATE-ACCELERATION` plugin. Note that :
- we do not find any significant difference between `INTEGRATE-ACCELERATION` and this plugin
- this plugin must be used with the VELOCITY-VERLET-STEP1
This plugin corresponds to the step 3 and 4 described on the wikipedia page [1] while
`VELOCITY-VERLET-STEP1` corresponds to the step 1 and 2
### Info ###
+ Process on : `Physic::Node` and `Physic::Body`
+ Multithreaded : No
+ Recommended section: Processing
### Required param ###
Linear (bool)
: Set to true if you want to perform linear integration
Angular (bool)
: Set to true if you want to perform angular integration
### Optional param ###
Set (string, default=global)
: The SetOf ID (both `Physic::Body` and `Physic::Node`) to apply the treatment
TimeStep (string, default=)
: Give an alternative `Physic::Time` ID to use. This alternatrive time step may be created
with the _NewTimeStep_ plugin. By default the main time step is chosen.
### Example ###
```
<VELOCITY-VERLET-STEP1 Linear="Yes" Angular="No"/>
... some plugins and treatments (bond loads, contact managements, etc.) ...
<VELOCITY-VERLET-STEP2 Linear="Yes" Angular="No"/>
```
### Simulation example ###
No example, useful for internal benchmark
> [1] https://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet
)V0G0N"

◆ desc [97/97]

const char* GranOO3::PlugIn::desc
static
Initial value:
= R"V0G0N(
Writes the data acquired by the numerical sensors into a single ASCII
delimited file.Use this plugin to generate automatically the ASCII
output file. The file is ASCII delimited, with each sensor data in a
column. The data can be plotted with a Python script, or any
plotter (spreadSheet, Gnuplot, Python MatplotLib...).
You must initialize the sensors to record in specific plugin. You
can browse the example directory to get some illustrations.
With the attribute _HeaderShape_, you can chose to format the header
(giving the labels of the data columns) as rows or columns of sensors label.
If the Energy Balance is activated (see EnergyBalance plugin) total energies
are stored in sensors.
You can use the python script granoo-plot to post-treat your
sensor file.
### Info ###
+ Process on : `libCore::Sensor` objects
+ Multithreaded : No
+ Recommended section: Processing
### Optional param ###
HeaderShape (string, default="Column")
: Choose the header shape, allowed values are "Column" or "Row"
FileName (string, default="Sensors.txt")
: Choose a file name
### Example ###
```
<WRITE-SENSOR-DATA HeaderShape="Column"/>
```
### Simulation example ###
`00010_{lattice}{dem}{mechanical}{elastic}{beam}_TENSILE-TEST` and a lot of examples
that implement numerical sensors
)V0G0N"