Skip to main content

Rocky Solver SDK 2026 R1

Structure IRockyCurveCollectionData

Last update: 09.03.2026

#include

IRockyCurveCollectionData is a data structure intended to hold data that will be used by Rocky to create a custom collection of cross plot curves and/or time curves for particles and geometries.

A curve is composed of a pair of domain and image datasets. A dataset is a set of values that may change over time in values and size. When creating a dataset, one must provide its name and unit. During the simulation, such datasets must be updated with custom data, which will be written on disk by Rocky at output times. The most adequate hook to perform that data update is ROCKY_PLUGIN_PRE_OUTPUT, because it is executed immediately before the data output. However, depending on the particular needs of the module, that operation can be done in other hooks as well. After an output operation, all dataset values are automatically erased, and must be updated again for the next output. At any given output, a domain and an image datasets for a cross-plot curve must have the same size, otherwise an error will be thrown.

Members

Public functions

Function create_particles_dataset

void IRockyCurveCollectionData::create_particles_dataset(const std::string &name, const std::string &unit)

**This method creates a dataset related to particles by specifying its name **:

and the unit of the physical magnitude associated. Initially empty, the dataset must be updated with values by using IRockyCurveCollectionData::update_particles_dataset during the simulation.

Parameters:

  • name: The name of the dataset.
  • unit: The unit of the related magnitude, which will be associated to an axis of the cross plot where the dataset will be displayed.

Parameters:

  • const std::string & name
  • const std::string & unit

Return type: void

Function create_solver_dataset

void IRockyCurveCollectionData::create_solver_dataset(const std::string &name, const std::string &unit)

This method creates a dataset related to the solver by specifying its name:

and the unit of the physical magnitude associated. Initially empty, the dataset must be updated with values by using IRockyCurveCollectionData::update_solver_dataset during the simulation.

Parameters:

  • name: The name of the dataset.
  • unit: The unit of the related magnitude, which will be associated to an axis of the cross plot where the dataset will be displayed.

Parameters:

  • const std::string & name
  • const std::string & unit

Return type: void

Function create_geometry_dataset

void IRockyCurveCollectionData::create_geometry_dataset(int geometry_id, const std::string &name, const std::string &unit)

**This method creates a dataset related to a geometry by specifying **:

its name and the unit of the associated physical magnitude. Initially empty, the dataset must be updated with values by using IRockyCurveCollectionData::update_geometry_dataset.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • name: The name of the dataset.
  • unit: The unit of the related magnitude, which will be associated to an axis of the cross plot where the dataset will be displayed.

Parameters:

  • int geometry_id
  • const std::string & name
  • const std::string & unit

Return type: void

Function create_dataset

void IRockyCurveCollectionData::create_dataset(const std::string &owner_name, const std::string &name, const std::string &unit)

This method creates a dataset by specifying its name and the unit of the:

physical magnitude associated. Such dataset is related to a given named owner entity. Initially empty, the dataset must be updated with values during the simulation by using IRockyCurveCollectionData::update_dataset.

Parameters:

  • owner_name: The entity unique identifier (string)
  • name: The name of the dataset.
  • unit: The unit of the related magnitude, which will be associated to an axis of the cross plot where the dataset will be displayed.

Parameters:

  • const std::string & owner_name
  • const std::string & name
  • const std::string & unit

Return type: void

Function create_particles_curve

void IRockyCurveCollectionData::create_particles_curve(const std::string &domain_dataset, const std::string &image_dataset)

This method creates a curve by specifying the names of domain and image datasets. Such:

curve is related to particles. Shown within the Rocky UI as a curve.

Parameters:

  • domain_dataset: The name of the domain dataset.
  • image_dataset: The unit of the image dataset.

Parameters:

  • const std::string & domain_dataset
  • const std::string & image_dataset

Return type: void

Function create_solver_curve

void IRockyCurveCollectionData::create_solver_curve(const std::string &domain_dataset, const std::string &image_dataset)

This method creates a curve by specifying the names of domain and image datasets. Such:

curve is related to the solver. Shown within the Rocky UI as a curve.

Parameters:

  • domain_dataset: The name of the domain dataset.
  • image_dataset: The unit of the image dataset.

Parameters:

  • const std::string & domain_dataset
  • const std::string & image_dataset

Return type: void

Function create_geometry_curve

void IRockyCurveCollectionData::create_geometry_curve(int geometry_id, const std::string &domain_dataset, const std::string &image_dataset)

This method creates a curve by specifying the names of domain and image datasets. Such:

curve is related to a geometry. Shown within the Rocky UI as a curve.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • domain_dataset: The name of the domain dataset.
  • image_dataset: The unit of the image dataset.

Parameters:

  • int geometry_id
  • const std::string & domain_dataset
  • const std::string & image_dataset

Return type: void

Function add_curve

void IRockyCurveCollectionData::add_curve(const std::string &owner_name, const std::string &domain_dataset, const std::string &image_dataset)

This method creates a curve by specifying the names of domain and image datasets. Such:

curve is related to a given named entity. Shown within the Rocky UI as a curve.

Parameters:

  • owner_name: The entity unique identifier (string)
  • domain_dataset: The name of the domain dataset.
  • image_dataset: The unit of the image dataset.

Parameters:

  • const std::string & owner_name
  • const std::string & domain_dataset
  • const std::string & image_dataset

Return type: void

Function setup_particles_dataset_dimension

void IRockyCurveCollectionData::setup_particles_dataset_dimension(const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a dataset.:

This factor will be used to nondimensionalize their values for the calculations. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • name: The name of the dataset.
  • dimension: The appropriate dimensional factor for the dataset.

Parameters:

  • const std::string & name
  • double dimension

Return type: void

Function setup_solver_dataset_dimension

void IRockyCurveCollectionData::setup_solver_dataset_dimension(const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a dataset.:

This factor will be used to nondimensionalize their values for the calculations. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • name: The name of the dataset.
  • dimension: The appropriate dimensional factor for the dataset.

Parameters:

  • const std::string & name
  • double dimension

Return type: void

Function setup_geometry_dataset_dimension

void IRockyCurveCollectionData::setup_geometry_dataset_dimension(int geometry_id, const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a dataset.:

This factor will be used to nondimensionalize their values for the calculations. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • name: The name of the dataset.
  • dimension: The appropriate dimensional factor for the dataset.

Parameters:

  • int geometry_id
  • const std::string & name
  • double dimension

Return type: void

Function setup_dataset_dimension

void IRockyCurveCollectionData::setup_dataset_dimension(const std::string &owner_name, const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a dataset.:

This factor will be used to nondimensionalize their values for calculations. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • owner_name: The entity unique identifier (string)
  • name: The name of the dataset.
  • dimension: The appropriate dimensional factor for the dataset.

Parameters:

  • const std::string & owner_name
  • const std::string & name
  • double dimension

Return type: void

Function update_particles_dataset

void IRockyCurveCollectionData::update_particles_dataset(const std::string &name, const double *dataset, size_t size)

This method updates a dataset by inserting new values.:

Intended to be used only at output times. The dataset to be added should correspond to the output time at which this method is called. It only works with datasets previously created using IRockyCurveCollectionData::create_particles_dataset, otherwise it throws an error.

Parameters:

  • name: The name of the dataset.
  • dataset: A data pointer to the new dataset data to be copied into dataset.
  • size: The number of elements of the given dataset

Parameters:

  • const std::string & name
  • const double * dataset
  • size_t size

Return type: void

Function update_solver_dataset

void IRockyCurveCollectionData::update_solver_dataset(const std::string &name, const double *dataset, size_t size)

This method updates a dataset by inserting new values.:

Intended to be used only at output times. The dataset to be added should correspond to the output time at which this method is called. It only works with datasets previously created using IRockyCurveCollectionData::create_solver_dataset, otherwise it throws an error.

Parameters:

  • name: The name of the dataset.
  • dataset: A data pointer to the new dataset data to be copied into dataset.
  • size: The number of elements of the given dataset

Parameters:

  • const std::string & name
  • const double * dataset
  • size_t size

Return type: void

Function update_geometry_dataset

void IRockyCurveCollectionData::update_geometry_dataset(int geometry_id, const std::string &name, const double *dataset, size_t size)

This method updates a dataset by inserting new dataset values.:

Intended to be used only at output times. The dataset to be added should correspond to the output time at which this method is called. It only works with datasets previously created using IRockyCurveCollectionData::create_geometry_dataset, otherwise it throws an error.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • name: The name of the dataset.
  • dataset: A data pointer to the new dataset data to be copied into dataset.
  • size: The number of elements of the given dataset

Parameters:

  • int geometry_id
  • const std::string & name
  • const double * dataset
  • size_t size

Return type: void

Function update_dataset

void IRockyCurveCollectionData::update_dataset(const std::string &owner_name, const std::string &name, const double *dataset, size_t size)

This method updates a dataset by inserting new dataset values.:

Intended to be used only at output times. The dataset to be added should correspond to the output time at which this method is called. It only works with datasets previously created using IRockyCurveCollectionData::create_dataset, otherwise it throws an error.

Parameters:

  • owner_name: The entity unique identifier (string)
  • name: The name of the dataset.
  • dataset: A data pointer to the new dataset data to be copied into dataset.
  • size: The number of elements of the given dataset

Parameters:

  • const std::string & owner_name
  • const std::string & name
  • const double * dataset
  • size_t size

Return type: void

Function create_particles_time_curve

void IRockyCurveCollectionData::create_particles_time_curve(const std::string &name, const std::string &unit)

This method creates a time curve associated to particles by specifying its name and the:

unit of the physical magnitude associated. Initially empty, the curve must be filled with data by using IRockyCurveCollectionData::update_particles_time_curve during the simulation.

Parameters:

  • name: The name of the time curve. Shown within the Rocky UI as the curve label.
  • unit: The unit of the magnitude displayed in the vertical axis of the time curve.

Parameters:

  • const std::string & name
  • const std::string & unit

Return type: void

Function create_solver_time_curve

void IRockyCurveCollectionData::create_solver_time_curve(const std::string &name, const std::string &unit)

This method creates a time curve associated to the solver by specifying its name and the:

unit of the physical magnitude associated. Initially empty, the curve must be filled with data by using IRockyCurveCollectionData::update_solver_time_curve during the simulation.

Parameters:

  • name: The name of the time curve. Shown within the Rocky UI as the curve label.
  • unit: The unit of the magnitude displayed in the vertical axis of the time curve.

Parameters:

  • const std::string & name
  • const std::string & unit

Return type: void

Function create_geometry_time_curve

void IRockyCurveCollectionData::create_geometry_time_curve(int geometry_id, const std::string &name, const std::string &unit)

This method creates a time curve associated to a specific geometry, by specifying its:

name and the unit of the physical magnitude associated. Initially empty, the time curve must be filled with data during a simulation by using IRockyCurveCollectionData::update_geometry_time_curve.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • name: The name of the time curve. Shown within the Rocky UI as the curve label.
  • unit: The unit of the magnitude displayed in the vertical axis of the time curve.

Parameters:

  • int geometry_id
  • const std::string & name
  • const std::string & unit

Return type: void

Function create_time_curve

void IRockyCurveCollectionData::create_time_curve(const std::string &owner_name, const std::string &name, const std::string &unit)

This method creates a time curve associated to a given entity by specifying its:

name and the unit of the physical magnitude associated. Initially empty, the time curve must be filled with data by using IRockyCurveCollectionData::update_time_curve during the simulation.

Parameters:

  • owner_name: The entity unique identifier (string)
  • name: The name of the time curve. Shown within the Rocky UI as the curve label.
  • unit: The unit of the magnitude displayed in the vertical axis of the time curve.

Parameters:

  • const std::string & owner_name
  • const std::string & name
  • const std::string & unit

Return type: void

Function setup_particles_time_curve_dimension

void IRockyCurveCollectionData::setup_particles_time_curve_dimension(const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a time curve.:

This factor will be used to nondimensionalize their values. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • name: The name of the time curve.
  • dimension: The appropriate dimensional factor for the time curve.

Parameters:

  • const std::string & name
  • double dimension

Return type: void

Function setup_solver_time_curve_dimension

void IRockyCurveCollectionData::setup_solver_time_curve_dimension(const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a time curve.:

This factor will be used to nondimensionalize their values. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • name: The name of the time curve.
  • dimension: The appropriate dimensional factor for the time curve.

Parameters:

  • const std::string & name
  • double dimension

Return type: void

Function setup_geometry_time_curve_dimension

void IRockyCurveCollectionData::setup_geometry_time_curve_dimension(int geometry_id, const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a time curve.:

This factor will be used to nondimensionalize their values. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • name: The name of the time curve.
  • dimension: The appropriate dimensional factor for the time curve.

Parameters:

  • int geometry_id
  • const std::string & name
  • double dimension

Return type: void

Function setup_time_curve_dimension

void IRockyCurveCollectionData::setup_time_curve_dimension(const std::string &owner_name, const std::string &name, double dimension)

The purpose of this method is to associate a dimensional factor to a time curve.:

This factor will be used to nondimensionalize their values. Dimensional factors for the fundamental magnitudes are provided by functions of a IRockyModel object.

Parameters:

  • owner_name: The entity unique identifier (string)
  • name: The name of the time curve. Shown within the Rocky UI as the curve label.
  • dimension: The appropriate dimensional factor for the time curve.

Parameters:

  • const std::string & owner_name
  • const std::string & name
  • double dimension

Return type: void

Function update_particles_time_curve

void IRockyCurveCollectionData::update_particles_time_curve(const std::string &name, double value)

This method updates a time curve by inserting a new value.:

Intended to be used only at output times. The value to be added should correspond to the output time at which this method is called. It only works with time curves previously created using IRockyCurveCollectionData::create_particles_time_curve, otherwise it throws an error.

Parameters:

  • name: The name of the time curve.
  • value: The value to be appended into the curve.

Parameters:

  • const std::string & name
  • double value

Return type: void

Function update_solver_time_curve

void IRockyCurveCollectionData::update_solver_time_curve(const std::string &name, double value)

This method updates a time curve by inserting a new value.:

Intended to be used only at output times. The value to be added should correspond to the output time at which this method is called. It only works with time curves previously created using IRockyCurveCollectionData::create_solver_time_curve, otherwise it throws an error.

Parameters:

  • name: The name of the time curve.
  • value: The value to be appended into the curve.

Parameters:

  • const std::string & name
  • double value

Return type: void

Function update_geometry_time_curve

void IRockyCurveCollectionData::update_geometry_time_curve(int geometry_id, const std::string &name, double value)

This method updates a time curve by inserting a new value.:

Intended to be used only at output times. The value to be added should correspond to the output time at which this method is called. It only works with time curves previously created using IRockyCurveCollectionData::create_geometry_time_curve, otherwise it throws an error.

Parameters:

  • geometry_id: The geometry unique identifier (index)
  • name: The name of the time curve.
  • value: The value to be appended into the curve.

Parameters:

  • int geometry_id
  • const std::string & name
  • double value

Return type: void

Function update_time_curve

void IRockyCurveCollectionData::update_time_curve(const std::string &owner_name, const std::string &name, double value)

This method updates a time curve by inserting a new value.:

Intended to be used only at output times. The value to be added should correspond to the output time at which this method is called. It only works with time curves previously created using IRockyCurveCollectionData::create_time_curve, otherwise it throws an error.

Parameters:

  • owner_name: The entity unique identifier (string)
  • name: The name of the time curve.
  • value: The value to be appended into the curve.

Parameters:

  • const std::string & owner_name
  • const std::string & name
  • double value

Return type: void

[const]: https://img.shields.io/badge/-const-lightblue (const)

Connect with Ansys