chrono::parsers::ChParserTdpfYAML Class Reference

Description

Parser for YAML specification files for Chrono::TDPF models and simulations.

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

#include <ChParserTdpfYAML.h>

Inheritance diagram for chrono::parsers::ChParserTdpfYAML:
Collaboration diagram for chrono::parsers::ChParserTdpfYAML:

Public Member Functions

 ChParserTdpfYAML (const std::string &yamlfilename, 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.
 
void LoadFile (const std::string &yaml_filename)
 Load the specified MBS simulation input YAML file.
 
void LoadSimData (const YAML::Node &yaml) override
 Load the simulation, output, and visualization settings from the specified YAML node. More...
 
void LoadModelData (const YAML::Node &yaml)
 Load the MBS model from the specified YAML node.
 
void LoadSolverData (const YAML::Node &yaml)
 Load the solver parameters from the specified YAML node. More...
 
std::shared_ptr< fsi::tdpf::ChFsiSystemTDPFCreateFsiSystemTDPF (bool initialize=true)
 Create and return a Chrono FSI problem configured from cached model and simulation parameters. More...
 
virtual std::shared_ptr< fsi::ChFsiSystemGetFsiSystem () override
 Access the underlying FSI system.
 
virtual std::shared_ptr< fsi::ChFsiFluidSystemGetFluidSystem () override
 Access the underlying fluid system.
 
std::shared_ptr< fsi::tdpf::ChFsiFluidSystemTDPFGetFluidSystemTDPF ()
 Access the underlying fluid system.
 
virtual void WriteOutput (int frame, double time) override
 Write simulation output results at the current time.
 
- Public Member Functions inherited from chrono::parsers::ChParserCfdYAML
 ChParserCfdYAML (bool verbose=false)
 
FluidSystemType GetType () const
 Return the fluid system type.
 
- 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 OutputEnabled () const
 Return true if generating output.
 
const ChOutput::SettingsGetOutputSettings () const
 Return all output settings.
 
ChOutput::Format GetOutputFormat () const
 Return the output type.
 
ChOutput::Mode GetOutputMode () const
 Return the output mode.
 
virtual double GetOutputFPS () const
 Return the output frequency.
 
virtual bool VisualizationEnabled () const
 Return true if visualization is enabled.
 
const ChVisualSystem::SettingsGetVisualizationSettings () const
 Return all visualization settings.
 
double GetRenderFPS () const
 
CameraVerticalDir GetCameraVerticalDir () const
 
const ChVector3dGetCameraLocation () const
 
const ChVector3dGetCameraTarget () const
 
bool EnableShadows () const
 
bool WriteImages () const
 
const std::string & GetImageDir () const
 
virtual void Output (double time)
 Generate output at the current frame. More...
 
virtual bool Render (ChVisualSystem &vis, double time)
 Render the current frame using the specified visual system if run-time visualization is available and enabled. More...
 

Additional Inherited Members

- Public Types inherited from chrono::parsers::ChParserCfdYAML
enum  FluidSystemType { SPH, TDPF }
 
- Public Types inherited from chrono::parsers::ChParserYAML
enum  YamlFileType {
  MBS, SPH, TDPF, FSI,
  VEHICLE, CUSTOM
}
 Type of a Chrono YAML specification file, as declared by its type key. More...
 
- Static Public Member Functions inherited from chrono::parsers::ChParserCfdYAML
static FluidSystemType ReadFluidSystemType (const std::string &yaml_filename)
 Peek in specified YAML file and read the fluid system type. More...
 
- Static Public Member Functions inherited from chrono::parsers::ChParserYAML
static YamlFileType ReadYamlFileType (const std::string &yaml_filename)
 Peek in the specified YAML file and read the declared file type. More...
 
- Static Protected Member Functions inherited from chrono::parsers::ChParserYAML
static YamlFileType ReadYamlFileType (const YAML::Node &a)
 Read the YAML file type from the given node. More...
 
- Protected Attributes inherited from chrono::parsers::ChParserCfdYAML
FluidSystemType m_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)
 
ChVisualSystem::Settings m_vis_settings
 visualization settings
 
ChOutput::Settings m_output_settings
 output settings
 
std::string m_output_dir
 root output directory
 
std::shared_ptr< ChOutputm_output_db
 output database
 
ChYamlFileHandler m_file_handler
 handler for data file paths
 

Member Function Documentation

◆ CreateFsiSystemTDPF()

std::shared_ptr< fsi::tdpf::ChFsiSystemTDPF > chrono::parsers::ChParserTdpfYAML::CreateFsiSystemTDPF ( bool  initialize = true)

Create and return a Chrono FSI problem configured from cached model and simulation parameters.

By default, the Chrono FSI problem is initialized (with no associated MBS system). If a system is attached after creation, the caller must create the FSI problem with initialize=false, attach an MBS to the problem, and then explicitly initialize the FSI problem.

◆ LoadSimData()

void chrono::parsers::ChParserTdpfYAML::LoadSimData ( const YAML::Node &  yaml)
overridevirtual

Load the simulation, output, and visualization settings from the specified YAML node.

The optional simulation object may specify gravity (default: [0, 0, -9.8]), the gravitational acceleration applied to the fluid phase. Note that in a coupled FSI simulation the gravity given in the FSI simulation file governs both phases and overrides this value; it therefore takes effect when the TDPF fluid system is driven on its own, as it is through the Chrono preCICE adapter.

Reimplemented from chrono::parsers::ChParserYAML.

◆ LoadSolverData()

void chrono::parsers::ChParserTdpfYAML::LoadSolverData ( const YAML::Node &  yaml)

Load the solver parameters from the specified YAML node.

All sections and keys are optional; any that are absent keep the Chrono::FSI-TDPF defaults. The expected structure is:

radiation:
  method: RIRF_CONVOLUTION       # RIRF_CONVOLUTION (default) or STATE_SPACE
  truncation_time: 0             # [s] truncate the RIRF kernel; 0 = use the full kernel
  smoothing:                     # RIRF_CONVOLUTION only
    type: NONE                   # NONE (default), SG (Savitzky-Golay), or MOVING_AVERAGE
    window_length: 5             # forced to be odd and at least 3
  taper:                         # RIRF_CONVOLUTION only; presence of this block enables tapering
    enabled: true
    start_fraction: 0.8          # taper start, as a fraction of the RIRF length
    end_fraction: 1.0            # taper end, as a fraction of the RIRF length
    final_amplitude: 0.0         # kernel scale at the end of the taper (0 = zero, 1 = unchanged)
  state_space:                   # STATE_SPACE only
    max_order: 10
    r2_threshold: 0.95
    max_hankel_size: 200
    r2_num_samples: 50
  diagnostics:
    export_csv: false            # write before/after RIRF kernels
excitation:
  method: AUTO                   # AUTO (default), IRF_CONVOLUTION, or FREQUENCY_DOMAIN
  interpolation: CARTESIAN       # CARTESIAN (default) or POLAR
  truncation_time: 0             # [s] truncate the excitation IRF; 0 = use the full kernel
diagnostics:
  output_dir: ""                 # directory for solver diagnostics; empty = none

Enumeration values are read case-insensitively, so the SEA-Stack spellings (e.g. state_space, irf_convolution) are accepted as well.


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