Project Chrono: chrono::vehicle::FEATerrain Class Reference

Public Member Functions | List of all members
chrono::vehicle::FEATerrain Class Reference
VEHICLE module » Terrain system

## Description

FEA Deformable terrain model.

This class implements a terrain made up of isoparametric finite elements. It features Drucker-Prager plasticity and capped Drucker-Prager plasticity.

`#include <FEATerrain.h>`

Inheritance diagram for chrono::vehicle::FEATerrain:
[legend]
Collaboration diagram for chrono::vehicle::FEATerrain:
[legend]

## Public Member Functions
| FEATerrain (ChSystem *system)
| Construct a default FEADeformableSoil.
virtual double | GetHeight (const ChVector3d &loc) const override
| Get the terrain height below the specified location.
virtual chrono::ChVector3d | GetNormal (const ChVector3d &loc) const override
| Get the terrain normal at the point below the specified location.
virtual float | GetCoefficientFriction (const ChVector3d &loc) const override
| Get the terrain coefficient of friction at the point below the specified location.
void | SetSoilParametersFEA (double rho, double Emod, double nu, double yield_stress, double hardening_slope, double friction_angle, double dilatancy_angle)
| Set the properties of the Drucker-Prager FEA soil.
void | Initialize (const ChVector3d &start_point, const ChVector3d &terrain_dimension, const ChVector3i &terrain_discretization)
| Initialize the terrain system (flat).
std::shared_ptr< fea::ChMesh > | GetMesh () const
| Get the underlying FEA mesh.
Public Member Functions inherited from chrono::vehicle::ChTerrain
virtual void | Synchronize (double time)
| Update the state of the terrain system at the specified time.
virtual void | Advance (double step)
| Advance the state of the terrain system by the specified duration.
virtual void | GetProperties (const ChVector3d &loc, double &height, ChVector3d &normal, float &friction) const
| Get all terrain characteristics at the point below the specified location.
void | RegisterHeightFunctor (std::shared_ptr< HeightFunctor > functor)
| Specify the functor object to provide the terrain height at given locations.
void | RegisterNormalFunctor (std::shared_ptr< NormalFunctor > functor)
| Specify the functor object to provide the terrain normal at given locations.
void | RegisterFrictionFunctor (std::shared_ptr< FrictionFunctor > functor)
| Specify the functor object to provide the coefficient of friction at given locations.

## Additional Inherited Members
Protected Attributes inherited from chrono::vehicle::ChTerrain
std::shared_ptr< HeightFunctor > | m_height_fun
| functor for location-dependent terrain height
std::shared_ptr< NormalFunctor > | m_normal_fun
| functor for location-dependent terrain normal
std::shared_ptr< FrictionFunctor > | m_friction_fun
| functor for location-dependent coefficient of friction

## Constructor & Destructor Documentation

## ◆ FEATerrain()

chrono::vehicle::FEATerrain::FEATerrain | ( | ChSystem * | system | ) |

Construct a default FEADeformableSoil.

The user is responsible for calling various Set methods before Initialize.

Parameters

  system | [in/out] pointer to the containing system);

## Member Function Documentation

## ◆ GetCoefficientFriction()

float chrono::vehicle::FEATerrain::GetCoefficientFriction | ( | const ChVector3d & | loc | ) | const
| overridevirtual

Get the terrain coefficient of friction at the point below the specified location.

This coefficient of friction value may be used by certain tire models to modify the tire characteristics, but it will have no effect on the interaction of the terrain with other objects (including tire models that do not explicitly use it). For FEATerrain, this function defers to the user-provided functor object of type ChTerrain::FrictionFunctor, if one was specified. Otherwise, it returns the constant value of 0.8.

Reimplemented from chrono::vehicle::ChTerrain.

## ◆ GetHeight()

double chrono::vehicle::FEATerrain::GetHeight | ( | const ChVector3d & | loc | ) | const
| overridevirtual

Get the terrain height below the specified location.

Reimplemented from chrono::vehicle::ChTerrain.

## ◆ GetNormal()

ChVector3d chrono::vehicle::FEATerrain::GetNormal | ( | const ChVector3d & | loc | ) | const
| overridevirtual

Get the terrain normal at the point below the specified location.

Reimplemented from chrono::vehicle::ChTerrain.

## ◆ Initialize()

void chrono::vehicle::FEATerrain::Initialize | ( | const ChVector3d & | start_point,
|  | const ChVector3d & | terrain_dimension,
|  | const ChVector3i & | terrain_discretization )

Initialize the terrain system (flat).

This version creates a flat array of points.

Parameters

  [in] | start_point | Base point to build terrain box
  [in] | terrain_dimension | terrain dimensions in the 3 directions
  [in] | terrain_discretization | Number of finite elements in the 3 directions

## ◆ SetSoilParametersFEA()

void chrono::vehicle::FEATerrain::SetSoilParametersFEA | ( | double | rho,
|  | double | Emod,
|  | double | nu,
|  | double | yield_stress,
|  | double | hardening_slope,
|  | double | friction_angle,
|  | double | dilatancy_angle )

Set the properties of the Drucker-Prager FEA soil.

Parameters

  [in] | rho | Soil density
  [in] | Emod | Soil modulus of elasticity
  [in] | nu | Soil Poisson ratio
  [in] | yield_stress | Soil yield stress, for plasticity
  [in] | hardening_slope | Soil hardening slope, for plasticity
  [in] | friction_angle | Soil internal friction angle
  [in] | dilatancy_angle | Soil dilatancy angle

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono_vehicle/terrain/FEATerrain.h
- D:/W/B/src/chrono-9.0.1/src/chrono_vehicle/terrain/FEATerrain.cpp