Description

Base class for a Chrono output database.

#include <ChOutput.h>

Inheritance diagram for chrono::ChOutput:

Classes

struct  Channel
 Named scalar output quantity. More...
 
struct  Settings
 Output parameters. More...
 

Public Types

enum  Format { Format::ASCII, Format::HDF5, Format::NONE }
 Output database type. More...
 
enum  Mode { Mode::FRAMES, Mode::SERIES }
 Output mode options. More...
 

Public Member Functions

void Write (int frame, double time, const ChAssembly::Components &components)
 
void Write (int frame, double time, const std::vector< const ChAssembly::Components * > &components)
 
void Write (int frame, double time, const std::vector< const ChAssembly::Components * > &components, const std::vector< Channel > &channels)
 Write output for the given model components and channels. More...
 

Static Public Member Functions

static std::string GetFormatAsString (Format type)
 
static std::string GetModeAsString (Mode mode)
 

Protected Member Functions

 ChOutput (Mode mode)
 
virtual void WriteTimeStamp (int frame, double time)=0
 
virtual void WriteBodies (const std::vector< std::shared_ptr< ChBody >> &bodies)=0
 
virtual void WriteMarkers (const std::vector< std::shared_ptr< ChMarker >> &markers)=0
 
virtual void WriteShafts (const std::vector< std::shared_ptr< ChShaft >> &shafts)=0
 
virtual void WriteJoints (const std::vector< std::shared_ptr< ChLink >> &joints)=0
 
virtual void WriteCouples (const std::vector< std::shared_ptr< ChShaftsCouple >> &couples)=0
 
virtual void WriteLinSprings (const std::vector< std::shared_ptr< ChLinkTSDA >> &springs)=0
 
virtual void WriteRotSprings (const std::vector< std::shared_ptr< ChLinkRSDA >> &springs)=0
 
virtual void WriteBodyBodyLoads (const std::vector< std::shared_ptr< ChLoadBodyBody >> &loads)=0
 
virtual void WriteLinMotors (const std::vector< std::shared_ptr< ChLinkMotorLinear >> &motors)=0
 
virtual void WriteRotMotors (const std::vector< std::shared_ptr< ChLinkMotorRotation >> &motors)=0
 
virtual void WriteChannels (const std::vector< Channel > &channels)
 

Protected Attributes

Mode m_mode
 output mode
 
bool m_buf_allocated
 buffers allocated?
 
std::vector< double > m_time
 time series
 
std::vector< BodyBuffers > m_body_buf
 body buffers
 
std::vector< ShaftBuffers > m_shaft_buf
 shaft buffers
 
std::vector< JointBuffers > m_joint_buf
 joint buffers
 
std::vector< TSDABuffers > m_tsda_buf
 TSDA buffers.
 
std::vector< RSDABuffers > m_rsda_buf
 RSDA buffers.
 
std::vector< MeshNodeBuffers > m_node_buf
 FEA mesh node buffers.
 
std::vector< ChannelBuffers > m_channel_buf
 channel buffers
 

Member Enumeration Documentation

◆ Format

Output database type.

Currently supported options are ASCII and HDF5.

Enumerator
ASCII 

ASCII text.

HDF5 

HDF-5.

NONE 

no output

◆ Mode

Output mode options.

  • FRAMES: output is organized in groups for each separate frame; suitable for postprocessing (e.g., rendering).
  • SERIES: output is organized by model components, each of them containing time-series for their various output quantities; suitable for plotting results.
Enumerator
FRAMES 

organize output on a frame-by-frame basis

SERIES 

organize output on component-by-component basis

Member Function Documentation

◆ Write()

void chrono::ChOutput::Write ( int  frame,
double  time,
const std::vector< const ChAssembly::Components * > &  components,
const std::vector< Channel > &  channels 
)

Write output for the given model components and channels.

The set of channels (names and order) must be the same at every call.


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