|
AGX Dynamics 2.42.3.0
|
This class is used to describe the general material properties of the Terrain. More...
#include <TerrainMaterial.h>
Inheritance diagram for agxTerrain::TerrainMaterial:Classes | |
| class | BulkProperties |
| Class containing the soil bulk properties of and agxTerrain object. More... | |
| class | CompactionProperties |
| Class containing the properties of the soil compaction model used in agxTerrain, such as compression index and soil hardening constants. More... | |
| class | ParticleProperties |
| Class containing the properties of the created soil particles in the Terrain, such as particle density and contact parameters amongst soil particles and between soil particles and the terrain surface. More... | |
Public Member Functions | |
| TerrainMaterial (const agx::String &name="") | |
| Constructor. | |
| ExcavationContactProperties (TerrainMaterial *terrainMaterial) | |
| Default constructor. | |
| agx::Real | getAggregateStiffnessMultiplier () const |
| Internal Method. | |
| BulkProperties * | getBulkProperties () const |
| agx::Real | getCohesiveModulusBekker () const |
| agx::Real | getCohesiveModulusReece () const |
| CompactionProperties * | getCompactionProperties () const |
| agx::Real | getDepthAngleThreshold () const |
| Get the depth angle threshold between the separation normal and the terrain-aggregate contact plane. | |
| agx::Real | getDepthDecayFactor () const |
| agx::Real | getDepthIncreaseFactor () const |
| const agx::String & | getDescription () const |
| ExcavationContactProperties * | getExcavationContactProperties () const |
| agx::Real | getExcavationStiffnessMultiplier () const |
| Get the contact stiffness multiplier for the generated contacts between the soil aggregates <-> shovels in primary excavation. | |
| agx::Real | getFrictionalModulusBekker () const |
| agx::Real | getFrictionalModulusReece () const |
| agx::String | getLastError () const |
| agx::Real | getMaximumAggregateNormalForce () const |
| agx::Real | getMaximumContactDepth () const |
| agx::Real | getMaximumNormalStressAngleParameterA () const |
| agx::Real | getMaximumNormalStressAngleParameterB () const |
| const agx::String & | getName () const |
| ParticleProperties * | getParticleProperties () const |
| agx::Real | getRearAngleParameterA () const |
| agx::Real | getRearAngleParameterB () const |
| agx::Real | getShearModulusLateralParameterA () const |
| agx::Real | getShearModulusLateralParameterB () const |
| agx::Real | getShearModulusTangentialParameterA () const |
| agx::Real | getShearModulusTangentialParameterB () const |
| agx::Real | getSinkageExponentParameterA () const |
| agx::Real | getSinkageExponentParameterB () const |
| agx::Real | getSoilPackingFraction () const |
| TerramechanicsProperties * | getTerramechanicsProperties () const |
| void | printParameters () const |
| Print the internal material parameters in a formatted way. | |
| void | setAggregateStiffnessMultiplier (agx::Real stiffnessMultiplier) |
| Internal Method. | |
| void | setCohesiveModulusBekker (agx::Real v) |
| void | setCohesiveModulusReece (agx::Real v) |
| void | setDepthAngleThreshold (agx::Real depthAngleThreshold) |
| Set the depth angle threshold between the separation normal and the terrain-aggregate contact plane. | |
| void | setDepthDecayFactor (agx::Real depthDecay) |
| Set the depth decay factor of a soil aggregate <-> terrain contact. | |
| void | setDepthIncreaseFactor (agx::Real depthIncreaseFactor) |
| Set the depth increase factor of a soil aggregate <-> terrain contact. | |
| void | setDescription (const agx::String &description) |
| Set the description of the object. | |
| void | setExcavationStiffnessMultiplier (agx::Real excavationStiffnessMultiplier) |
| Set the contact stiffness multiplier for the generated contacts between the soil aggregates <-> shovels in primary excavation. | |
| void | setFrictionalModulusBekker (agx::Real v) |
| void | setFrictionalModulusReece (agx::Real v) |
| void | setMaximumAggregateNormalForce (agx::Real maximumAggregateForce) |
| Set the maximum force that the soil aggregate <-> terrain contacts are allowed to have. | |
| void | setMaximumContactDepth (agx::Real maximumDepth) |
| Set the maximum depth (m) of a soil aggregate <-> terrain contact. | |
| void | setMaximumNormalStressAngleParameterA (agx::Real v) |
| void | setMaximumNormalStressAngleParameterB (agx::Real v) |
| void | setName (const agx::String &name) |
| Set the name of the object. | |
| void | setRearAngleParameterA (agx::Real v) |
| void | setRearAngleParameterB (agx::Real v) |
| void | setShearModulusLateralParameterA (agx::Real v) |
| void | setShearModulusLateralParameterB (agx::Real v) |
| void | setShearModulusTangentialParameterA (agx::Real v) |
| void | setShearModulusTangentialParameterB (agx::Real v) |
| void | setSinkageExponentParameterA (agx::Real v) |
| void | setSinkageExponentParameterB (agx::Real v) |
| TerramechanicsProperties () | |
Public Member Functions inherited from agx::Referenced | |
| Referenced () | |
| Default constructor. | |
| Referenced (const Referenced &) | |
| template<typename T > | |
| T * | as () |
| Subclass casting. | |
| template<typename T > | |
| const T * | as () const |
| template<typename T > | |
| T * | asSafe () |
| Safe subclass casting, return nullptr if template type does not match. | |
| template<typename T > | |
| const T * | asSafe () const |
| int | getReferenceCount () const |
| template<typename T > | |
| bool | is () const |
| Subclass test. | |
| Referenced & | operator= (const Referenced &) |
| Assignment operator. Will increment the number of references to the referenced object. | |
| void | reference (void *ptr=nullptr) const |
| Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
| void | unreference (void *ptr=nullptr) const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| void | unreference_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
Public Attributes | |
| AGXTERRAIN_STORE_RESTORE_INTERFACE | |
Protected Member Functions | |
| virtual | ~ExcavationContactProperties () |
| virtual | ~TerrainMaterial () |
| virtual | ~TerramechanicsProperties () |
| void | synchronizeBulkProperties (Terrain *terrain) |
| void | synchronizeParticleProperties (Terrain *terrain) |
| void | updateParticleDensity (Terrain *terrain) |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
Static Protected Member Functions inherited from agx::Referenced | |
| static DeleteHandler * | getDeleteHandler () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
Protected Attributes inherited from agx::Referenced | |
| Mutex | m_mutex |
| ObserverContainer | m_observers |
| AtomicValue | m_refCount |
This class is used to describe the general material properties of the Terrain.
Properties that govern the contact properties in the shovel <-> soil aggregate and soil aggregate <-> terrain contacts during excavation.
When a TerrainMaterial instance is added to a terrain object, it affects the soil failure zone characteristics and feedback forces and also calibrates the internal contact materials governing soil dynamics. All the different parameters are grouped into different objects that reflects the phenomena that they affect:
BulkProperties - Holds the overarching bulk properties of the terrain and mainly affect excavation zone shapes, penetration resistance and contact material properties for excavation feedback forces.
CompactionProperties - Properties with regards to the compaction algorithm used in the terrain.
ParticleProperties - Properties that govern the soil dynamics of created soil particles during excavation, which is expressed via the contact material parameters within the soil particles and without.
ExcavationContactProperties - Properties that govern the contact properties in the shovel <-> soil aggregate and soil aggregate <-> terrain contacts during excavation.
These objects can be extracted from the TerrainMaterial instance in order to change the Terrain characteristics.
Note that using any of the set methods on a TerrainMaterial instance will cause it to recalibrate the set method's governing contact material parameter in the terrain instance. This can override any previous manual user setting of the terrain contact material.
The contacts have virtual depth that increases when the separation plane of the excavation presses against the plane of the aggregate <-> terrain contact. This class contains properties for governing the depth and force properties of those contacts.
Definition at line 53 of file TerrainMaterial.h.
| typedef agx::observer_ptr< const BulkProperties > agxTerrain::TerrainMaterial::BulkPropertiesConstObserver |
Definition at line 56 of file TerrainMaterial.h.
Definition at line 56 of file TerrainMaterial.h.
Definition at line 56 of file TerrainMaterial.h.
Definition at line 56 of file TerrainMaterial.h.
| typedef agx::observer_ptr< const CompactionProperties > agxTerrain::TerrainMaterial::CompactionPropertiesConstObserver |
Definition at line 58 of file TerrainMaterial.h.
| typedef agx::ref_ptr< const CompactionProperties > agxTerrain::TerrainMaterial::CompactionPropertiesConstRef |
Definition at line 58 of file TerrainMaterial.h.
| typedef agx::observer_ptr< CompactionProperties > agxTerrain::TerrainMaterial::CompactionPropertiesObserver |
Definition at line 58 of file TerrainMaterial.h.
Definition at line 58 of file TerrainMaterial.h.
| typedef agx::observer_ptr< const ExcavationContactProperties > agxTerrain::TerrainMaterial::ExcavationContactPropertiesConstObserver |
Definition at line 59 of file TerrainMaterial.h.
| typedef agx::ref_ptr< const ExcavationContactProperties > agxTerrain::TerrainMaterial::ExcavationContactPropertiesConstRef |
Definition at line 59 of file TerrainMaterial.h.
| typedef agx::observer_ptr< ExcavationContactProperties > agxTerrain::TerrainMaterial::ExcavationContactPropertiesObserver |
Definition at line 59 of file TerrainMaterial.h.
| typedef agx::ref_ptr< ExcavationContactProperties > agxTerrain::TerrainMaterial::ExcavationContactPropertiesRef |
Definition at line 59 of file TerrainMaterial.h.
| typedef agx::observer_ptr< const ParticleProperties > agxTerrain::TerrainMaterial::ParticlePropertiesConstObserver |
Definition at line 57 of file TerrainMaterial.h.
| typedef agx::ref_ptr< const ParticleProperties > agxTerrain::TerrainMaterial::ParticlePropertiesConstRef |
Definition at line 57 of file TerrainMaterial.h.
| typedef agx::observer_ptr< ParticleProperties > agxTerrain::TerrainMaterial::ParticlePropertiesObserver |
Definition at line 57 of file TerrainMaterial.h.
Definition at line 57 of file TerrainMaterial.h.
| typedef agx::observer_ptr< const TerramechanicsProperties > agxTerrain::TerrainMaterial::TerramechanicsPropertiesConstObserver |
Definition at line 60 of file TerrainMaterial.h.
| typedef agx::ref_ptr< const TerramechanicsProperties > agxTerrain::TerrainMaterial::TerramechanicsPropertiesConstRef |
Definition at line 60 of file TerrainMaterial.h.
| typedef agx::observer_ptr< TerramechanicsProperties > agxTerrain::TerrainMaterial::TerramechanicsPropertiesObserver |
Definition at line 60 of file TerrainMaterial.h.
| typedef agx::ref_ptr< TerramechanicsProperties > agxTerrain::TerrainMaterial::TerramechanicsPropertiesRef |
Definition at line 60 of file TerrainMaterial.h.
| agxTerrain::TerrainMaterial::TerrainMaterial | ( | const agx::String & | name = "" | ) |
Constructor.
| name | - the name of the object. |
|
protectedvirtual |
|
protectedvirtual |
|
inlineprotectedvirtual |
Definition at line 1041 of file TerrainMaterial.h.
| agxTerrain::TerrainMaterial::ExcavationContactProperties | ( | TerrainMaterial * | terrainMaterial | ) |
Default constructor.
| agx::Real agxTerrain::TerrainMaterial::getAggregateStiffnessMultiplier | ( | ) | const |
Internal Method.
Get the contact stiffness multiplier for the generated contacts between the soil aggregates <-> terrain for excavation and deformation. The final Young's modulus value that will be used in the contact material thus becomes:
YM_final = BulkYoungsModulus * stiffnessMultiplier
|
inline |
Definition at line 1062 of file TerrainMaterial.h.
| agx::Real agxTerrain::TerrainMaterial::getCohesiveModulusBekker | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getCohesiveModulusReece | ( | ) | const |
|
inline |
Definition at line 1068 of file TerrainMaterial.h.
| agx::Real agxTerrain::TerrainMaterial::getDepthAngleThreshold | ( | ) | const |
Get the depth angle threshold between the separation normal and the terrain-aggregate contact plane.
When the angle is below this threshold, additional depth within the contact plane contributes to increasing the overall contact depth used in the terrain-aggregate contact model.
| agx::Real agxTerrain::TerrainMaterial::getDepthDecayFactor | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getDepthIncreaseFactor | ( | ) | const |
| const agx::String & agxTerrain::TerrainMaterial::getDescription | ( | ) | const |
|
inline |
Definition at line 1080 of file TerrainMaterial.h.
| agx::Real agxTerrain::TerrainMaterial::getExcavationStiffnessMultiplier | ( | ) | const |
Get the contact stiffness multiplier for the generated contacts between the soil aggregates <-> shovels in primary excavation.
The final Young's modulus value that will be used in the contact material thus becomes:
YM_final = BulkYoungsModulus * stiffnessMultiplier
| agx::Real agxTerrain::TerrainMaterial::getFrictionalModulusBekker | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getFrictionalModulusReece | ( | ) | const |
| agx::String agxTerrain::TerrainMaterial::getLastError | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getMaximumAggregateNormalForce | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getMaximumContactDepth | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getMaximumNormalStressAngleParameterA | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getMaximumNormalStressAngleParameterB | ( | ) | const |
| const agx::String & agxTerrain::TerrainMaterial::getName | ( | ) | const |
|
inline |
Definition at line 1074 of file TerrainMaterial.h.
| agx::Real agxTerrain::TerrainMaterial::getRearAngleParameterA | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getRearAngleParameterB | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getShearModulusLateralParameterA | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getShearModulusLateralParameterB | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getShearModulusTangentialParameterA | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getShearModulusTangentialParameterB | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getSinkageExponentParameterA | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getSinkageExponentParameterB | ( | ) | const |
| agx::Real agxTerrain::TerrainMaterial::getSoilPackingFraction | ( | ) | const |
|
inline |
Definition at line 1085 of file TerrainMaterial.h.
| void agxTerrain::TerrainMaterial::printParameters | ( | ) | const |
Print the internal material parameters in a formatted way.
| void agxTerrain::TerrainMaterial::setAggregateStiffnessMultiplier | ( | agx::Real | stiffnessMultiplier | ) |
Internal Method.
Set the contact stiffness multiplier for the generated contacts between the soil aggregates <-> terrain for excavation and deformation. The final Young's modulus value that will be used in the contact material thus becomes:
YM_final = BulkYoungsModulus * stiffnessMultiplier
| stiffnessMultiplier | - Set the specified stiffness multiplier for the Young's Modulus in soil aggregate contacts for excavation and deformation. (Default: 0.002) |
| void agxTerrain::TerrainMaterial::setCohesiveModulusBekker | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setCohesiveModulusReece | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setDepthAngleThreshold | ( | agx::Real | depthAngleThreshold | ) |
Set the depth angle threshold between the separation normal and the terrain-aggregate contact plane.
When the angle is below this threshold, additional depth within the contact plane contributes to increasing the overall contact depth used in the terrain-aggregate contact model.
| depthAngleThreshold | - The angle threshold for when aggregate <-> terrain contact model depth should increase. ( Default: pi / 4 ( 45 deg ) ) |
| void agxTerrain::TerrainMaterial::setDepthDecayFactor | ( | agx::Real | depthDecay | ) |
Set the depth decay factor of a soil aggregate <-> terrain contact.
This determines how rapidly the stored depth in a terrain <-> aggregate contact will decay during separation when the active zone moves away from the soil aggregate <-> terrain contact plane.
| depthDecay | - the decay factor of the depth of a terrain <-> aggregate contact during separation. (Default: 2.0) |
| void agxTerrain::TerrainMaterial::setDepthIncreaseFactor | ( | agx::Real | depthIncreaseFactor | ) |
Set the depth increase factor of a soil aggregate <-> terrain contact.
This governs how fast the depth should increase when the separation direction of the excavation intersects the contact plane, causing virtual soil compression between soil aggregates and the terrain.
| depthIncreaseFactor | - The factor the governs how fast the depth should increase when the separation direction intersects with the contact plane. (Default: 1.0) |
| void agxTerrain::TerrainMaterial::setDescription | ( | const agx::String & | description | ) |
Set the description of the object.
| void agxTerrain::TerrainMaterial::setExcavationStiffnessMultiplier | ( | agx::Real | excavationStiffnessMultiplier | ) |
Set the contact stiffness multiplier for the generated contacts between the soil aggregates <-> shovels in primary excavation.
The final Young's modulus value that will be used in the contact material thus becomes:
YM_final = BulkYoungsModulus * stiffnessMultiplier
| excavationStiffnessMultiplier | - Set the specified stiffness multiplier for the Young's Modulus in soil aggregate <-> shovel contacts for excavation. (Default: 1.0) |
| void agxTerrain::TerrainMaterial::setFrictionalModulusBekker | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setFrictionalModulusReece | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setMaximumAggregateNormalForce | ( | agx::Real | maximumAggregateForce | ) |
Set the maximum force that the soil aggregate <-> terrain contacts are allowed to have.
Default maximum values are determined by the soil mechanics properties of the terrain.
| maximumAggregateForce | - The maximum aggregate force that a terrain contact are allowed to have. (Default: inf) |
| void agxTerrain::TerrainMaterial::setMaximumContactDepth | ( | agx::Real | maximumDepth | ) |
Set the maximum depth (m) of a soil aggregate <-> terrain contact.
This increases when the separation direction of the excavation intersects the contact plane, causing virtual soil compression between soil aggregates and the terrain.
| maximumDepth | - the maximum depth that the soil aggregate <-> terrain contacts are allowed to have. (Default: 1.0) |
| void agxTerrain::TerrainMaterial::setMaximumNormalStressAngleParameterA | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setMaximumNormalStressAngleParameterB | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setName | ( | const agx::String & | name | ) |
Set the name of the object.
| void agxTerrain::TerrainMaterial::setRearAngleParameterA | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setRearAngleParameterB | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setShearModulusLateralParameterA | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setShearModulusLateralParameterB | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setShearModulusTangentialParameterA | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setShearModulusTangentialParameterB | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setSinkageExponentParameterA | ( | agx::Real | v | ) |
| void agxTerrain::TerrainMaterial::setSinkageExponentParameterB | ( | agx::Real | v | ) |
|
protected |
|
protected |
| agxTerrain::TerrainMaterial::TerramechanicsProperties | ( | ) |
|
protected |
| agxTerrain::TerrainMaterial::AGXTERRAIN_STORE_RESTORE_INTERFACE |
Definition at line 877 of file TerrainMaterial.h.