chrono::vehicle::FEATerrain Class Reference

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:
Collaboration diagram for chrono::vehicle::FEATerrain:

Public Member Functions

 FEATerrain (ChSystem *system)
 Construct a default FEADeformableSoil. More...
 
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. More...
 
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. More...
 
void Initialize (const ChVector3d &start_point, const ChVector3d &terrain_dimension, const ChVector3i &terrain_discretization)
 Initialize the terrain system (flat). More...
 
std::shared_ptr< fea::ChMeshGetMesh () 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. More...
 
void RegisterNormalFunctor (std::shared_ptr< NormalFunctor > functor)
 Specify the functor object to provide the terrain normal at given locations. More...
 
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< HeightFunctorm_height_fun
 functor for location-dependent terrain height
 
std::shared_ptr< NormalFunctorm_normal_fun
 functor for location-dependent terrain normal
 
std::shared_ptr< FrictionFunctorm_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
[in,out]systempointer 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.

◆ 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_pointBase point to build terrain box
[in]terrain_dimensionterrain dimensions in the 3 directions
[in]terrain_discretizationNumber 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]rhoSoil density
[in]EmodSoil modulus of elasticity
[in]nuSoil Poisson ratio
[in]yield_stressSoil yield stress, for plasticity
[in]hardening_slopeSoil hardening slope, for plasticity
[in]friction_angleSoil internal friction angle
[in]dilatancy_angleSoil dilatancy angle

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_vehicle/terrain/FEATerrain.h
  • /builds/uwsbel/chrono/src/chrono_vehicle/terrain/FEATerrain.cpp