Description
Base class for all MBS nodes with wheels.
#include <ChVehicleCosimWheeledMBSNode.h>


| Public Member Functions | |
| virtual NodeType | GetNodeType () const override | 
| Return the node type as NodeType::MBS_WHEELED. | |
| 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... | |
| void | SetChassisFixed (bool val) | 
| Fix the chassis to ground (default: false). | |
| void | AttachDrawbarPullRig (std::shared_ptr< ChVehicleCosimDBPRig > rig) | 
| Attach a drawbar pull rig to the MBS system. | |
| std::shared_ptr< ChVehicleCosimDBPRig > | GetDrawbarPullRig () const | 
| Return the drawbar-pull rig, if one is attached. | |
| 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 void | OutputVisualizationData (int frame) override final | 
| Output post-processing visualization 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 | WriteCheckpoint (const std::string &filename) const | 
| Write checkpoint to the specified file (which will be created in the output directory). | |
| Protected Member Functions | |
| ChVehicleCosimWheeledMBSNode () | |
| Construct a base class wheeled MBS node. | |
| virtual void | InitializeMBS (const std::vector< ChVector<>> &tire_info, const ChVector2<> &terrain_size, double terrain_height)=0 | 
| Initialize the underlying MBS.  More... | |
| virtual void | PreAdvance () | 
| Perform any required operations before advancing the state of the MBS.  More... | |
| virtual void | PostAdvance () | 
| Perform any required operations after advancing the state of the MBS.  More... | |
| virtual void | OnOutputData (int frame) | 
| Perform additional output at the specified frame (called from within OutputData).  More... | |
| virtual void | ApplySpindleForce (unsigned int i, const TerrainForce &spindle_force)=0 | 
| Apply the provided force to the i-th spindle body.  More... | |
| virtual int | GetNumSpindles () const =0 | 
| Get the number of spindles/wheels defined by the underlying MBS.  More... | |
| virtual std::shared_ptr< ChBody > | GetSpindleBody (unsigned int i) const =0 | 
| Get the spindle body to which the i-th wheel/tire is attached. | |
| virtual double | GetSpindleLoad (unsigned int i) const =0 | 
| Get the load weight on the i-th wheel/tire.  More... | |
| virtual BodyState | GetSpindleState (unsigned int i) const =0 | 
| Get the body state of the spindle body to which the i-th wheel/tire is attached. | |
| virtual std::shared_ptr< ChBody > | GetChassisBody () const =0 | 
| Get the "chassis" body.  More... | |
| virtual void | OnInitializeDBPRig (std::shared_ptr< ChFunction > func)=0 | 
| Impose spindle angular speed function.  More... | |
|  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::shared_ptr< ChVehicleCosimDBPRig > | m_DBP_rig | 
| DBP rig. | |
| std::ofstream | m_DBP_outf | 
| DBP output file stream. | |
|  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 | |
|  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... | |
|  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... | |
|  Static Protected Attributes inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| static const double | m_gacc = -9.81 | 
Member Function Documentation
◆ Advance()
| 
 | finaloverridevirtual | 
Advance simulation.
This function is called after a synchronization to allow the node to advance its state by the specified time step. A node is allowed to take as many internal integration steps as required, but no inter-node communication should occur.
Implements chrono::vehicle::ChVehicleCosimBaseNode.
◆ ApplySpindleForce()
| 
 | protectedpure virtual | 
Apply the provided force to the i-th spindle body.
This function is called during synchronization when the force is received from the corresponding tire node.
◆ GetChassisBody()
| 
 | protectedpure virtual | 
Get the "chassis" body.
Only used is a drawbar-pull rig is attached.
◆ GetNumSpindles()
| 
 | protectedpure virtual | 
Get the number of spindles/wheels defined by the underlying MBS.
A co-simulation must have a matching number of TIRE nodes.
◆ GetSpindleLoad()
| 
 | protectedpure virtual | 
Get the load weight on the i-th wheel/tire.
Note: this must also include the mass of the tire itself.
◆ 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.
◆ InitializeMBS()
| 
 | protectedpure virtual | 
Initialize the underlying MBS.
- Parameters
- 
  tire_info mass, radius, width for each tire terrain_size terrain length x width terrain_height initial terrain height 
◆ OnInitializeDBPRig()
| 
 | protectedpure virtual | 
Impose spindle angular speed function.
This function is called (during initialization, after the call to InitializeMBS) only if a drawbar-pull rig is attached. A derived class must enforce the specified angular speed on all spindles and, if appropriate, disconnect any other power transmission mechanism (such as a powertrain/driveline).
◆ OnOutputData()
| 
 | inlineprotectedvirtual | 
Perform additional output at the specified frame (called from within OutputData).
For example, output mechanism-specific data for post-procesing.
◆ PostAdvance()
| 
 | inlineprotectedvirtual | 
Perform any required operations after advancing the state of the MBS.
This function is called after every integration step.
◆ PreAdvance()
| 
 | inlineprotectedvirtual | 
Perform any required operations before advancing the state of the MBS.
This function is called before every integration step.
◆ SetIntegratorType()
| void chrono::vehicle::ChVehicleCosimWheeledMBSNode::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/ChVehicleCosimWheeledMBSNode.h
- /builds/uwsbel/chrono/src/chrono_vehicle/cosim/ChVehicleCosimWheeledMBSNode.cpp
