In file terrainMaterial.h:Class for describing terrain (soil/rock/snow) mechanical properties for improved contact simulation
Public Fields
-
General properties
-
Soil constants
- Constants for Terzaghi's equation
Public Methods
-
void computeDerivedConstants(double gravity)
- computes constants needed for later calculations, some of which depend on gravity
-
double computeSinkage(double &force, double width, double area, double zwMax, int assumeCohesionless = -1)
- returns the sinkage of a wheel supporting a given force over a given area, which has a given width.
-
double computeSinkage(double &force, double width, double area, double dwDz, double zwMax, int assumeCohesionless = -1)
- returns the sinkage of a wheel supporting a given force over a given area, which has a given width.
-
inline double computeRollingResistance(double force, double width, double area, double sinkage)
- Computes the rolling resistance (in Newtons) for the given contact patch.
-
double computeMaximumTraction(double area, double force)
- Computes the maximum traction that can be supported by the given contact area and force, based on soil cohesion and internal friction
-
int readParams(paramParser* p)
- reads parameters from the current context of a parser.
Public Members
-
enum terrainMaterialType
- Different classes of terrain materials.
Documentation
Class for describing terrain (soil/rock/snow) mechanical properties
for improved contact simulation
- enum terrainMaterialType
- Different classes of terrain materials.
- ROCK - rocks or solid ice; effectively rigid
- SOIL - sand, clay, drift material, and other particulate materials
- SNOW - Snow or unconsolidated ice
- General properties
- int materialType
- Type of material
- double grainSize
- size of particles in material (m)
- double bulkDensity
- density of material
- double cohesion
- Cohesion, in kPa
- double internalFriction
- internal friction (degrees).
- Soil constants
- Tergazhi's equation for bearing
capacity requires several coefficients
which depend on the angle of internal
friction and whether a soil is
cohesionless or not. These coefficients
are usually obtained from a table,
such as that on p. 375 of "Essentials of
Soil Mechanics and Foundations" by
McCarthy.
- double Nc
- Constant for cohesion in Terzaghi equation. Reasonable values
are 3.5 to 18 for cohesionless soils and 5-70 for others.
Worst case cohesionless Martian drift materials has Nc = 3.5
(though cohension is 0, so this term is not used)
- double Nq
- Constant for soil surcharge in Terzaghi equation. Reasonable
values are 0-16 for cohesionless soils and 0-70 for others.
Worst case cohesionless Martian drift materials has Nq = 3.5.
- double Ng
- Constant for gamma in Terzaghi equation. Reasonable values are
0-16 for cohesionless soilds and 0-70 for others. For phi <= 14 deg,
Ng is 0.
Worst case cohesionless Martian drift materials has Ng = 1.0.
- double gamma
- soil specific weight; equals density * gravity. Units = Newtons
- double cNc
- cohesion * Nc
- double tanPhi
- tangent of angle of internal friction
- int cohesionlessSinkage
- indicates whether or not cohesion should be considered when computing
sinkage. cohesionlessSinkage = 1 is worst case (conservative)
- void computeDerivedConstants(double gravity)
- computes constants needed for later calculations, some of which depend
on gravity
- double computeSinkage(double &force, double width, double area, double zwMax, int assumeCohesionless = -1)
- returns the sinkage of a wheel supporting a given force over
a given area, which has a given width. Sinkage is computed
using Terzaghi's equation. If the computed sinkage required
to support the supplied force is greater than zwMax, then force
will be clipped to the maximum force supportable at zwMax.
Three different useful values for assumeCohesionless can be supplied:
- 1 - assume soil is cohesionless (worst case; cohesion = 0)
- 0 - use current value of 'cohesion'
- -1 - use the value of 'cohesionlessSinkage'
- double computeSinkage(double &force, double width, double area, double dwDz, double zwMax, int assumeCohesionless = -1)
- returns the sinkage of a wheel supporting a given force over
a given area, which has a given width. Sinkage is computed
using Terzaghi's equation, with a trapezoidal approximation
to tire deflection. If the computed sinkage required
to support the supplied force is greater than zwMax, then force
will be clipped to the maximum force supportable at zwMax.
Three different useful values for assumeCohesionless can be supplied:
- 1 - assume soil is cohesionless (worst case; cohesion = 0)
- 0 - use current value of 'cohesion'
- -1 - use the value of 'cohesionlessSinkage'
- inline double computeRollingResistance(double force, double width, double area, double sinkage)
- Computes the rolling resistance (in Newtons) for the given
contact patch. The value for 'sinkage' can be obtained from
terrainMaterial::computeSinkage().
- double computeMaximumTraction(double area, double force)
- Computes the maximum traction that can be supported by the given
contact area and force, based on soil cohesion and internal friction
- int readParams(paramParser* p)
- reads parameters from the current context of a parser.
The parameters are:
- enum { ROCK, SOIL, SNOW } materialType;
- double grainSize (meters)
- double bulkDensity (kg/m^3)
- double cohesion (kPa)
- double internalFriction (degrees)
- int cohesionlessSinkage (1 or 0)
For materials of type SOIL or SNOW, the following additional parameters
are read:
- double Nc (dimensionless)
- double Ny (dimensionless)
- double Nq (dimensionless)
These last three coefficients (bearing capacity factors) depend on
the angle of internal friction and can be found in texts on
foundations and soil mechanics (e.g. "Essentials of Soil Mechanics
and Foundations", McCarthy, p. 375).
- This class has no child classes.
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.