102 ExcavationContactProperties* getExcavationContactProperties()
const;
107 TerramechanicsProperties* getTerramechanicsProperties()
const;
480 agx::Real getDilatancyAngleScalingFactor()
const;
493 agx::Real m_compactionTimeRelaxationConstant;
569 agx::Real getAdhesionOverlapFactor()
const;
683 void setLastError( const
agx::String& errorString );
688 void updateIfDirty(
Terrain* terrain );
694 bool isDirty() const;
701 void setDirty(
bool isDirty);
707 agx::Real calculateAdhesionOverlap(
Terrain * terrain,
agx::Real adhesion );
714 void synchronize(
Terrain* terrain);
722 void updateParticleDensity(
Terrain* terrain );
723 void synchronizeBulkProperties(
Terrain* terrain );
724 void synchronizeParticleProperties(
Terrain* terrain );
728 agx::String m_description;
729 agx::String m_lastError;
887 agx::Real m_aggregateStiffnessMultiplier;
888 agx::Real m_excavationStiffnessMultiplier;
1046 agx::Real m_shearModulusTangentialParameterA;
1047 agx::Real m_shearModulusTangentialParameterB;
1048 agx::Real m_shearModulusLateralParameterA;
1049 agx::Real m_shearModulusLateralParameterB;
1054 agx::Real m_maximumNormalStressAngleParameterA;
1055 agx::Real m_maximumNormalStressAngleParameterB;
1064 return m_bulkProperties;
1070 return m_compactionProperties;
1076 return m_particleProperties;
1080 inline TerrainMaterial::ExcavationContactProperties* TerrainMaterial::getExcavationContactProperties()
const
1082 return m_excavationContactProperties;
1085 inline TerrainMaterial::TerramechanicsProperties* TerrainMaterial::getTerramechanicsProperties()
const
1087 return m_terramechanicsProperties;
1091 inline agx::Real TerrainMaterial::BulkProperties::getDensity()
const
1097 inline agx::Real TerrainMaterial::BulkProperties::getMaximumDensity()
const
1099 return m_maxDensity;
1103 inline agx::Real TerrainMaterial::BulkProperties::getYoungsModulus()
const
1105 return m_youngsModulus;
1109 inline agx::Real TerrainMaterial::BulkProperties::getPoissonsRatio()
const
1111 return m_poissonsRatio;
1115 inline agx::Real TerrainMaterial::BulkProperties::getFrictionAngle()
const
1117 return m_frictionAngle;
1120 inline agx::Real TerrainMaterial::BulkProperties::getDilatancyAngle()
const
1122 return m_dilatancyAngle;
1125 inline agx::Real TerrainMaterial::BulkProperties::getCohesion()
const
1130 inline agx::Real TerrainMaterial::BulkProperties::getTangentialCohesion()
const
1132 return m_tangentialCohesion;
1135 inline agx::Real TerrainMaterial::BulkProperties::getSwellFactor()
const
1137 return m_swellFactor;
1140 inline agx::Real TerrainMaterial::BulkProperties::getDeltaReposeAngle()
const
1142 return m_deltaReposeAngle;
1145 inline agx::Real TerrainMaterial::ParticleProperties::getAdhesionOverlapFactor()
const
1147 return m_adhesionOverlapFactor;
1150 inline agx::Real TerrainMaterial::CompactionProperties::getDilatancyAngleScalingFactor()
const
1152 return m_dilatancyAngleScalingFactor;
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXTERRAIN_STORE_RESTORE_INTERFACE
#define AGXTERRAIN_EXPORT
Class containing the soil bulk properties of and agxTerrain object.
void setDensity(agx::Real density)
Set the bulk density (kg/m^3) of the bulk material.
void setFrictionAngle(agx::Real frictionAngle)
Set the internal friction angle (rad) of the bulk material.
agx::Real m_tangentialCohesion
agx::Real m_deltaReposeAngle
void setCohesion(agx::Real cohesion)
Set the bulk cohesion (Pa) of the bulk material.
void setSwellFactor(agx::Real swellFactor)
Set the swell factor of the material, i.e how much the material will expand during excavation.
void setDilatancyAngle(agx::Real dilatancyAngle)
Set the dilatancy angle (rad) of the bulk material.
agx::Real m_poissonsRatio
agx::Real m_frictionAngle
agx::Real m_youngsModulus
agx::Real m_dilatancyAngle
BulkProperties(TerrainMaterial *terrainMaterial)
Default constructor.
void setMaximumDensity(agx::Real maxDensity)
Set the maximum density (kg/m^3) of the bulk material.
virtual ~BulkProperties()
AGXTERRAIN_STORE_RESTORE_INTERFACE
void setPoissonsRatio(agx::Real poissonsRatio)
Set the bulk Poisson's ratio of the bulk material.
void setDeltaReposeAngle(agx::Real deltaReposeAngle)
Set the delta repose angle.
void setYoungsModulus(agx::Real youngsModulus)
Set the bulk Young's modulus (Pa) of the bulk material.
void setTangentialCohesion(agx::Real tangentialCohesion)
TerrainMaterial * m_terrainMaterial
Class containing the properties of the soil compaction model used in agxTerrain, such as compression ...
void setBankStatePhi(agx::Real phi0)
Set the phi0 value of the bank state soil.
agx::Real getCompressionIndex() const
void setDilatancyAngleScalingFactor(agx::Real scalingFactor)
Set the dilatancy angle scaling factor with respect to compaction in the terrain.
agx::Real getCompactionTimeRelaxationConstant() const
agx::Real getAngleOfReposeCompactionRate() const
AGXTERRAIN_STORE_RESTORE_INTERFACE
void setCompressionIndex(agx::Real compressionIndex)
Sets the compression index for the soil, which is the constant that determines how fast the soil shou...
agx::Real getBankStatePhi() const
agx::Real getHardeningConstantKE() const
void setHardeningConstantKE(agx::Real k_e)
Set the hardening constant k_e of the bulk material, i.e how the Young's modulus of the terrain conta...
void setAngleOfReposeCompactionRate(agx::Real angleOfReposeCompactionRate)
Set how the compaction should increase the angle of repose.
agx::Real getHardeningConstantNE() const
void setPreconsolidationStress(agx::Real preconsolidationStress)
Set the stress at which the soil in the default state was compressed in, i.e when it has nominal comp...
virtual ~CompactionProperties()
agx::Real getStressCutOffFraction() const
void setCompactionTimeRelaxationConstant(agx::Real compactionTimeRelaxationConstant)
Set time relaxation for compaction.
void setStressCutOffFraction(agx::Real stressCutOffFraction)
Set the fraction of the surface stress that should serve as a cutoff value from when the stress propa...
void setHardeningConstantNE(agx::Real n_e)
Set the hardening constant n_e of the bulk material, i.e how the Young's modulus of the terrain conta...
agx::Real getPreconsolidationStress() const
Class containing the properties of the created soil particles in the Terrain, such as particle densit...
ParticleProperties(TerrainMaterial *terrainMaterial)
void setParticleTerrainRestitution(agx::Real restitution)
Set particle <-> terrain restitution of the bulk material.
virtual ~ParticleProperties()
ParticleTerrainParameters m_particleTerrainParameters
agx::Real getParticleTerrainRestitution() const
agx::Real getParticleSurfaceFriction() const
void setParticleTerrainSurfaceFriction(agx::Real friction)
Set the particle <-> terrain surface friction of the bulk material.
void setParticleTerrainRollingResistance(agx::Real rollingResistance)
Set the particle <-> terrain rolling resistance of the bulk material.
agx::Real getParticleYoungsModulus() const
agx::Real m_adhesionOverlapFactor
agx::Real getParticleTerrainSurfaceFriction() const
agx::Real getParticleCohesion() const
TerrainMaterial * m_terrainMaterial
void setParticleYoungsModulus(agx::Real youngsModulus)
Set the particle Young's modulus (Pa) of the bulk material.
agx::Real getParticleTerrainRollingResistance() const
void setParticleTerrainYoungsModulus(agx::Real youngsModulus)
Set particle <-> Terrain Young's modulus (Pa) of the bulk material.
void setParticleSurfaceFriction(agx::Real friction)
Set the particle surface friction of the bulk material.
agx::Real getParticleDensity() const
void setParticleRollingResistance(agx::Real rollingResistance)
Set the particle rolling resistance of the bulk material.
ParticleParticleParameters m_particleParticleParameters
agx::Real getParticleTerrainCohesion() const
void setAdhesionOverlapFactor(agx::Real adhesionOverlapFactor)
Set the adhesion overlap factor of particle contacts, i.e what fraction of the particle radius is all...
agx::Real getParticleTerrainYoungsModulus() const
void setParticleTerrainCohesion(agx::Real cohesion)
Set the particle <-> terrain cohesion (Pa) of the bulk material.
void setParticleRestitution(agx::Real restitution)
Set the particle restitution of the bulk material.
agx::Real getParticleRestitution() const
void setParticleCohesion(agx::Real cohesion)
Set the particle cohesion (Pa) of the bulk material.
AGXTERRAIN_STORE_RESTORE_INTERFACE
agx::Real getParticleRollingResistance() const
This class is used to describe the general material properties of the Terrain.
ExcavationContactProperties(TerrainMaterial *terrainMaterial)
Default constructor.
agx::Real getCohesiveModulusReece() const
void setDepthDecayFactor(agx::Real depthDecay)
Set the depth decay factor of a soil aggregate <-> terrain contact.
void setMaximumNormalStressAngleParameterB(agx::Real v)
void setShearModulusTangentialParameterA(agx::Real v)
agx::Real getSinkageExponentParameterA() const
agx::Real getDepthAngleThreshold() const
Get the depth angle threshold between the separation normal and the terrain-aggregate contact plane.
agx::Real getSoilPackingFraction() const
agx::Real getDepthIncreaseFactor() const
void setExcavationStiffnessMultiplier(agx::Real excavationStiffnessMultiplier)
Set the contact stiffness multiplier for the generated contacts between the soil aggregates <-> shove...
void setDepthAngleThreshold(agx::Real depthAngleThreshold)
Set the depth angle threshold between the separation normal and the terrain-aggregate contact plane.
agx::Real getShearModulusTangentialParameterA() const
agx::Real getMaximumAggregateNormalForce() const
agx::Real getShearModulusLateralParameterA() const
void setName(const agx::String &name)
Set the name of the object.
agx::String getLastError() const
void setFrictionalModulusReece(agx::Real v)
const agx::String & getName() const
void setSinkageExponentParameterA(agx::Real v)
void setCohesiveModulusReece(agx::Real v)
TerramechanicsProperties()
void setRearAngleParameterB(agx::Real v)
void setShearModulusTangentialParameterB(agx::Real v)
agx::Real getRearAngleParameterB() const
void setDepthIncreaseFactor(agx::Real depthIncreaseFactor)
Set the depth increase factor of a soil aggregate <-> terrain contact.
void setMaximumContactDepth(agx::Real maximumDepth)
Set the maximum depth (m) of a soil aggregate <-> terrain contact.
virtual ~TerramechanicsProperties()
void setShearModulusLateralParameterB(agx::Real v)
agx::Real getAggregateStiffnessMultiplier() const
Internal Method.
agx::Real getShearModulusTangentialParameterB() const
void printParameters() const
Print the internal material parameters in a formatted way.
agx::Real getCohesiveModulusBekker() const
agx::Real getRearAngleParameterA() const
agx::Real getExcavationStiffnessMultiplier() const
Get the contact stiffness multiplier for the generated contacts between the soil aggregates <-> shove...
void setShearModulusLateralParameterA(agx::Real v)
void setCohesiveModulusBekker(agx::Real v)
AGXTERRAIN_STORE_RESTORE_INTERFACE
TerrainMaterial(const agx::String &name="")
Constructor.
void setSinkageExponentParameterB(agx::Real v)
void setMaximumNormalStressAngleParameterA(agx::Real v)
void setAggregateStiffnessMultiplier(agx::Real stiffnessMultiplier)
Internal Method.
agx::Real getMaximumNormalStressAngleParameterB() const
void setMaximumAggregateNormalForce(agx::Real maximumAggregateForce)
Set the maximum force that the soil aggregate <-> terrain contacts are allowed to have.
agx::Real getMaximumContactDepth() const
agx::Real getSinkageExponentParameterB() const
void setFrictionalModulusBekker(agx::Real v)
agx::Real getDepthDecayFactor() const
agx::Real getFrictionalModulusBekker() const
agx::Real getMaximumNormalStressAngleParameterA() const
void setRearAngleParameterA(agx::Real v)
void setDescription(const agx::String &description)
Set the description of the object.
agx::Real getShearModulusLateralParameterB() const
agx::Real getFrictionalModulusReece() const
virtual ~ExcavationContactProperties()
const agx::String & getDescription() const
A terrain model based a 3D grid model with overlapping height field that can be deformed by interacti...
Base class providing referencing counted objects.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
ParticleParticleParameters()
agx::Real rollingResistance
agx::Real surfaceFriction
ParticleTerrainParameters()
agx::Real rollingResistance
agx::Real surfaceFriction