Skip to main content

System Coupling C++ library 2024 R2

Release notes for 2024 R2

Last update: 03.07.2024

New APIs for create system coupling SetupInfo

C++

The following new constructor has been added for creating sysc::SetupInfo with specifying the time integration method for the participant:

SetupInfo(
enum AnalysisType analysisType,
bool restartsSupported,
enum Dimension dimension,
enum TimeIntegration timeIntegration);

C

A helper function has been added for creating SyscSetupInfo with specifying the time integration method for the participant:

SyscSetupInfo syscGetSetupInfoARDT(
enum SyscAnalysisType analysisType,
int restartsSupported,
enum SyscDimension dimension,
enum SyscTimeIntegration timeIntegration);

Fortran

A helper function has been added for creating SyscSetupInfo with specifying the time integration method for the participant:

function syscgetsetupinfof_ardt(analysisType, &
restartsSupported, dimension, timeIntegration) result(ret)

Python

A new constructor has been added for sysc.SetupInfo with specifying the time integration method for the participant:

pySetupInfo=sysc.SetupInfo(sysc.Steady, False, sysc.Dimension_D2, sysc.TimeIntegration_Implicit)
Provide a structure for System Coupling setup information.

Release notes for 2024 R1

2D vector APIs

This change applies to C++, C, Fortran, and Python APIs.

C++

sysc::OutputVectorData and sysc::InputVectorData supports constructing both compact and split 2D vector data.

For example, the following new constructor function can used to create compact 2D vector data by passing sysc::Dimension::D2 to the dimension parameter.

sysc::OutputVectorData (const double* data, std::size_t size, Dimension dimension);
sysc::InputVectorData (double* data, std::size_t size, Dimension dimension);
Provide a class for input vector data.
Provide a class for output vector data.

The following new constructor function has been added to create split 2D vector data, accepting two data pointers or arrays.

sysc::OutputVectorData (const double* data1, const double* data2);
sysc::InputVectorData (double* data1, double* data2);

Note for sysc::OutputComplexVector and sysc::InputComplexVectorData, only 2D compact complex and compact vector formats are supported for now, and the new constructor below has been added to create 2D complex vector data by passing sysc::Dimension::D2 to the dimension parameter.

OutputComplexVectorData(const double* dataComplex, std::size_t size, Dimension dimension);
InputComplexVectorData(double* dataComplex, std::size_t size, Dimension dimension);

C

For C, helper functions have been added for creating 2D vector data.

For compact 2D vector data (pass SyscD2 to dimension):

SyscOutputVectorData syscGetOutputVectorDataCompactDoubleDim(
const double *const data,
size_t dataSize,
enum SyscDimension dimension);

For split 2D vector data:

SyscOutputVectorData syscGetOutput2DVectorDataSplitDouble(
const double *const data0,
const double *const data1,
size_t dataSize);

For 2D compact complex and compact vector data (pass SyscD2 to dimension):

SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataDoubleDim(
double *const data,
size_t dataSize,
enum SyscDimension dimension);

Fortran

For fortran, helper functions have been added for creating 2D vector data.

For compact 2D vector data (pass SyscD2 to dimension):

function syscgetoutputvectordatacompactdimf(&
data, dataSize, dimension) result (ret)

For split 2D vector data:

function syscgetoutput2dvectordatasplitf(&
data0, data1, dataSize) result (ret)

For 2D compact complex and compact vector data (pass SyscD2 to dimension):

function syscgetoutputcompactcomplexcompactvectordatadimf(&
data, dataSize, dimension) result (ret)

Python

For python, new constructors have been added for creating 2D vector data.

For compact 2D vector data:

py2DVector=sysc.OutputVectorData(data0=data,dimension=sysc.Dimension_D2)

For split 2D vector data:

py2DVector=sysc.OutputVectorData(data0=data0, data1=data1)

For 2D compact complex and compact vector data:

py2DComplexVector=sysc.OutputComplexVectorData(data1=complexData,dimension=sysc.Dimension_D2)
Provide a class for output complex vector data.

New APIs for create system coupling SetupInfo

C++

The following new constructor has been added for creating sysc::SetupInfo with specifying participant dimension:

SetupInfo(
enum AnalysisType analysisType,
bool restartsSupported,
enum Dimension dimension);

C

A helper function has been added for creating SyscSetupInfo with specifying participant dimension:

SyscSetupInfo syscGetSetupInfoARD(
enum SyscAnalysisType analysisType,
int restartsSupported,
enum SyscDimension dimension);

Fortran

A helper function has been added for creating SyscSetupInfo with specifying participant dimension:

function syscgetsetupinfof_ard(analysisType, &
restartsSupported, dimension) result(ret)

Python

A new constructor has been added for sysc.SetupInfo with specifying participant dimension:

pySetupInfo=sysc.SetupInfo(sysc.Steady,False,sysc.Dimension_D2)