chrono::vehicle::CRMTerrain Class Reference
Description
Continuum representation (CRM) deformable terrain model using SPH.
#include <CRMTerrain.h>
Inheritance diagram for chrono::vehicle::CRMTerrain:
Collaboration diagram for chrono::vehicle::CRMTerrain:
Public Member Functions | |
CRMTerrain (ChSystem &sys, double spacing) | |
Create a CRM terrain object. | |
virtual void | Synchronize (double time) override |
Update the state of the terrain system at the specified time. | |
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... | |
Public Member Functions inherited from chrono::vehicle::ChTerrain | |
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. | |
Public Member Functions inherited from chrono::fsi::ChFsiProblemCartesian | |
ChFsiProblemCartesian (ChSystem &sys, double spacing) | |
Create a ChFsiProblemSPH object. More... | |
void | Construct (const std::string &sph_file, const std::string &bce_file, const ChVector3d &pos) |
Construct using information from the specified files. More... | |
void | Construct (const ChVector3d &box_size, const ChVector3d &pos, int side_flags) |
Construct SPH particles and optionally BCE markers in a box of given dimensions. More... | |
void | Construct (const std::string &heightmap_file, double length, double width, const ChVector2d &height_range, double depth, bool uniform_depth, const ChVector3d &pos, int side_flags) |
Construct SPH particles and optionally BCE markers from a given heightmap. More... | |
size_t | AddBoxContainer (const ChVector3d &box_size, const ChVector3d &pos, int side_flags) |
Add fixed BCE markers, representing a container for the computational domain. More... | |
std::shared_ptr< ChBody > | ConstructWaveTank (WavemakerType type, const ChVector3d &pos, const ChVector3d &box_size, double depth, std::shared_ptr< ChFunction > piston_fun, std::shared_ptr< WaveTankProfile > profile=nullptr, bool end_wall=true) |
Add a wave tank with a rigid-body wavemaker (piston-type or flap-type). More... | |
Public Member Functions inherited from chrono::fsi::ChFsiProblemSPH | |
void | SetVerbose (bool verbose) |
Enable verbose output during construction of ChFsiProblemSPH (default: false). | |
ChFsiSystemSPH & | GetSystemFSI () |
Access the underlying FSI system. | |
ChFluidSystemSPH & | GetFluidSystemSPH () |
Access the underlying SPH system. | |
ChSystem & | GetMultibodySystem () |
Access the underlying MBS system. | |
size_t | AddRigidBody (std::shared_ptr< ChBody > body, const chrono::utils::ChBodyGeometry &geometry, bool check_embedded, bool use_grid_bce=false) |
Add a rigid body to the FSI problem. More... | |
size_t | AddRigidBodySphere (std::shared_ptr< ChBody > body, const ChVector3d &pos, double radius, bool use_grid_bce=false) |
size_t | AddRigidBodyBox (std::shared_ptr< ChBody > body, const ChFramed &pos, const ChVector3d &size) |
size_t | AddRigidBodyCylinderX (std::shared_ptr< ChBody > body, const ChFramed &pos, double radius, double length, bool use_grid_bce=false) |
size_t | AddRigidBodyMesh (std::shared_ptr< ChBody > body, const ChVector3d &pos, const std::string &obj_file, const ChVector3d &interior_point, double scale) |
void | SetBcePattern1D (BcePatternMesh1D pattern, bool remove_center=false) |
Set the BCE marker pattern for 1D flexible solids for subsequent calls to AddFeaMesh. More... | |
void | SetBcePattern2D (BcePatternMesh2D pattern, bool remove_center=false) |
Set the BCE marker pattern for 2D flexible solids for subsequent calls to AddFeaMesh. More... | |
size_t | AddFeaMesh (std::shared_ptr< fea::ChMesh > mesh, bool check_embedded) |
Add an FEA mesh to the FSI problem. More... | |
void | RegisterParticlePropertiesCallback (std::shared_ptr< ParticlePropertiesCallback > callback) |
Register a callback for setting SPH particle initial properties. | |
void | SetComputationalDomainSize (ChAABB aabb) |
Explicitly set the computational domain limits. More... | |
void | Initialize () |
Complete construction of the FSI problem and initialize the FSI system. More... | |
std::shared_ptr< ChBody > | GetGroundBody () const |
Get the ground body. | |
size_t | GetNumSPHParticles () const |
Get number of SPH particles. | |
size_t | GetNumBoundaryBCEMarkers () const |
Get number of boundary BCE markers. | |
const ChAABB & | GetComputationalDomainSize () const |
Get limits of computational domain. | |
const ChAABB & | GetSPHBoundingBox () const |
Get limits of SPH volume. | |
const ChVector3d & | GetFsiBodyForce (std::shared_ptr< ChBody > body) const |
Return the FSI applied force on the specified body (as returned by AddRigidBody). More... | |
const ChVector3d & | GetFsiBodyTorque (std::shared_ptr< ChBody > body) const |
Return the FSI applied torque on on the specified body (as returned by AddRigidBody). More... | |
void | SaveInitialMarkers (const std::string &out_dir) const |
Save the set of initial SPH and BCE grid locations to files in the specified output directory. | |
Additional Inherited Members | |
Public Types inherited from chrono::fsi::ChFsiProblemSPH | |
enum | WavemakerType { PISTON, FLAP } |
Wave generator types. | |
Protected Types inherited from chrono::fsi::ChFsiProblemSPH | |
typedef std::unordered_set< ChVector3i, CoordHash > | GridPoints |
typedef std::vector< ChVector3d > | RealPoints |
Protected Member Functions inherited from chrono::fsi::ChFsiProblemSPH | |
ChFsiProblemSPH (ChSystem &sys, double spacing) | |
Create a ChFsiProblemSPH object. More... | |
void | ProcessBody (RigidBody &b) |
Prune SPH markers that are inside the solid body volume. More... | |
int | ProcessBodyMesh (RigidBody &b, ChTriangleMeshConnected trimesh, const ChVector3d &interior_point) |
Prune SPH markers that are inside a body mesh volume. More... | |
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 | |
Protected Attributes inherited from chrono::fsi::ChFsiProblemSPH | |
ChFluidSystemSPH | m_sysSPH |
underlying Chrono SPH system | |
ChFsiSystemSPH | m_sysFSI |
underlying Chrono FSI system | |
double | m_spacing |
particle and marker spacing | |
std::shared_ptr< ChBody > | m_ground |
ground body | |
GridPoints | m_sph |
SPH particle grid locations. | |
GridPoints | m_bce |
boundary BCE marker grid locations | |
ChVector3d | m_offset_sph |
SPH particles offset. | |
ChVector3d | m_offset_bce |
boundary BCE particles offset | |
ChAABB | m_domain_aabb |
computational domain bounding box | |
ChAABB | m_sph_aabb |
SPH volume bounding box. | |
std::vector< RigidBody > | m_bodies |
list of FSI rigid bodies | |
std::vector< FeaMesh > | m_meshes |
list of FSI FEA meshes | |
std::unordered_map< std::shared_ptr< ChBody >, size_t > | m_fsi_bodies |
std::shared_ptr< ParticlePropertiesCallback > | m_props_cb |
callback for particle properties | |
bool | m_verbose |
if true, write information to standard output | |
bool | m_initialized |
set to 'true' once terrain is initialized | |
Member Function Documentation
◆ GetCoefficientFriction()
|
inlineoverridevirtual |
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).
Reimplemented from chrono::vehicle::ChTerrain.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/terrain/CRMTerrain.h
- /builds/uwsbel/chrono/src/chrono_vehicle/terrain/CRMTerrain.cpp