Description
Definition of the SPH continuum representation of granular terrain node (using Chrono::FSI).
#include <ChVehicleCosimTerrainNodeGranularSPH.h>


Public Member Functions | |
| ChVehicleCosimTerrainNodeGranularSPH (double length, double width) | |
| Create a Chrono::FSI granular SPH terrain node. More... | |
| ChVehicleCosimTerrainNodeGranularSPH (const std::string &specfile) | |
| Create a Chrono::FSI granular SPH terrain node using parameters from the provided JSON specfile. More... | |
| virtual ChSystem * | GetSystem () override |
| Return a pointer to the underlying Chrono system. | |
| void | SetFromSpecfile (const std::string &specfile) |
| Set full terrain specification from the provided JSON specfile. More... | |
| void | SetPropertiesSPH (const std::string &filename, double depth) |
| Specify the SPH terrain properties. | |
| void | SetGranularMaterial (double radius, double density) |
| Set properties of granular material. More... | |
| virtual void | OnInitialize (unsigned int num_tires) override |
| Initialize this Chrono terrain node. More... | |
| virtual void | OutputVisualizationData (int frame) override final |
| Output post-processing visualization data. | |
Public Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNodeChrono | |
| Type | GetType () const |
| Return the type of this terrain node. | |
| void | SetProxyFixed (bool fixed) |
| Set the proxy bodies as fixed to ground. | |
| virtual double | GetInitHeight () const override final |
| Return the terrain initial height. | |
| void | AddRigidObstacle (const RigidObstacle &obstacle) |
| Add a rigid obstacle. | |
Public Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNode | |
| virtual NodeType | GetNodeType () const override |
| Return the node type as NodeType::TERRAIN. | |
| void | EnableRuntimeVisualization (bool render, double render_fps=100) |
| Enable/disable run-time visualization (default: false). More... | |
| void | SetDimensions (double length, double width) |
| Set the terrain patch dimensions. More... | |
| virtual void | Initialize () override final |
| Initialize this node. More... | |
| virtual void | Synchronize (int step_number, double time) override final |
| Synchronize this node. More... | |
| virtual void | Advance (double step_size) override final |
| Advance simulation. More... | |
| virtual void | OutputData (int frame) override final |
| Output logging and debugging data. | |
| virtual int | GetNumContacts () const |
| Return current number of contacts. More... | |
Public Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| std::string | GetNodeTypeString () const |
| Return the node type as a string. | |
| bool | IsCosimNode () const |
| Return true if this node is part of the co-simulation infrastructure. | |
| void | SetStepSize (double step) |
| Set the integration step size (default: 1e-4). | |
| double | GetStepSize () const |
| Get the integration step size. | |
| void | SetOutDir (const std::string &dir_name, const std::string &suffix) |
| Set the name of the output directory and an identifying suffix. More... | |
| void | SetVerbose (bool verbose) |
| Enable/disable verbose messages during simulation (default: true). | |
| const std::string & | GetOutDirName () const |
| Get the output directory name for this node. | |
| double | GetStepExecutionTime () const |
| Get the simulation execution time for the current step on this node. More... | |
| double | GetTotalExecutionTime () const |
| Get the cumulative simulation execution time on this node. | |
| virtual void | WriteCheckpoint (const std::string &filename) const |
| Write checkpoint to the specified file (which will be created in the output directory). | |
Additional Inherited Members | |
Public Types inherited from chrono::vehicle::ChVehicleCosimTerrainNodeChrono | |
| enum | Type { Type::RIGID, Type::SCM, Type::GRANULAR_OMP, Type::GRANULAR_GPU, Type::GRANULAR_MPI, Type::GRANULAR_SPH, Type::UNKNOWN } |
| Type of Chrono terrain. More... | |
Public Types inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| enum | NodeType { NodeType::MBS, NodeType::TERRAIN, NodeType::TIRE } |
| Type of node participating in co-simulation. More... | |
| enum | InterfaceType { InterfaceType::BODY, InterfaceType::MESH } |
| Type of the tire-terrain communication interface. More... | |
Static Public Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNodeChrono | |
| static std::string | GetTypeAsString (Type type) |
| Return a string describing the type of this terrain node. | |
| static Type | GetTypeFromString (const std::string &type) |
| Infer the terrain node type from the given string. | |
| static bool | ReadSpecfile (const std::string &specfile, rapidjson::Document &d) |
| Read a JSON specification file for a Chrono terrain node. | |
| static Type | GetTypeFromSpecfile (const std::string &specfile) |
| Get the terrain type from the given JSON specification file. | |
| static ChVector2 | GetSizeFromSpecfile (const std::string &specfile) |
| Get the terrain dimensions (length and width) from the given JSON specification file. | |
Static Public Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| static std::string | OutputFilename (const std::string &dir, const std::string &root, const std::string &ext, int frame, int frame_digits) |
| Utility function for creating an output file name. More... | |
Protected Types inherited from chrono::vehicle::ChVehicleCosimTerrainNodeChrono | |
| typedef std::vector< ProxyBody > | Proxies |
Protected Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNodeChrono | |
| ChVehicleCosimTerrainNodeChrono (Type type, double length, double width, ChContactMethod method) | |
| Construct a base class terrain node. More... | |
| virtual void | CreateMeshProxies (unsigned int i) |
| Create proxy bodies for the i-th tire mesh. More... | |
Protected Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNode | |
| ChVehicleCosimTerrainNode (double length, double width) | |
| Construct a terrain node to wrap a terrain patch of given length and width. | |
| virtual void | OnSynchronize (int step_number, double time) |
| Perform any additional operations after the data exchange and synchronization with the MBS node. More... | |
| virtual void | UpdateMeshProxies (unsigned int i, MeshState &mesh_state) |
| Update the state of all proxy bodies for the i-th tire mesh. More... | |
| virtual void | GetForcesMeshProxies (unsigned int i, MeshContact &mesh_contact) |
| Collect cumulative contact forces on all proxy bodies for the i-th tire mesh. More... | |
Protected Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| ChVehicleCosimBaseNode (const std::string &name) | |
Protected Attributes inherited from chrono::vehicle::ChVehicleCosimTerrainNodeChrono | |
| Type | m_type |
| terrain type | |
| ChContactMethod | m_method |
| contact method (SMC or NSC) | |
| std::shared_ptr< ChMaterialSurface > | m_material_terrain |
| material properties for terrain bodies | |
| double | m_init_height |
| terrain initial height | |
| std::vector< Proxies > | m_proxies |
| proxy bodies for each tire | |
| bool | m_fixed_proxies |
| are proxy bodies fixed to ground? | |
| std::vector< RigidObstacle > | m_obstacles |
| list of rigid obstacles | |
Protected Attributes inherited from chrono::vehicle::ChVehicleCosimTerrainNode | |
| bool | m_render |
| if true, perform run-time rendering | |
| double | m_render_step |
| time step between rendered frames | |
| double | m_hdimX |
| patch half-length (X direction) | |
| double | m_hdimY |
| patch half-width (Y direction) | |
| InterfaceType | m_interface_type |
| type of communication interface | |
| std::vector< double > | m_tire_radius |
| tire radius | |
| std::vector< double > | m_tire_width |
| tire width | |
| std::vector< double > | m_load_mass |
| vertical load on tire | |
| std::vector< MaterialInfo > | m_mat_props |
| tire contact material properties | |
| std::vector< MeshData > | m_mesh_data |
| tire mesh data | |
| std::vector< MeshState > | m_mesh_state |
| tire mesh state (used for MESH communication) | |
| std::vector< BodyState > | m_spindle_state |
| spindle state (used for BODY communication interface) | |
Protected Attributes inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| int | m_rank |
| MPI rank of this node (in MPI_COMM_WORLD) | |
| double | m_step_size |
| integration step size | |
| std::string | m_name |
| name of the node | |
| std::string | m_out_dir |
| top-level output directory | |
| std::string | m_node_out_dir |
| node-specific output directory | |
| std::ofstream | m_outf |
| output file stream | |
| unsigned int | m_num_mbs_nodes |
| unsigned int | m_num_terrain_nodes |
| unsigned int | m_num_tire_nodes |
| ChTimer< double > | m_timer |
| timer for integration cost | |
| double | m_cum_sim_time |
| cumulative integration cost | |
| bool | m_verbose |
| verbose messages during simulation? | |
Static Protected Attributes inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| static const double | m_gacc = -9.81 |
Constructor & Destructor Documentation
◆ ChVehicleCosimTerrainNodeGranularSPH() [1/2]
| chrono::vehicle::ChVehicleCosimTerrainNodeGranularSPH::ChVehicleCosimTerrainNodeGranularSPH | ( | double | length, |
| double | width | ||
| ) |
Create a Chrono::FSI granular SPH terrain node.
No SPH parameters are set.
◆ ChVehicleCosimTerrainNodeGranularSPH() [2/2]
| chrono::vehicle::ChVehicleCosimTerrainNodeGranularSPH::ChVehicleCosimTerrainNodeGranularSPH | ( | const std::string & | specfile | ) |
Create a Chrono::FSI granular SPH terrain node using parameters from the provided JSON specfile.
See SetFromSpecfile.
Member Function Documentation
◆ OnInitialize()
|
overridevirtual |
Initialize this Chrono terrain node.
Construct the terrain system and the proxy bodies, then finalize the underlying FSI system.
Reimplemented from chrono::vehicle::ChVehicleCosimTerrainNodeChrono.
◆ SetFromSpecfile()
| void chrono::vehicle::ChVehicleCosimTerrainNodeGranularSPH::SetFromSpecfile | ( | const std::string & | specfile | ) |
Set full terrain specification from the provided JSON specfile.
This function is equivalent to calling SetDimensions + SetGranularMaterial + SetPropertiesSPH.
◆ SetGranularMaterial()
| void chrono::vehicle::ChVehicleCosimTerrainNodeGranularSPH::SetGranularMaterial | ( | double | radius, |
| double | density | ||
| ) |
Set properties of granular material.
- Parameters
-
radius particle radius (default: 0.01) density particle material density (default: 2000)
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/cosim/terrain/ChVehicleCosimTerrainNodeGranularSPH.h
- /builds/uwsbel/chrono/src/chrono_vehicle/cosim/terrain/ChVehicleCosimTerrainNodeGranularSPH.cpp
Public Member Functions inherited from