|
| static agx::Real | calculateBoussinesqFrolichSubSoilStress (agx::Real depth, agx::Real surfaceForce, agx::Real concentrationFactor, const agx::Vec3 &rk_vec) |
| | Calculate stress at a given depth and distance from a surface point force using the Boussinesq-Frolich method.
|
| |
| static agx::Real | calculateCompactionTimeFactor (agx::Real contactTime, agx::Real tau_c) |
| | Calculate the compaction time factor used to relax the compaction rate of the material.
|
| |
| static agx::Real | calculateCompressionMultiplier (agx::Real hardnessRate, agx::Real compaction) |
| | Calculate the compression multiplier which is used to modify the Young's Modulus of terrain contacts given the soil compaction at the contact location.
|
| |
| static agx::Real | calculateDilatancyAngle (agx::Real dilatancyAngleScalingFactor, agx::Real dilatancyAngle, agx::Real compaction) |
| | Calculate the dilatancy angle for a TerrainMaterial given a specific compaction.
|
| |
| static agx::Real | calculateDilatancyAngleVoxel (const Terrain *terrain, const agx::Vec3i &voxelIndex) |
| | Calculate the local dilatancy angle in a specified voxel in the terrain.
|
| |
| static agx::Real | calculateEffectiveFrictionAngle (agx::Real nominalFrictionAngle, agx::Real dilatancyAngleScalingFactor, agx::Real nominalDilatancyAngle, agx::Real compaction) |
| | Calculate the effective friction angle of a TerrainMaterial given a specified compaction.
|
| |
| static agx::Real | calculateEffectiveFrictionAngleTerrainIndex (const Terrain *terrain, const agx::Vec2i &terrainIndex) |
| | Calculate the effective friction angle at the surface of a specific terrain with a given terrain index.
|
| |
| static agx::Real | calculateEffectiveFrictionAngleVoxel (const Terrain *terrain, const agx::Vec3i &voxelIndex) |
| | Calculate the effective friction angle of a voxel in a specific terrain.
|
| |
| static agx::Real | calculateEffectiveReposeAngle (const TerrainMaterial *terrainMaterial) |
| | Calculate the effective repose angle of a specific terrain, unmodified by compaction.
|
| |
| static agx::Real | calculateHardnessMultiplier_CAM_CLAY (agx::Real k_e, agx::Real n_e, agx::Real compaction) |
| | Calculate the hardness multiplier for the the Cam-Clay model from critical-state theories.
|
| |
| static bool | calculateNewCompactionFromStressLog10 (Terrain *terrain, const agx::Vec3i &voxelIndex, agx::Real stress, agx::Real timeFactor, agx::Real &newCompaction) |
| | Estimate new compaction in a voxel from an applied stress using the density log10 method.
|
| |
| static bool | calculateNewCompactionFromStressVoidRatio (Terrain *terrain, const agx::Vec3i &voxelIndex, agx::Real stress, agx::Real timeFactor, agx::Real &newCompaction) |
| | Estimate new compaction in a voxel from an applied stress using the void ratio method.
|
| |
| static agx::Real | calculatePreconsolidationStressLog10 (Terrain *terrain, const agx::Vec3i &voxelIndex) |
| | Calculate the pre-consolidation stress of the material in a voxel with specified index using the void ratio method.
|
| |
| static agx::Real | calculatePreconsolidationStressVoidRatio (Terrain *terrain, const agx::Vec3i &voxelIndex) |
| | Calculate the pre-consolidation stress of the material in a voxel with specified index using the void ratio method.
|
| |
| static agx::Real | calculateReposeHeight (Terrain *terrain, const agx::Vec2i &receivingIndex, const agx::Vec2i &reposingIndex) |
| | Calculate the local repose height, i.e the height difference where above that avalanching will begin, between two terrain indices, which is determined by the material angle of repose and the local compaction.
|
| |
| static agx::Vec2 | calculateReposeHeights (Terrain *terrain, const agx::Vec3i &receivingSurfaceVoxelIndex, const agx::Vec3i &reposingSurfaceVoxelIndex, const agx::Vec2 &tanReposeAngles) |
| | Performs the same calculations as calculateReposeHeight and also computes the height difference for the reverse flow.
|
| |
| static agx::Vec2 | calculateReposeHeights (Terrain *terrain, const agx::Vec3i &receivingSurfaceVoxelIndex, const agx::Vec3i &reposingSurfaceVoxelIndex, const agx::Vec2 &tanReposeAngles, const agx::Real &receivingSurfaceCompaction, const agx::Real &reposingSurfaceCompaction) |
| | Performs the same calculations as calculateReposeHeight and also computes the height difference for the reverse flow.
|
| |
| static agx::Real | calculateStressFromUniformDiskLoad (agx::Real depth, agx::Real surfaceLoad, agx::Real diskRadius) |
| | Calculate stress at a given depth directly under the middle axis of a uniform disk, given in "An Introduction to Soil Mechanics pg. 219." This is the Boussinesq method integrated over a uniform disk.
|
| |
| static agx::Real | calculateTanReposeAngle (Terrain *terrain, const agx::Vec2i &reposingIndex) |
| |
| static agx::Real | calculateYoungsModulus_CAM_CLAY (agx::Real originalYoungsModulus, agx::Real k_e, agx::Real n_e, agx::Real compaction) |
| | Calculate a new Young's modulus using the Cam-Clay model from critical-state theories.
|
| |
| static agx::Real | calculateYoungsModulus_POW2 (agx::Real originalYoungsModulus, agx::Real hardeningRate, agx::Real compaction) |
| | Calculate a new Young's modulus given a hardening rate and compaction.
|
| |
| static agx::Real | estimateCriticalCompaction (agx::Real dilatancyAngleScalingFactor, agx::Real dilatancyAngle) |
| | Estimate the critical compaction of a TerrainMaterial which is used in calculating the local dilatancy angle in the terrain from varying compaction.
|
| |
| static agx::Real | getAngleOfReposeMultiplier (Terrain *terrain, const agx::Vec3i &voxelIndex) |
| | Calculate the multiplier which is used to modify the local angle of repose of the material given the compaction in a voxel.
|
| |
| static agx::Real | getAngleOfReposeMultiplier (Terrain *terrain, const agx::Vec3i &voxelIndex, const agx::Real compaction) |
| | Calculate the multiplier which is used to modify the local angle of repose of the material given the compaction in a voxel.
|
| |
Utility class where most of the physics calculation used in agxTerrain is gathered.
Definition at line 26 of file TerrainPhysics.h.
Estimate new compaction in a voxel from an applied stress using the density log10 method.
Compaction occurs only if the applied stress is bigger than the pre-consolidation stress in the element. The compaction curve follows the following expression:
delta_rho = (C * log10( stress / preconsolidationStress )) * timeFactor new_rho = old_rho + delta_rho
where 'stress' is the applied stress in the voxel, 'preconsolidationStress' is the pre-consolidation stress of the material in nominal compaction given by the User in BulkMaterial, 'C' is the compression index of the material, 'old_rho' the density of the material given nominal compaction of the material, 'delta_rho' is the change in density, timeFactor is a factor the relaxes the rate change in density/compaction over time given a relaxation constant (See 'calculateCompactionTimeFactor') and 'new_rho' is the new density.
The new compaction of the material is given by the ratio between the new and the old density:
new_compaction = new_rho/old_rho
- Parameters
-
| terrain | - The Terrain that will be processed |
| voxelIndex | - The specified index to check for compression |
| stress | - The applied stress (Pa) in the voxel. |
| timeFactor- | The time factor (0.0-1.0) which modifies the calculated change in compaction from the applied stress. Used for compaction rate relaxation. |
| newCompaction | - The new compaction of the voxel, or the old one if no compaction occurred. |
- Returns
- True if compaction occurred in the voxel, false otherwise.
Estimate new compaction in a voxel from an applied stress using the void ratio method.
Compaction occurs only if the applied stress is bigger than the pre-consolidation stress in the element. The compaction curve follows the following expression:
rho_new = rho_old * ( 1.0 / ( 1.0 - phi0 * C * ln( stress / preconsolidationStress ) ) ) * timeFactor
where 'C' is the compression index, 'rho_new' is the new density of the material, 'rho_old' is the old density before compaction, 'preconsolidationStress' is stress used to initialize the soil in the bank sate, 'stress' is the applied compaction stress, timeFactor is a factor the relaxes the rate change in density/compaction over time given a relaxation constant (See 'calculateCompactionTimeFactor') and 'new_rho' is the new density. and phi zero is derived from the initial void ratio e0 ( Default phi0: 0.5 ) in the soil:
phi0 = 1.0 / ( 1.0 + e0 )
The new compaction of the material is given by the ratio between the new and the old density:
new_compaction = new_rho/old_rho
- Parameters
-
| terrain | - The Terrain that will be processed |
| voxelIndex | - The specified index to check for compression |
| stress | - The applied stress (Pa) in the voxel. |
| timeFactor- | The time factor (0.0-1.0) which modifies the calculated change in compaction from the applied stress. Used for compaction rate relaxation. |
| newCompaction | - The new compaction of the voxel, or the old one if no compaction occurred. |
- Returns
- True if compaction occurred in the voxel, false otherwise.