chrono::parsers::ChParserMbsYAML Class Reference

Description

Parser for YAML specification files for Chrono models and simulations.

The parser caches model information and simulation settings from a YAML input file and then allows populating an MBS Chrono system and setting solver and simulation parameters.

#include <ChParserMbsYAML.h>

Inheritance diagram for chrono::parsers::ChParserMbsYAML:
Collaboration diagram for chrono::parsers::ChParserMbsYAML:

Public Member Functions

 ChParserMbsYAML (bool verbose=false)
 
 ChParserMbsYAML (const std::string &yaml_filename, bool verbose=false)
 
bool HasSolverData () const
 Return true if a YAML solver file has been loaded.
 
bool HasModelData () const
 Return true if a YAML model file has been loaded.
 
virtual void LoadFile (const std::string &yaml_filename)
 Load the specified MBS simulation input YAML file.
 
virtual void LoadSimData (const YAML::Node &yaml)
 Load the simulation, output, and visualization settings from the specified YAML node.
 
virtual void LoadModelData (const YAML::Node &yaml)
 Load the MBS model from the specified YAML node.
 
virtual void LoadSolverData (const YAML::Node &yaml)
 Load the solver parameters from the specified YAML node.
 
std::shared_ptr< ChSystemCreateSystem ()
 Create and return a Chrono system configured from cached simulation parameters. More...
 
void SetSimulationParameters (ChSystem &sys)
 Set solver and integrator settings from cached values. More...
 
double GetTimestep () const
 
double GetEndtime () const
 
bool EnforceRealtime () const
 
bool Render () const
 
double GetRenderFPS () const
 
CameraVerticalDir GetCameraVerticalDir () const
 
const ChVector3dGetCameraLocation () const
 
const ChVector3dGetCameraTarget () const
 
bool EnableShadows () const
 
int Populate (ChSystem &sys, const ChFramed &model_frame=ChFramed(), const std::string &model_prefix="")
 Populate the given system with the cached Chrono components. More...
 
void Depopulate (ChSystem &sys, int instance_index)
 Remove from the specified system the Chrono objects from the specified instance.
 
int GetNumInstances () const
 Return the number of instances created from the YAML model file.
 
std::shared_ptr< ChBodyAuxRefFindBodyByName (const std::string &name) const
 Find and return the body with specified name in the current model instance.
 
std::shared_ptr< ChBodyAuxRefFindBodyByName (const std::string &name, int model_instance) const
 Find and return the body with specified name in the given model instance.
 
std::vector< std::shared_ptr< ChBodyAuxRef > > FindBodiesByName (const std::string &name) const
 Find and return bodies with given base name from all model instances.
 
std::shared_ptr< ChLinkMotorFindMotorByName (const std::string &name) const
 Find and return the motor with specified name in the current model instance.
 
std::shared_ptr< ChLinkMotorFindMotorByName (const std::string &name, int model_instance) const
 Find and return the motor with specified name in the given model instance.
 
std::vector< std::shared_ptr< ChLinkMotor > > FindMotorsByName (const std::string &name) const
 Find and return motors with given base name from all model instances.
 
void AttachLoadController (std::shared_ptr< ChLoadController > controller, const std::string &name, int model_instance)
 Attach the external controller for the load controller with given name. More...
 
void AttachMotorController (std::shared_ptr< ChMotorController > controller, const std::string &name, int model_instance)
 Attach the external controller for the motor controller with given name. More...
 
void DoStepDynamics ()
 Advance dynamics of the multibody system. More...
 
void ApplyLoadControllerLoads (const LoadControllerLoads &controller_loads)
 Apply loads generated by the load controllers in the given list. More...
 
void ApplyMotorControllerActuations (const MotorControllerActuations &controller_loads)
 Apply actuations generated by the motor controllers in the given list. More...
 
void SaveOutput (ChSystem &sys, int frame)
 Save simulation output results at the current time. More...
 
- Public Member Functions inherited from chrono::parsers::ChParserYAML
void SetVerbose (bool verbose)
 Set verbose terminal output (default: false).
 
virtual void SetOutputDir (const std::string &out_dir)
 Set root output directory (default: "."). More...
 
const std::string & GetName () const
 Return the name of the YAML model.
 
virtual bool Output () const
 Return true if generating output.
 
ChOutput::Type GetOutputType () const
 Return the output type.
 
ChOutput::Mode GetOutputMode () const
 Return the output mode.
 
virtual double GetOutputFPS () const
 Return the output frequency.
 
virtual void SaveOutput (int frame)
 Save simulation output results at the current time. More...
 

Friends

class ChParserVehicleYAML
 
class ChParserFsiYAML
 

Additional Inherited Members

- Public Types inherited from chrono::parsers::ChParserYAML
enum  YamlFileType {
  MBS, SPH, TDPF, FSI,
  VEHICLE, UNKNOWN
}
 Type of a Chrono YAML specification file.
 
- Static Public Member Functions inherited from chrono::parsers::ChParserYAML
static YamlFileType ReadYamlFileType (const std::string &yaml_filename)
 Peek in specified YAML file and read the fluid system type. More...
 
- Protected Types inherited from chrono::parsers::ChParserYAML
enum  DataPathType { ABS, REL }
 
- Protected Member Functions inherited from chrono::parsers::ChParserYAML
void ReadOutputParams (const YAML::Node &a)
 Read output settings from specified YAML node.
 
std::string GetDatafilePath (const std::string &filename)
 Return the path to the specified data file.
 
- Static Protected Member Functions inherited from chrono::parsers::ChParserYAML
static void CheckVersion (const YAML::Node &a)
 
static std::string ToUpper (std::string in)
 
static YamlFileType ReadYamlFileType (const YAML::Node &a)
 Read the YAML file type.
 
static DataPathType ReadDataPathType (const YAML::Node &a)
 Read the data path type (absolute or relative).
 
static ChVector3d ReadVector (const YAML::Node &a)
 Load and return a ChVector3d from the specified node.
 
static ChQuaterniond ReadQuaternion (const YAML::Node &a)
 Load and return a ChQuaternion from the specified node.
 
static ChQuaterniond ReadCardanAngles (const YAML::Node &a, bool use_degrees)
 Load a Cardan angle sequence from the specified node and return as a quaternion. More...
 
static ChQuaterniond ReadRotation (const YAML::Node &a, bool use_degrees)
 Return a quaternion loaded from the specified node. More...
 
static ChCoordsysd ReadCoordinateSystem (const YAML::Node &a, bool use_degrees)
 Load and return a coordinate system from the specified node.
 
static std::shared_ptr< ChFunctionReadFunction (const YAML::Node &a, bool use_degrees)
 Load and return a ChFunction object from the specified node.
 
static ChColor ReadColor (const YAML::Node &a)
 Load and return a ChColor from the specified node.
 
static ChOutput::Type ReadOutputType (const YAML::Node &a)
 
static ChOutput::Mode ReadOutputMode (const YAML::Node &a)
 
static void PrintNodeType (const YAML::Node &node)
 Print YAML node type.
 
- Protected Attributes inherited from chrono::parsers::ChParserYAML
std::string m_name
 name of the YAML model
 
bool m_verbose
 verbose terminal output (default: false)
 
bool m_use_degrees
 all angles given in degrees (default: true)
 
std::string m_output_dir
 root oputput directory
 
std::shared_ptr< ChOutputm_output_db
 output database
 
DataPathType m_data_path
 
std::string m_rel_path
 
std::string m_script_directory
 
OutputParameters m_output
 

Member Function Documentation

◆ ApplyLoadControllerLoads()

void chrono::parsers::ChParserMbsYAML::ApplyLoadControllerLoads ( const LoadControllerLoads controller_loads)

Apply loads generated by the load controllers in the given list.

Notes:

◆ ApplyMotorControllerActuations()

void chrono::parsers::ChParserMbsYAML::ApplyMotorControllerActuations ( const MotorControllerActuations controller_loads)

Apply actuations generated by the motor controllers in the given list.

Notes:

◆ AttachLoadController()

void chrono::parsers::ChParserMbsYAML::AttachLoadController ( std::shared_ptr< ChLoadController controller,
const std::string &  name,
int  model_instance 
)

Attach the external controller for the load controller with given name.

This function can be called only after the MBS model was loaded and the model specification must include parameters for a load controller with specified name.

◆ AttachMotorController()

void chrono::parsers::ChParserMbsYAML::AttachMotorController ( std::shared_ptr< ChMotorController controller,
const std::string &  name,
int  model_instance 
)

Attach the external controller for the motor controller with given name.

This function can be called only after the MBS model was loaded, the model specification must include parameters for a motor with specified name, and that motor was set as externally actuated.

◆ CreateSystem()

std::shared_ptr< ChSystem > chrono::parsers::ChParserMbsYAML::CreateSystem ( )

Create and return a Chrono system configured from cached simulation parameters.

If no YAML simulation file was loaded, this function returns a ChSystemNSC with default settings.

◆ DoStepDynamics()

void chrono::parsers::ChParserMbsYAML::DoStepDynamics ( )

Advance dynamics of the multibody system.

  • load controllers (if any are attached) are synchronized and their dynamics advanced in time;
  • output is generated if requested in the simulation YAML file;
  • the dynamics of the underlying Chrono system is advanced in time;
  • soft real-time is enforced if requested in the simulation YAML file.

◆ Populate()

int chrono::parsers::ChParserMbsYAML::Populate ( ChSystem sys,
const ChFramed model_frame = ChFramed(),
const std::string &  model_prefix = "" 
)

Populate the given system with the cached Chrono components.

An instance of the underlying Chrono model can be created at the specified frame (relative to the global frame), with all Chrono object names using the specified prefix. Throws an error if no YAML model file was loaded.

◆ SaveOutput()

void chrono::parsers::ChParserMbsYAML::SaveOutput ( ChSystem sys,
int  frame 
)

Save simulation output results at the current time.

Note: this function is automatically called in ChParserMbsYAML::DoStepDynamics.

◆ SetSimulationParameters()

void chrono::parsers::ChParserMbsYAML::SetSimulationParameters ( ChSystem sys)

Set solver and integrator settings from cached values.

If no YAML simulation file was loaded, this function is a no-op.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_parsers/yaml/ChParserMbsYAML.h
  • /builds/uwsbel/chrono/src/chrono_parsers/yaml/ChParserMbsYAML.cpp