Description
Base class for all tire nodes.
#include <ChVehicleCosimTireNode.h>


| Public Types | |
| enum | TireType { TireType::RIGID, TireType::FLEXIBLE, TireType::BYPASS, TireType::UNKNOWN } | 
| Tire type.  More... | |
|  Public Types inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| enum | NodeType { NodeType::MBS_WHEELED, NodeType::MBS_TRACKED, 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... | |
| Public Member Functions | |
| virtual NodeType | GetNodeType () const override final | 
| Return the node type as NodeType::TIRE. | |
| virtual TireType | GetTireType () const =0 | 
| Return the tire type. | |
| void | SetTireFromSpecfile (const std::string &filename) | 
| Specify the tire JSON specification file name. | |
| void | EnableTirePressure (bool val) | 
| Enable/disable tire pressure (default: true). | |
| void | SetNumThreads (int num_threads) | 
| Set the number of OpenMP threads used in Chrono simulation (default: 1). | |
| void | SetIntegratorType (ChTimestepper::Type int_type, ChSolver::Type slv_type) | 
| Set integrator and solver types.  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 | OutputData (int frame) override final | 
| Output logging and debugging data. | |
|  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 | Advance (double step_size)=0 | 
| Advance simulation.  More... | |
| virtual void | OutputVisualizationData (int frame)=0 | 
| Output post-processing visualization data.  More... | |
| virtual void | WriteCheckpoint (const std::string &filename) const | 
| Write checkpoint to the specified file (which will be created in the output directory). | |
| Static Public Member Functions | |
| static std::string | GetTireTypeAsString (TireType type) | 
| Return a string describing the tire type. | |
| static TireType | GetTireTypeFromString (const std::string &type) | 
| Infer the tire type from the given string. | |
| static bool | ReadSpecfile (const std::string &specfile, rapidjson::Document &d) | 
| Read a JSON specification file for a tire. | |
| static TireType | GetTireTypeFromSpecfile (const std::string &specfile) | 
| Get the tire type 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 Member Functions | |
| ChVehicleCosimTireNode (int index) | |
| virtual InterfaceType | GetInterfaceType () const =0 | 
| Specify the type of communication interface (BODY or MESH) required by this the tire node.  More... | |
| virtual void | ConstructTire ()=0 | 
| Construct the tire.  More... | |
| virtual double | GetTireMass () const =0 | 
| Return the tire mass. | |
| virtual double | GetTireRadius () const =0 | 
| Return the tire radius. | |
| virtual double | GetTireWidth () const =0 | 
| Return the tire width. | |
| virtual void | InitializeTire (std::shared_ptr< ChWheel >)=0 | 
| Initialize the tire by attaching it to the provided ChWheel.  More... | |
| virtual void | ApplySpindleState (const BodyState &spindle_state) | 
| Apply the spindle state.  More... | |
| virtual void | LoadSpindleForce (TerrainForce &spindle_force) | 
| Load current spindle force.  More... | |
| virtual void | ApplySpindleForce (const TerrainForce &spindle_force) | 
| Apply the spindle force (BODY communication interface).  More... | |
| virtual void | LoadMeshState (MeshState &mesh_state) | 
| Load current tire mesh state.  More... | |
| virtual void | ApplyMeshForces (const MeshContact &mesh_contact) | 
| Apply the mesh contact forces.  More... | |
| virtual void | OnOutputData (int frame) | 
| Perform additional output at the specified frame (called once per integration step). | |
|  Protected Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| ChVehicleCosimBaseNode (const std::string &name) | |
| void | SendGeometry (const ChVehicleGeometry &geom, int dest) const | 
| void | RecvGeometry (ChVehicleGeometry &geom, int source) const | 
| Protected Attributes | |
| ChSystemSMC * | m_system | 
| containing system | |
| ChTimestepper::Type | m_int_type | 
| integrator type | |
| ChSolver::Type | m_slv_type | 
| solver type | |
| std::shared_ptr< ChTimestepperHHT > | m_integrator | 
| HHT integrator object. | |
| std::string | m_tire_json | 
| name of tire JSON specification file | |
| bool | m_tire_pressure | 
| tire pressure enabled? | |
| int | m_index | 
| index of the tire | |
| std::shared_ptr< ChBody > | m_spindle | 
| spindle body | |
| std::shared_ptr< ChWheel > | m_wheel | 
| wheel subsystem (to which a tire is attached) | |
| ChVehicleGeometry | m_geometry | 
| tire geometry and contact material | |
|  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_wheeled_mbs_nodes | 
| unsigned int | m_num_tracked_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? | |
| Additional Inherited Members | |
|  Static Protected Attributes inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| static const double | m_gacc = -9.81 | 
Member Enumeration Documentation
◆ TireType
Member Function Documentation
◆ ApplyMeshForces()
| 
 | inlineprotectedvirtual | 
Apply the mesh contact forces.
A derived class which implements the MESH communication interface must override this function and must use the MeshContact struct received from the TERRAIN node.
◆ ApplySpindleForce()
| 
 | inlineprotectedvirtual | 
Apply the spindle force (BODY communication interface).
The TerrainForce struct contains the terrain forces applied to the spindle as received from the TERRAIN node.
◆ ApplySpindleState()
| 
 | inlineprotectedvirtual | 
Apply the spindle state.
The BodyState struct contains the spindle body state as received from the MBS node.
◆ ConstructTire()
| 
 | protectedpure virtual | 
Construct the tire.
The tire radius and mass must be available after this function is called.
◆ GetInterfaceType()
| 
 | protectedpure virtual | 
Specify the type of communication interface (BODY or MESH) required by this the tire node.
◆ Initialize()
| 
 | finaloverridevirtual | 
Initialize this node.
This function allows the node to initialize itself and, optionally, perform an initial data exchange with any other node.
Reimplemented from chrono::vehicle::ChVehicleCosimBaseNode.
◆ InitializeTire()
| 
 | protectedpure virtual | 
Initialize the tire by attaching it to the provided ChWheel.
A derived class must load m_geometry (collision shape and contact material).
◆ LoadMeshState()
| 
 | inlineprotectedvirtual | 
Load current tire mesh state.
A derived class which implements the MESH communication interface must override this function and must load the provided MeshState struct to be sent to the TERRAIN node.
◆ LoadSpindleForce()
| 
 | inlineprotectedvirtual | 
Load current spindle force.
A derived class which implements the MESH communication interface must override this function and must load the provided TerrainForce struct to be sent to the MBS node.
◆ SetIntegratorType()
| void chrono::vehicle::ChVehicleCosimTireNode::SetIntegratorType | ( | ChTimestepper::Type | int_type, | 
| ChSolver::Type | slv_type | ||
| ) | 
Set integrator and solver types.
For the MKL solver, use slv_type = ChSolver::Type::CUSTOM.
- Parameters
- 
  int_type integrator type (default: HHT) slv_type solver type (default:: MKL) 
◆ Synchronize()
| 
 | finaloverridevirtual | 
Synchronize this node.
This function is called at every co-simulation synchronization time to allow the node to exchange information with any other node.
Implements chrono::vehicle::ChVehicleCosimBaseNode.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/cosim/ChVehicleCosimTireNode.h
- /builds/uwsbel/chrono/src/chrono_vehicle/cosim/ChVehicleCosimTireNode.cpp
