![]() |
AGX Dynamics 2.40.0.0
|
This class is used to describe the general material properties of the Terrain. More...
#include <TerrainMaterial.h>
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 &description="") | |
Default constructor. | |
ExcavationContactProperties (TerrainMaterial *terrainMaterial) | |
Default constructor. | |
agx::Real | getAggregateStiffnessMultiplier () const |
Internal Method. | |
BulkProperties * | getBulkProperties () 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::String | getLastError () const |
agx::Real | getMaximumAggregateNormalForce () const |
agx::Real | getMaximumContactDepth () const |
ParticleProperties * | getParticleProperties () const |
agx::Real | getSoilPackingFraction () const |
void | printParameters () const |
Print the internal material parameters in a formatted way. | |
void | setAggregateStiffnessMultiplier (agx::Real stiffnessMultiplier) |
Internal Method. | |
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 name 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 | 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. | |
![]() | |
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 () |
void | synchronizeBulkProperties (Terrain *terrain) |
void | synchronizeParticleProperties (Terrain *terrain) |
void | updateParticleDensity (Terrain *terrain) |
![]() | |
virtual | ~Referenced () |
Destructor. | |
void | allocateObserverVector () const |
void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static bool | ValidateCast (const Referenced *object) |
![]() | |
static DeleteHandler * | getDeleteHandler () |
static void | setDeleteHandler (DeleteHandler *handler) |
Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
![]() | |
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.
agxTerrain::TerrainMaterial::TerrainMaterial | ( | const agx::String & | description = "" | ) |
Default constructor.
|
protectedvirtual |
|
protectedvirtual |
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 875 of file TerrainMaterial.h.
|
inline |
Definition at line 881 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 893 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::String agxTerrain::TerrainMaterial::getLastError | ( | ) | const |
agx::Real agxTerrain::TerrainMaterial::getMaximumAggregateNormalForce | ( | ) | const |
agx::Real agxTerrain::TerrainMaterial::getMaximumContactDepth | ( | ) | const |
|
inline |
Definition at line 887 of file TerrainMaterial.h.
agx::Real agxTerrain::TerrainMaterial::getSoilPackingFraction | ( | ) | const |
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::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 name 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::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) |
|
protected |
|
protected |
|
protected |
agxTerrain::TerrainMaterial::AGXTERRAIN_STORE_RESTORE_INTERFACE |
Definition at line 857 of file TerrainMaterial.h.