Skip to main content

System Coupling C library 2024 R1

C Interfaces for Participant Library

Last update: 17.07.2025

Provides C interfaces to the System Coupling participant library. More...

Data Structures

struct  SyscRealAttribute
 Provide a struct for a real-valued attribute. More...
 
struct  SyscIntegerAttribute
 Provide a struct for an integer-valued attribute. More...
 
struct  SyscDimensionality
 Provide a structure for dimensionality. More...
 
struct  SyscTimeStep
 Provide a struct for time step. More...
 
struct  SyscSolutionControl
 Provide a structure containing solution control. More...
 
struct  SyscError
 Provide a struct for detecting errors from the interface calls. More...
 
struct  SyscSetupInfo
 Provide a structure for System Coupling setup information. More...
 
struct  SyscSetupFileInfo
 Provide a structure for writing System Coupling setup files. More...
 
struct  SyscResultsInfo
 Provide a structure for writing results files. More...
 
struct  SyscCouplingInterface
 Provide a struct for a coupling interface. More...
 
struct  SyscDataTransfer
 Provide a struct for a data transfer. More...
 
struct  SyscInputComplexScalarData
 Struct for input complex scalar data. More...
 
struct  SyscInputComplexVectorData
 Struct for input complex vector data. More...
 
struct  SyscInputScalarData
 Provide a struct for input scalar data. More...
 
struct  SyscInputVectorData
 Provide a struct for input vector data. More...
 
struct  SyscNodeData
 Node data access struct, provides read-only access to the mesh nodes. More...
 
struct  SyscElementTypeData
 Element types access struct, provides read-only access to the mesh element types. More...
 
struct  SyscElementNodeCountData
 Element node count access struct, provides read-only access to the mesh element node counts. More...
 
struct  SyscElementNodeConnectivityData
 Element node connectivity access struct, provides read-only access to the element-to-node connectivity. More...
 
struct  SyscFaceCellConnectivityData
 Describes face-to-cell connectivity. More...
 
struct  SyscCellIdData
 Cell ids struct. More...
 
struct  SyscElementIdData
 Element ids struct. More...
 
struct  SyscFaceData
 Face data struct. More...
 
struct  SyscCellData
 Cell data struct. More...
 
struct  SyscOutputComplexScalarData
 Struct for output complex scalar data. More...
 
struct  SyscOutputComplexVectorData
 Struct for output complex vector data. More...
 
struct  SyscOutputIntegerData
 Provide a struct for output integer data. More...
 
struct  SyscOutputScalarData
 Provide a struct for output scalar data. More...
 
struct  SyscOutputVectorData
 Create an output vector data access struct. More...
 
struct  SyscPointCloud
 Provide a point cloud access struct. More...
 
struct  SyscRegion
 Provide a struct for a System Coupling region. More...
 
struct  SyscSurfaceMesh
 Provide a surface mesh access struct. More...
 
struct  SyscVariable
 Provide a struct for a System Coupling variable. More...
 
struct  SyscVolumeMesh
 Provide a volume mesh access struct. More...
 

Macros

#define SYSC_STRING_LENGTH   256
 Define maximum string length.
 

Typedefs

typedef struct SyscSolutionControl SyscSolutionControl
 Provide a structure containing solution control.
 
typedef void * SyscOpaqueDataAccess
 
typedef struct SyscSetupInfo SyscSetupInfo
 Provide a structure for System Coupling setup information.
 
typedef struct SyscSetupFileInfo SyscSetupFileInfo
 Provide a structure for writing System Coupling setup files.
 
typedef struct SyscResultsInfo SyscResultsInfo
 Provide a structure for writing results files.
 
typedef struct SyscCouplingInterface SyscCouplingInterface
 Provide a struct for a coupling interface.
 
typedef struct SyscDataTransfer SyscDataTransfer
 Provide a struct for a data transfer.
 
typedef SyscInputScalarData(* SyscInputScalarDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to input scalar data.
 
typedef SyscInputScalarData(* SyscInputScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to input scalar data with opaque pointer.
 
typedef SyscInputScalarData(* SyscInputScalarDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone input scalar data.
 
typedef SyscInputVectorData(* SyscInputVectorDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to input vector data.
 
typedef SyscInputVectorData(* SyscInputVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to input vector data with opaque pointer.
 
typedef SyscInputVectorData(* SyscInputVectorDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone input vector data.
 
typedef SyscOutputScalarData(* SyscOutputScalarDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to output scalar data.
 
typedef SyscOutputScalarData(* SyscOutputScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to output scalar data with opaque pointer.
 
typedef SyscOutputScalarData(* SyscOutputScalarDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone output scalar data.
 
typedef SyscOutputVectorData(* SyscOutputVectorDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to output vector data.
 
typedef SyscOutputVectorData(* SyscOutputVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to output vector data with opaque pointer.
 
typedef SyscOutputVectorData(* SyscOutputVectorDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone output vector data.
 
typedef SyscInputComplexScalarData(* SyscInputComplexScalarDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to input complex scalar data.
 
typedef SyscInputComplexScalarData(* SyscInputComplexScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to input complex scalar data with opaque pointer.
 
typedef SyscInputComplexVectorData(* SyscInputComplexVectorDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to input complex vector data.
 
typedef SyscInputComplexVectorData(* SyscInputComplexVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to input complex vector data with opaque pointer.
 
typedef SyscOutputComplexScalarData(* SyscOutputComplexScalarDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to output complex scalar data.
 
typedef SyscOutputComplexScalarData(* SyscOutputComplexScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to output complex scalar data with opaque pointer.
 
typedef SyscOutputComplexVectorData(* SyscOutputComplexVectorDataAccess) (const char *regionName, const char *variableName)
 Provide function prototype for access to output complex vector data.
 
typedef SyscOutputComplexVectorData(* SyscOutputComplexVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
 Provide function prototype for access to output complex vector data with opaque pointer.
 
typedef SyscSurfaceMesh(* SyscSurfMeshAccess) (const char *regionName)
 Provide function prototype for access to surface mesh.
 
typedef SyscSurfaceMesh(* SyscSurfaceMeshAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
 Provide function prototype for access to surface mesh with opaque pointer.
 
typedef SyscSurfaceMesh(* SyscSurfaceMeshMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone surface mesh.
 
typedef SyscVolumeMesh(* SyscVolumeMeshAccess) (const char *regionName)
 Provide function prototype for access to volume mesh.
 
typedef SyscVolumeMesh(* SyscVolumeMeshAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
 Provide function prototype for access to volume mesh with opaque pointer.
 
typedef SyscVolumeMesh(* SyscVolumeMeshMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone volume mesh.
 
typedef SyscPointCloud(* SyscPointCloudAccess) (const char *regionName)
 Provide function prototype for access to point cloud.
 
typedef SyscPointCloud(* SyscPointCloudAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
 Provide function prototype for access to point cloud with an opaque pointer.
 
typedef SyscPointCloud(* SyscPointCloudMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)
 Provide function prototype for access to multi-zone point cloud.
 
typedef uint16_t(* SyscZoneCountAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
 Provide function prototype for access to zone count.
 
typedef const char *(* SyscRestartPointCreation) ()
 Provide function prototype for creating restart points.
 
typedef struct SyscRegion SyscRegion
 Provide a struct for a System Coupling region.
 
typedef struct SyscVariable SyscVariable
 Provide a struct for a System Coupling variable.
 

Enumerations

enum  SyscLocation { SyscNode = 0 , SyscElement = 1 }
 Provide an enum for variable mesh locations. More...
 
enum  SyscTensorType { SyscScalar = 0 , SyscVector = 1 }
 Provide an enum for variable tensor type. More...
 
enum  SyscTopology { SyscSurface = 2 , SyscVolume = 3 }
 Provide an enum for region topologies. More...
 
enum  SyscRegionDiscretizationType { SyscMeshRegion = 0 , SyscPointCloudRegion = 1 }
 Provoide an enum for region mesh type. More...
 
enum  SyscInterfaceSide { SyscInterfaceSide_One = 1 , SyscInterfaceSide_Two = 2 }
 Provide enum for coupling interface side. More...
 
enum  SyscDimension { SyscD2 = 2 , SyscD3 = 3 }
 Provide enum for system coupling dimension. More...
 
enum  SyscQuantityType {
  SyscUnspecified = 0 , SyscForce = 1 , SyscIncrementalDisplacement = 2 , SyscTemperature = 3 ,
  SyscHeatRate = 4 , SyscHeatTransferCoefficient = 5 , SyscConvectionReferenceTemperature = 6 , SyscModeShape = 7 ,
  SyscElectricalConductivity = 8
}
 Provide an enum for supported quantity types. More...
 
enum  SyscDataType { SyscDataType_Real = 0 , SyscDataType_Complex = 1 }
 
enum  SyscConvergenceStatus {
  SyscDiverging = -1 , SyscNotYetConverged = 0 , SyscConverged = 1 , SyscComplete = 2 ,
  SyscNotEvaluated = 3
}
 Provide enum for participant's solver convergence status. More...
 
enum  SyscAnalysisType { SyscSteady = 0 , SyscTransient = 1 }
 Provide an enum for coupled analysis type. More...
 
enum  SyscPrimitiveType {
  SyscFloat = 0 , SyscDouble = 1 , SyscInt32 = 2 , SyscInt64 = 3 ,
  SyscUnsignedInt16 = 4 , SyscUnsignedInt64 = 5
}
 Provide an enum for supported primitive types. More...
 
enum  SyscElementTypes {
  SyscTri3 = 5 , SyscTri6 = 6 , SyscQuad4 = 7 , SyscQuad8 = 8 ,
  SyscTet4 = 9 , SyscTet10 = 10 , SyscHex8 = 11 , SyscHex20 = 12 ,
  SyscWedge6 = 13 , SyscWedge15 = 14 , SyscPyramid5 = 15 , SyscPyramid13 = 16 ,
  SyscPolygon = 18 , SyscPolyhedron = 19
}
 Provide an enum for element types. More...
 

Functions

SyscRealAttribute syscGetRealAttribute (const char *name, double value, SyscDimensionality dimensionality)
 Create a real-valued attribute.
 
SyscIntegerAttribute syscGetIntegerAttribute (const char *name, long long int value)
 Create an integer-valued attribute.
 
SyscDimensionality syscGetDimensionality ()
 Get dimensionality.
 
SyscError syscGetSyscError (int retcode, const char *message)
 Provide a function to return SyscError struct.
 
SyscSetupInfo syscGetSetupInfo ()
 Create a setup info struct.
 
SyscSetupInfo syscGetSetupInfoA (enum SyscAnalysisType analysisType)
 Create a setup info struct.
 
SyscSetupInfo syscGetSetupInfoAR (enum SyscAnalysisType analysisType, int restartsSupported)
 Create a setup info struct.
 
SyscSetupInfo syscGetSetupInfoARD (enum SyscAnalysisType analysisType, int restartsSupported, enum SyscDimension dimension)
 Create a setup info struct.
 
SyscSetupFileInfo syscGetSetupFileInfo (const char *setupFileName)
 Provide a function to create SetupFileInfo struct.
 
SyscResultsInfo syscGetResultsInfo (const char *baseFileName)
 Provide a function to create SetupFileInfo struct.
 
SyscCouplingInterface syscGetCouplingInterface (const char *name)
 Create a coupling interface.
 
SyscError syscAddSideOneRegion (const SyscCouplingInterface couplingInterface, const SyscRegion region)
 Add region to side one of the interface.
 
SyscError syscAddSideTwoRegion (const SyscCouplingInterface couplingInterface, const SyscRegion region)
 Add region to side two of the interface.
 
SyscError syscAddDataTransfer (SyscCouplingInterface couplingInterface, SyscDataTransfer dataTransfer)
 Add the data transfer to the coupling interface.
 
size_t syscCouplingInterfaceGetNumDataTransfers (SyscCouplingInterface couplingInterface)
 Get number of data transfer for a given coupling interface.
 
size_t syscCouplingInterfaceGetNumSideOneRegions (SyscCouplingInterface couplingInterface)
 Get number of side one regions for a given coupling interface.
 
size_t syscCouplingInterfaceGetNumSideTwoRegions (SyscCouplingInterface couplingInterface)
 Get number of side two regions for a given coupling interface.
 
SyscDataTransfer syscCouplingInterfaceGetDataTransfer (SyscCouplingInterface couplingInterface, size_t index)
 Get the data transfer at specified index for a given coupling interface.
 
SyscRegion syscCouplingInterfaceGetSideOneRegion (SyscCouplingInterface couplingInterface, size_t index)
 Get the side one region at specified index for a given coupling interface.
 
SyscRegion syscCouplingInterfaceGetSideTwoRegion (SyscCouplingInterface couplingInterface, size_t index)
 Get the side two region at specified index for a given coupling interface.
 
SyscDataTransfer syscGetDataTransfer (SyscVariable sideOneVariable, SyscVariable sideTwoVariable, enum SyscInterfaceSide targetSide)
 Create a data transfer using side{One|Two}Variable.
 
SyscDataTransfer syscGetDataTransferST (SyscVariable sourceVariable, SyscVariable targetVariable, enum SyscInterfaceSide targetSide)
 Create a data transfer using {source|target}Variable.
 
SyscInputComplexScalarData syscGetInputComplexScalarData ()
 Create an empty input copmlex scalar data access struct.
 
SyscInputComplexScalarData syscGetInputComplexScalarDataSplitDouble (double *const dataReal, double *const dataImag, size_t dataSize)
 Create a complex input scalar data access struct.
 
SyscInputComplexScalarData syscGetInputComplexScalarDataSplitFloat (float *const dataReal, float *const dataImag, size_t dataSize)
 Create a complex input scalar data access struct.
 
SyscInputComplexScalarData syscGetInputComplexScalarDataCompactDouble (double *const data, size_t dataSize)
 Create a complex input scalar data access struct.
 
SyscInputComplexScalarData syscGetInputComplexScalarDataCompactFloat (float *const data, size_t dataSize)
 Create a complex input scalar data access struct.
 
SyscInputComplexVectorData syscGetInputComplexVectorData ()
 Create an empty input complex vector data access struct.
 
SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataDouble (double *const data, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataFloat (float *const data, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputSplitComplexCompactVectorDataDouble (double *const dataReal, double *const dataImag, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputSplitComplexCompactVectorDataFloat (float *const dataReal, float *const dataImag, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputCompactComplexSplitVectorDataDouble (double *const data1, double *const data2, double *const data3, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputCompactComplexSplitVectorDataFloat (float *const data1, float *const data2, float *const data3, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputSplitComplexSplitVectorDataDouble (double *const data1Real, double *const data1Imag, double *const data2Real, double *const data2Imag, double *const data3Real, double *const data3Imag, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputSplitComplexSplitVectorDataFloat (float *const data1Real, float *const data1Imag, float *const data2Real, float *const data2Imag, float *const data3Real, float *const data3Imag, size_t dataSize)
 Create a 3D complex input vector data access struct.
 
SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataDoubleDim (double *const data, size_t dataSize, enum SyscDimension dimension)
 Create a complex input vector data access struct based on dimension.
 
SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataFloatDim (float *const data, size_t dataSize, enum SyscDimension dimension)
 Create a complex input vector data access struct based on dimension.
 
SyscInputScalarData syscGetInputScalarData ()
 Create an input scalar data access struct.
 
SyscInputScalarData syscGetInputScalarDataDouble (double *const data, size_t dataSize)
 Create an input scalar data access struct.
 
SyscInputScalarData syscGetInputScalarDataFloat (float *const data, size_t dataSize)
 Create an input scalar data access struct.
 
SyscInputVectorData syscGetInputVectorData ()
 Create an input vector data access struct.
 
SyscInputVectorData syscGetInputVectorDataCompactDouble (double *const data, size_t dataSize)
 Create an 3D input vector data access struct with compact storage.
 
SyscInputVectorData syscGetInputVectorDataCompactFloat (float *const data, size_t dataSize)
 Create an 3D input vector data access struct with compact storage.
 
SyscInputVectorData syscGetInputVectorDataSplitDouble (double *const data0, double *const data1, double *const data2, size_t dataSize)
 Create an 3D input vector data access struct with split storage.
 
SyscInputVectorData syscGetInputVectorDataSplitFloat (float *const data0, float *const data1, float *const data2, size_t dataSize)
 Create an 3D input vector data access struct with split storage.
 
SyscInputVectorData syscGetInputVectorDataCompactDoubleDim (double *const data, size_t dataSize, enum SyscDimension dimension)
 Create an input vector data access struct with compact storage based on dimension.
 
SyscInputVectorData syscGetInputVectorDataCompactFloatDim (float *const data, size_t dataSize, enum SyscDimension dimension)
 Create an input vector data access struct with compact storage based on dimension.
 
SyscInputVectorData syscGetInput2DVectorDataSplitDouble (double *const data0, double *const data1, size_t dataSize)
 Create an 2D input vector data access struct with split storage.
 
SyscInputVectorData syscGetInput2DVectorDataSplitFloat (float *const data0, float *const data1, size_t dataSize)
 Create an 2D input vector data access struct with split storage.
 
SyscNodeData syscGetNodeData ()
 Create a mesh node data access struct.
 
SyscNodeData syscGetNodeDataIC (SyscOutputIntegerData nodeIds, SyscOutputVectorData nodeCoords)
 Create a mesh node data access struct, given node ids and node coords in same order.
 
SyscNodeData syscGetNodeDataC (SyscOutputVectorData nodeCoords)
 Creates a mesh node data access struct, given node coordinates in ascending node ids order.
 
SyscElementTypeData syscGetElementTypeDataEmpty ()
 Create an empty mesh element type data access struct.
 
SyscElementTypeData syscGetElementTypeData (SyscOutputIntegerData elemTypes)
 Create an mesh element type data access struct, given element types.
 
SyscElementNodeCountData syscGetElementNodeCountDataEmpty ()
 Create an empty mesh element node count data access struct.
 
SyscElementNodeCountData syscGetElementNodeCountData (SyscOutputIntegerData elemNodeCount)
 Create an mesh element node count data access struct, given element node counts.
 
SyscElementNodeConnectivityData syscGetElementNodeConnectivityDataEmpty ()
 Create an empty element-to-node connectivity data access struct.
 
SyscElementNodeConnectivityData syscGetElementNodeConnectivityData (SyscOutputIntegerData elemNodeIds)
 Create an element-to-node connectivity data access struct, given element node ids.
 
SyscFaceCellConnectivityData syscGetFaceCellConnectivityDataEmpty ()
 Create empty face-to-cell connectivity.
 
SyscFaceCellConnectivityData syscGetFaceCellConnectivityData (SyscOutputIntegerData cell0Ids, SyscOutputIntegerData cell1Ids)
 Create face-to-cell connectivity given cell0 and cell1 arrays.
 
SyscCellIdData syscGetCellIdDataEmpty ()
 Create empty cell id data.
 
SyscCellIdData syscGetCellIdData (SyscOutputIntegerData cellIds)
 Create cell id data given cell ids array.
 
SyscElementIdData syscGetElementIdDataEmpty ()
 Create empty element id data.
 
SyscElementIdData syscGetElementIdData (SyscOutputIntegerData elementIds)
 Create cell id data given cell ids array.
 
SyscFaceData syscGetFaceDataEmpty ()
 Create empty face data.
 
SyscFaceData syscGetFaceDataITCNF (SyscElementIdData faceIds, SyscElementTypeData faceTypes, SyscElementNodeCountData faceNodeCounts, SyscElementNodeConnectivityData faceNodeConnectivity, SyscFaceCellConnectivityData faceCellConnectivity)
 Create face data given face ids, types, node counts, node-to-face connectivity, face-to-cell connectivity.
 
SyscFaceData syscGetFaceDataICNF (SyscElementIdData faceIds, SyscElementNodeCountData faceNodeCounts, SyscElementNodeConnectivityData faceNodeConnectivity, SyscFaceCellConnectivityData faceCellConnectivity)
 Create face data given face ids, types, node-to-face connectivity, face-to-cell connectivity.
 
SyscFaceData syscGetFaceDataITN (SyscElementIdData faceIds, SyscElementTypeData faceTypes, SyscElementNodeConnectivityData faceNodeConnectivity)
 Create face data given face ids, types, node-to-face connectivity, face-to-cell connectivity.
 
SyscFaceData syscGetFaceDataCN (SyscElementNodeCountData faceNodeCounts, SyscElementNodeConnectivityData faceNodeConnectivity)
 Create face data given face node counts, node-to-face connectivity.
 
SyscCellData syscGetCellDataEmpty ()
 Create empty cell data.
 
SyscCellData syscGetCellDataITN (SyscElementIdData cellIds, SyscElementTypeData cellTypes, SyscElementNodeConnectivityData cellNodeConnectivity)
 Create cell data given cell ids, types, cell-to-node connectivity.
 
SyscCellData syscGetCellDataI (SyscElementIdData cellIds)
 Create cell data given cell ids.
 
SyscCellData syscGetCellDataTN (SyscElementTypeData cellTypes, SyscElementNodeConnectivityData cellNodeConnectivity)
 Create cell data given cell types, cell-to-node connectivity.
 
SyscOutputComplexScalarData syscGetOutputComplexScalarData ()
 Create an empty output complex scalar data access struct.
 
SyscOutputComplexScalarData syscGetOutputComplexScalarDataSplitDouble (const double *const dataReal, const double *const dataImag, size_t dataSize)
 Create a complex output scalar data access struct.
 
SyscOutputComplexScalarData syscGetOutputComplexScalarDataSplitFloat (const float *const dataReal, const float *const dataImag, size_t dataSize)
 Create a complex output scalar data access struct.
 
SyscOutputComplexScalarData syscGetOutputComplexScalarDataCompactDouble (const double *const data, size_t dataSize)
 Create a complex output scalar data access struct.
 
SyscOutputComplexScalarData syscGetOutputComplexScalarDataCompactFloat (const float *const data, size_t dataSize)
 Create a complex output scalar data access struct.
 
SyscOutputComplexVectorData syscGetOutputComplexVectorData ()
 Create an empty output complex vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataDouble (const double *const data, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataFloat (const float *const data, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputSplitComplexCompactVectorDataDouble (const double *const dataReal, const double *const dataImag, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputSplitComplexCompactVectorDataFloat (const float *const dataReal, const float *const dataImag, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputCompactComplexSplitVectorDataDouble (const double *const data1, const double *const data2, const double *const data3, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputCompactComplexSplitVectorDataFloat (const float *const data1, const float *const data2, const float *const data3, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputSplitComplexSplitVectorDataDouble (const double *const data1Real, const double *const data1Imag, const double *const data2Real, const double *const data2Imag, const double *const data3Real, const double *const data3Imag, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputSplitComplexSplitVectorDataFloat (const float *const data1Real, const float *const data1Imag, const float *const data2Real, const float *const data2Imag, const float *const data3Real, const float *const data3Imag, size_t dataSize)
 Create a 3D complex output vector data access struct.
 
SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataDoubleDim (const double *const data, size_t dataSize, enum SyscDimension dimension)
 Create a complex output vector data access struct based on dimension.
 
SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataFloatDim (const float *const data, size_t dataSize, enum SyscDimension dimension)
 Create a complex output vector data access struct based on dimension.
 
SyscOutputIntegerData syscGetOutputIntegerData ()
 Create an output integer data access struct.
 
SyscOutputIntegerData syscGetOutputIntegerDataInt32 (const int32_t *const data, size_t dataSize)
 Create an output integer data access struct.
 
SyscOutputIntegerData syscGetOutputIntegerDataInt64 (const int64_t *const data, size_t dataSize)
 Create an output integer data access struct.
 
SyscOutputIntegerData syscGetOutputIntegerDataUInt16 (const uint16_t *const data, size_t dataSize)
 Create an output integer data access struct.
 
SyscOutputIntegerData syscGetOutputIntegerDataUInt64 (const uint64_t *const data, size_t dataSize)
 Create an output integer data access struct.
 
SyscOutputScalarData syscGetOutputScalarData ()
 Create an output scalar data access struct.
 
SyscOutputScalarData syscGetOutputScalarDataDouble (const double *const data, size_t dataSize)
 Create an output scalar data access struct.
 
SyscOutputScalarData syscGetOutputScalarDataFloat (const float *const data, size_t dataSize)
 Create an output scalar data access struct.
 
SyscOutputScalarData syscGetOutputScalarDataInt32 (const int32_t *const data, size_t dataSize)
 Create an output scalar data access struct.
 
SyscOutputScalarData syscGetOutputScalarDataInt64 (const int64_t *const data, size_t dataSize)
 Create an output scalar data access struct.
 
SyscOutputScalarData syscGetOutputScalarDataUInt16 (const uint16_t *const data, size_t dataSize)
 Create an output scalar data access struct.
 
SyscOutputScalarData syscGetOutputScalarDataUInt64 (const uint64_t *const data, size_t dataSize)
 Create an output scalar data access struct.
 
SyscOutputVectorData syscGetOutputVectorData ()
 Create an output vector data access struct.
 
SyscOutputVectorData syscGetOutputVectorDataCompactDouble (const double *const data, size_t dataSize)
 Create an 3D output vector data access struct with compact storage.
 
SyscOutputVectorData syscGetOutputVectorDataCompactFloat (const float *const data, size_t dataSize)
 Create an 3D output vector data access struct with compact storage.
 
SyscOutputVectorData syscGetOutputVectorDataSplitDouble (const double *const data0, const double *const data1, const double *const data2, size_t dataSize)
 Create an 3D output vector data access struct with split storage.
 
SyscOutputVectorData syscGetOutputVectorDataSplitFloat (const float *const data0, const float *const data1, const float *const data2, size_t dataSize)
 Create an 3D output vector data access struct with split storage.
 
SyscOutputVectorData syscGetOutputVectorDataCompactDoubleDim (const double *const data, size_t dataSize, enum SyscDimension dimension)
 Create an output vector data access struct with compact storage based on dimension.
 
SyscOutputVectorData syscGetOutputVectorDataCompactFloatDim (const float *const data, size_t dataSize, enum SyscDimension dimension)
 Create an output vector data access struct with compact storage based on dimension.
 
SyscOutputVectorData syscGetOutput2DVectorDataSplitDouble (const double *const data0, const double *const data1, size_t dataSize)
 Create a 2D output vector data access struct with split storage.
 
SyscOutputVectorData syscGetOutput2DVectorDataSplitFloat (const float *const data0, const float *const data1, size_t dataSize)
 Create an output vector data access struct with split storage.
 
SyscPointCloud syscGetPointCloudEmpty ()
 Create a point cloud access struct.
 
SyscPointCloud syscGetPointCloud (SyscOutputIntegerData nodeIds, SyscOutputVectorData nodeCoords)
 Create a point cloud access struct.
 
SyscRegion syscGetRegion (const char *name)
 Create region to be used in a coupled analysis.
 
SyscRegion syscGetRegionT (const char *name, enum SyscTopology topology)
 Create region to be used in a coupled analysis.
 
SyscRegion syscGetRegionDT (const char *name, const char *displayName, enum SyscTopology topology)
 Create region to be used in a coupled analysis.
 
SyscRegion syscGetRegionTM (const char *name, enum SyscTopology topology, enum SyscRegionDiscretizationType regionDiscretizationType)
 Create region to be used in a coupled analysis.
 
SyscRegion syscGetRegionDTM (const char *name, const char *displayName, enum SyscTopology topology, enum SyscRegionDiscretizationType regionDiscretizationType)
 Create region to be used in a coupled analysis.
 
SyscError syscAddInputVariable (const SyscRegion region, const SyscVariable variable)
 Provide a function to add an input variable to the region.
 
SyscError syscAddOutputVariable (const SyscRegion region, const SyscVariable variable)
 Provide a function to add an output variable to the region.
 
size_t syscGetNumInputVariables (const SyscRegion region)
 Provide a function to return the number of input variables.
 
SyscVariable syscGetInputVariable (const SyscRegion region, size_t index)
 Return an input variable.
 
size_t syscGetNumOutputVariables (const SyscRegion region)
 Provide a function to return the number of output variables.
 
SyscVariable syscGetOutputVariable (const SyscRegion region, size_t index)
 Return an output variable.
 
SyscSurfaceMesh syscGetSurfaceMesh ()
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshNF (SyscNodeData nodes, SyscFaceData faces)
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshNTCI (SyscNodeData nodes, SyscElementTypeData elemTypes, SyscElementNodeCountData elemNodeCounts, SyscElementNodeConnectivityData elemNodeConnectivity)
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshNCI (SyscNodeData nodes, SyscElementNodeCountData elemNodeCounts, SyscElementNodeConnectivityData elemNodeConnectivity)
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshNCIF (SyscNodeData nodes, SyscElementNodeCountData elemNodeCounts, SyscElementNodeConnectivityData elemNodeConnectivity, SyscFaceCellConnectivityData faceCellConnectivty)
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshNTI (SyscNodeData nodes, SyscElementTypeData elemTypes, SyscElementNodeConnectivityData elemNodeConnectivity)
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshA (SyscOutputScalarData nodeIds, SyscOutputVectorData nodeCoords, SyscOutputScalarData elemNodeCounts, SyscOutputScalarData elemNodeIds)
 Create a surface mesh access struct.
 
SyscSurfaceMesh syscGetSurfaceMeshB (SyscOutputVectorData nodeCoords, SyscOutputScalarData elemNodeCounts, SyscOutputScalarData elemNodeIds)
 Create a surface mesh access struct.
 
SyscError syscStartStandaloneParallel (const size_t mpiCommunicator)
 Provide a function to start standalone mode in parallel.
 
SyscError syscConnect (const char *scHost, const unsigned short scPort, const char *participantName, const char *buildInformation)
 Provide a function to establish connection to System Coupling.
 
SyscError syscConnectParallel (const char *scHost, const unsigned short scPort, const char *participantName, const size_t communicator, const char *buildInformation)
 Provide a function to establish connection to System Coupling in parallel.
 
SyscError syscConnectUseStruct (SyscParticipantInfo participantInfo)
 Provide a function to establish connection to System Coupling in serial using a C structure.
 
SyscError syscConnectParallelUseStruct (SyscParticipantInfo participantInfo, const size_t communicator)
 Provide a function to establish connection to System Coupling in parellel using a C structure.
 
SyscError syscAddRegion (const SyscRegion region)
 Provide a function to add a region that could be used in a coupled analysis.
 
SyscError syscAddCouplingInterface (const SyscCouplingInterface couplingInterface)
 Provide a function to add a coupling interface.
 
SyscError syscAddCouplingInterfaceA (const SyscCouplingInterface couplingInterface, int autoGenerateDataTransfers)
 Provide a function to add a coupling interface.
 
SyscError syscCompleteSetup (const SyscSetupInfo setupInfo)
 Provide a function to notify System Coupling that setup can be completed.
 
SyscError syscRegisterInputScalarDataAccess (SyscInputScalarDataAccess dataAccess)
 Provide a function to register input scalar data access.
 
SyscError syscRegisterInputScalarDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscInputScalarDataAccessWithPointer dataAccess)
 Provide a function to register input scalar data access.
 
SyscError syscRegisterInputScalarDataMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscInputScalarDataMultiZoneAccess dataAccess)
 Provide a function to register input scalar data multi-zone access.
 
SyscError syscRegisterInputVectorDataAccess (SyscInputVectorDataAccess dataAccess)
 Provide a function to register input vector data access.
 
SyscError syscRegisterInputVectorDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscInputVectorDataAccessWithPointer dataAccess)
 Provide a function to register input vector data access.
 
SyscError syscRegisterInputVectorDataMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscInputVectorDataMultiZoneAccess dataAccess)
 Provide a function to register input vector data multi-zone access.
 
SyscError syscRegisterOutputScalarDataAccess (SyscOutputScalarDataAccess dataAccess)
 Provide a function to register output scalar data access.
 
SyscError syscRegisterOutputScalarDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscOutputScalarDataAccessWithPointer dataAccess)
 Provide a function to register output scalar data access.
 
SyscError syscRegisterOutputScalarDataMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscOutputScalarDataMultiZoneAccess dataAccess)
 Provide a function to register output scalar data multi-zone access.
 
SyscError syscRegisterOutputVectorDataAccess (SyscOutputVectorDataAccess dataAccess)
 Provide a function to register output vector data access.
 
SyscError syscRegisterOutputVectorDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscOutputVectorDataAccessWithPointer dataAccess)
 Provide a function to register output vector data access.
 
SyscError syscRegisterOutputVectorDataMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscOutputVectorDataMultiZoneAccess dataAccess)
 Provide a function to register output vector data multi-zone access.
 
SyscError syscRegisterInputComplexScalarDataAccess (SyscInputComplexScalarDataAccess dataAccess)
 Provide a function to register input complex scalar data access.
 
SyscError syscRegisterInputComplexScalarDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscInputComplexScalarDataAccessWithPointer dataAccess)
 Provide a function to register input complex scalar data access.
 
SyscError syscRegisterInputComplexVectorDataAccess (SyscInputComplexVectorDataAccess dataAccess)
 Provide a function to register input complex vector data access.
 
SyscError syscRegisterInputComplexVectorDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscInputComplexVectorDataAccessWithPointer dataAccess)
 Provide a function to register input complex vector data access.
 
SyscError syscRegisterOutputComplexScalarDataAccess (SyscOutputComplexScalarDataAccess dataAccess)
 Provide a function to register output complex scalar data access.
 
SyscError syscRegisterOutputComplexScalarDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscOutputComplexScalarDataAccessWithPointer dataAccess)
 Provide a function to register output complex scalar data access.
 
SyscError syscRegisterOutputComplexVectorDataAccess (SyscOutputComplexVectorDataAccess dataAccess)
 Provide a function to register output complex vector data access.
 
SyscError syscRegisterOutputComplexVectorDataAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscOutputComplexVectorDataAccessWithPointer dataAccess)
 Provide a function to register output complex vector data access.
 
SyscError syscRegisterSurfMeshAccess (SyscSurfMeshAccess meshAccess)
 Provide a function to register surface mesh access.
 
SyscError syscRegisterSurfaceMeshAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscSurfaceMeshAccessWithPointer meshAccess)
 Provide a function to register surface mesh access.
 
SyscError syscRegisterSurfaceMeshMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscSurfaceMeshMultiZoneAccess meshAccess)
 Provide a function to register surface mesh multi-zone access.
 
SyscError syscRegisterVolumeMeshAccess (SyscVolumeMeshAccess meshAccess)
 Provide a function to register volume mesh access.
 
SyscError syscRegisterVolumeMeshAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscVolumeMeshAccessWithPointer meshAccess)
 Provide a function to register volume mesh access.
 
SyscError syscRegisterVolumeMeshMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscVolumeMeshMultiZoneAccess meshAccess)
 Provide a function to register volume mesh multi-zone access.
 
SyscError syscRegisterPointCloudAccess (SyscPointCloudAccess pointCloudAccess)
 Provide a function to register point cloud access.
 
SyscError syscRegisterPointCloudAccessWithPointer (SyscOpaqueDataAccess opaqueDataAccess, SyscPointCloudAccessWithPointer pointCloudAccess)
 Provide a function to register point cloud access.
 
SyscError syscRegisterPointCloudMultiZoneAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscPointCloudMultiZoneAccess pointCloudAccess)
 Provide a function to register point cloud multi-zone access.
 
SyscError syscRegisterZoneCountAccess (SyscOpaqueDataAccess opaqueDataAccess, SyscZoneCountAccess zoneCountAccess)
 Provide a function to register zone count access.
 
SyscError syscRegisterRestartPointCreation (SyscRestartPointCreation restartPointCreation)
 Provide a function to register restart point creation callback.
 
SyscError syscInitializeAnalysis ()
 Provide a function to notify System Coupling that analysis initialization can be completed.
 
int syscDoIteration ()
 Provide a function to check whether to do a coupling iteration.
 
int syscDoTimeStep ()
 Provide a function to check whether to do a coupling time step.
 
SyscTimeStep syscGetCurrentTimeStep ()
 Provide a function to get current time step.
 
SyscError syscUpdateInputs ()
 Provide a function to update the participants input variables.
 
SyscError syscUpdateOutputs (const enum SyscConvergenceStatus convStatus)
 Provide a function to update the participants output variables.
 
SyscError syscDisconnect ()
 Provide a function to end the analysis and disconnect from System Coupling.
 
void syscFatalError (const char *errorMessage)
 Provide a function to notify System Coupling about a fatal error.
 
SyscError syscCheckSurfaceMeshValidity (SyscSurfaceMesh mesh)
 Provide a function to perform simple mesh validity checks.
 
int syscWriteSetupFile (const SyscSetupFileInfo setupFileInfo)
 Provide a function to write the setup file.
 
SyscError syscWriteResults (const SyscResultsInfo resultsInfo)
 Write results to a file.
 
size_t syscGetNumRegions ()
 Provide a function to return the number of added regions.
 
SyscRegion syscGetAddedRegion (size_t index)
 Provide a function to return added region given the region index.
 
SyscSolutionControl syscGetSolutionControl ()
 Get solution control.
 
size_t syscGetNumCouplingInterfaces ()
 Provide a function to return the number of added coupling interfaces.
 
SyscCouplingInterface syscGetAddedCouplingInterface (size_t index)
 
SyscVariable syscGetVariable (const char *name)
 Create variable to be used in a coupled analysis.
 
SyscVariable syscGetVariableDTELQD (const char *name, const char *displayName, enum SyscTensorType tensorType, int isExtensive, enum SyscLocation location, enum SyscQuantityType quantityType, enum SyscDataType dataType)
 Create variable to be used in a coupled analysis.
 
SyscVariable syscGetVariableTE (const char *name, enum SyscTensorType tensorType, int isExtensive, enum SyscLocation location)
 Create variable to be used in a coupled analysis.
 
SyscVariable syscGetVariableTEQ (const char *name, const char *displayName, enum SyscTensorType tensorType, int isExtensive, enum SyscLocation location, enum SyscQuantityType quantityType)
 Create variable to be used in a coupled analysis.
 
SyscVariable syscGetVariableQ (const char *name, const char *displayName, enum SyscLocation location, enum SyscQuantityType quantityType)
 Create variable to be used in a coupled analysis.
 
SyscError syscVariableAddRealAttribute (SyscVariable variable, SyscRealAttribute attribute)
 Add real-valued attribute to the variable.
 
SyscError syscVariableAddIntegerAttribute (SyscVariable variable, SyscIntegerAttribute attribute)
 Add integer-valued attribute to the variable.
 
size_t syscVariableGetNumRealAttributes (SyscVariable variable)
 Get number of real-valued attributes.
 
size_t syscVariableGetNumIntegerAttributes (SyscVariable variable)
 Get number of integer-valued attributes.
 
SyscRealAttribute syscVariableGetRealAttribute (SyscVariable variable, size_t index)
 Return the real-valued attribute at the given index.
 
SyscIntegerAttribute syscVariableGetIntegerAttribute (SyscVariable variable, size_t index)
 Return the integer-valued attribute at the given index.
 
SyscVolumeMesh syscGetVolumeMeshEmpty ()
 Create an empty volume mesh access struct.
 
SyscVolumeMesh syscGetVolumeMeshNFC (SyscNodeData nodes, SyscFaceData faces, SyscCellData cells)
 Create a volume mesh access struct.
 
SyscVolumeMesh syscGetVolumeMeshElementBased (SyscNodeData nodes, SyscElementTypeData cellTypes, SyscElementNodeConnectivityData cellNodeConnectivity)
 Create an element-based volume mesh access struct.
 
SyscVolumeMesh syscGetVolumeMeshFaceBased (SyscNodeData nodes, SyscElementNodeCountData faceNodeCounts, SyscElementNodeConnectivityData faceNodeConnectivity, SyscFaceCellConnectivityData faceCellConnectivity, SyscCellIdData cellIds)
 Create a face-based volume mesh access struct.
 

Detailed Description

Provides C interfaces to the System Coupling participant library.

The C interface closely follows the C++ interface, and is implemented as a wrapper around the latter.

Macro Definition Documentation

◆ SYSC_STRING_LENGTH

#define SYSC_STRING_LENGTH   256

Define maximum string length.

Definition at line 23 of file syscCommonTypes.h.

Typedef Documentation

◆ SyscCouplingInterface

Provide a struct for a coupling interface.

Coupling interface can be used to set up the transfers of data between different regions within the same participant solver. Interface contains two sides and each side can contain one or more regions. Data transfers are automatically defined: if a variable is defined as an output on all regions on one side of the interface and as an input on all regions on the opposide side of the interface, then it will be mapped from the former side to the latter side.

All regions on one side of the interface must have the same topology.

To create and/or initialize the SyscCouplingInterface struct, it is highly recommended to use the syscGetCouplingInterface function. This function will initialize all members to the correct values and will help to avoid back-compatibility issues in the future. For example:

SyscCouplingInterface syscGetCouplingInterface(const char *name)
Create a coupling interface.
Provide a struct for a coupling interface.

◆ SyscDataTransfer

Provide a struct for a data transfer.

Data transfer specifies the source and target variables for mapping.

◆ SyscInputComplexScalarDataAccess

typedef SyscInputComplexScalarData(* SyscInputComplexScalarDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to input complex scalar data.

Definition at line 135 of file syscFunctionTypes.h.

◆ SyscInputComplexScalarDataAccessWithPointer

typedef SyscInputComplexScalarData(* SyscInputComplexScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to input complex scalar data with opaque pointer.

Definition at line 142 of file syscFunctionTypes.h.

◆ SyscInputComplexVectorDataAccess

typedef SyscInputComplexVectorData(* SyscInputComplexVectorDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to input complex vector data.

Definition at line 150 of file syscFunctionTypes.h.

◆ SyscInputComplexVectorDataAccessWithPointer

typedef SyscInputComplexVectorData(* SyscInputComplexVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to input complex vector data with opaque pointer.

Definition at line 157 of file syscFunctionTypes.h.

◆ SyscInputScalarDataAccess

typedef SyscInputScalarData(* SyscInputScalarDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to input scalar data.

Definition at line 39 of file syscFunctionTypes.h.

◆ SyscInputScalarDataAccessWithPointer

typedef SyscInputScalarData(* SyscInputScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to input scalar data with opaque pointer.

Definition at line 46 of file syscFunctionTypes.h.

◆ SyscInputScalarDataMultiZoneAccess

typedef SyscInputScalarData(* SyscInputScalarDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone input scalar data.

Definition at line 54 of file syscFunctionTypes.h.

◆ SyscInputVectorDataAccess

typedef SyscInputVectorData(* SyscInputVectorDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to input vector data.

Definition at line 63 of file syscFunctionTypes.h.

◆ SyscInputVectorDataAccessWithPointer

typedef SyscInputVectorData(* SyscInputVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to input vector data with opaque pointer.

Definition at line 70 of file syscFunctionTypes.h.

◆ SyscInputVectorDataMultiZoneAccess

typedef SyscInputVectorData(* SyscInputVectorDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone input vector data.

Definition at line 78 of file syscFunctionTypes.h.

◆ SyscOpaqueDataAccess

typedef void* SyscOpaqueDataAccess

Declare an opaque pointer type.

Definition at line 150 of file syscCommonTypes.h.

◆ SyscOutputComplexScalarDataAccess

typedef SyscOutputComplexScalarData(* SyscOutputComplexScalarDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to output complex scalar data.

Definition at line 165 of file syscFunctionTypes.h.

◆ SyscOutputComplexScalarDataAccessWithPointer

typedef SyscOutputComplexScalarData(* SyscOutputComplexScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to output complex scalar data with opaque pointer.

Definition at line 172 of file syscFunctionTypes.h.

◆ SyscOutputComplexVectorDataAccess

typedef SyscOutputComplexVectorData(* SyscOutputComplexVectorDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to output complex vector data.

Definition at line 180 of file syscFunctionTypes.h.

◆ SyscOutputComplexVectorDataAccessWithPointer

typedef SyscOutputComplexVectorData(* SyscOutputComplexVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to output complex vector data with opaque pointer.

Definition at line 187 of file syscFunctionTypes.h.

◆ SyscOutputScalarDataAccess

typedef SyscOutputScalarData(* SyscOutputScalarDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to output scalar data.

Definition at line 87 of file syscFunctionTypes.h.

◆ SyscOutputScalarDataAccessWithPointer

typedef SyscOutputScalarData(* SyscOutputScalarDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to output scalar data with opaque pointer.

Definition at line 94 of file syscFunctionTypes.h.

◆ SyscOutputScalarDataMultiZoneAccess

typedef SyscOutputScalarData(* SyscOutputScalarDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone output scalar data.

Definition at line 102 of file syscFunctionTypes.h.

◆ SyscOutputVectorDataAccess

typedef SyscOutputVectorData(* SyscOutputVectorDataAccess) (const char *regionName, const char *variableName)

Provide function prototype for access to output vector data.

Definition at line 111 of file syscFunctionTypes.h.

◆ SyscOutputVectorDataAccessWithPointer

typedef SyscOutputVectorData(* SyscOutputVectorDataAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)

Provide function prototype for access to output vector data with opaque pointer.

Definition at line 118 of file syscFunctionTypes.h.

◆ SyscOutputVectorDataMultiZoneAccess

typedef SyscOutputVectorData(* SyscOutputVectorDataMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone output vector data.

Definition at line 126 of file syscFunctionTypes.h.

◆ SyscPointCloudAccess

typedef SyscPointCloud(* SyscPointCloudAccess) (const char *regionName)

Provide function prototype for access to point cloud.

Definition at line 233 of file syscFunctionTypes.h.

◆ SyscPointCloudAccessWithPointer

typedef SyscPointCloud(* SyscPointCloudAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)

Provide function prototype for access to point cloud with an opaque pointer.

Definition at line 239 of file syscFunctionTypes.h.

◆ SyscPointCloudMultiZoneAccess

typedef SyscPointCloud(* SyscPointCloudMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone point cloud.

Definition at line 244 of file syscFunctionTypes.h.

◆ SyscRegion

typedef struct SyscRegion SyscRegion

Provide a struct for a System Coupling region.

Participant can declare which regions can be used in the coupled analysis. Each region can declare its input variables and output variables. Input variables represent physical quantities whose values the participant expects System Coupling to provide. Output variables represent physical quantities whose values System Coupling expects the participant to provide.

To create and/or initialize the SyscRegion struct, it is highly recommended to use one of the functions with names starting with syscGetRegion. These functions will initialize all members to the correct values and will help to avoid back-compatibility issues in the future. For example:

SyscRegion syscGetRegionT(const char *name, enum SyscTopology topology)
Create region to be used in a coupled analysis.
@ SyscSurface
Provide a struct for a System Coupling region.
Definition syscRegion.h:42

◆ SyscRestartPointCreation

typedef const char *(* SyscRestartPointCreation) ()

Provide function prototype for creating restart points.

This function may be called only during outputs update, and is expected to return a unique string identifier for a given restart point.

Definition at line 263 of file syscFunctionTypes.h.

◆ SyscSetupFileInfo

Provide a structure for writing System Coupling setup files.

To create and/or initialize the SyscSetupFileInfo struct, it is highly recommended to use syscGetSetupFileInfo function. This function will initialize all members to the correct values and will help to avoid back-compatibility issues in the future. For example:

SyscSetupFileInfo setupFileInfo = syscGetSetupFileInfo("setup.scp");
SyscSetupFileInfo syscGetSetupFileInfo(const char *setupFileName)
Provide a function to create SetupFileInfo struct.
Provide a structure for writing System Coupling setup files.

◆ SyscSetupInfo

typedef struct SyscSetupInfo SyscSetupInfo

Provide a structure for System Coupling setup information.

To create and/or initialize the SyscSetupInfo struct, it is highly recommended to use one of the functions with names starting with syscGetSetupInfo. These functions will initialize all members to the correct values and will help to avoid back-compatibility issues in the future. For example:

SyscSetupInfo syscGetSetupInfoA(enum SyscAnalysisType analysisType)
Create a setup info struct.
@ SyscSteady
Provide a structure for System Coupling setup information.

◆ SyscSurfaceMeshAccessWithPointer

typedef SyscSurfaceMesh(* SyscSurfaceMeshAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)

Provide function prototype for access to surface mesh with opaque pointer.

Definition at line 201 of file syscFunctionTypes.h.

◆ SyscSurfaceMeshMultiZoneAccess

typedef SyscSurfaceMesh(* SyscSurfaceMeshMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone surface mesh.

Definition at line 206 of file syscFunctionTypes.h.

◆ SyscSurfMeshAccess

typedef SyscSurfaceMesh(* SyscSurfMeshAccess) (const char *regionName)

Provide function prototype for access to surface mesh.

Definition at line 195 of file syscFunctionTypes.h.

◆ SyscVariable

typedef struct SyscVariable SyscVariable

Provide a struct for a System Coupling variable.

To create and/or initialize the SyscVariable struct, it is highly recommended to use one of the functions with names starting with syscGetVariable. These functions will initialize all members to the correct values and will help to avoid back-compatibility issues in the future. For example:

"Temperature", SyscScalar, 0, SyscNode);
SyscVariable syscGetVariableTE(const char *name, enum SyscTensorType tensorType, int isExtensive, enum SyscLocation location)
Create variable to be used in a coupled analysis.
@ SyscScalar
@ SyscNode
Provide a struct for a System Coupling variable.

◆ SyscVolumeMeshAccess

typedef SyscVolumeMesh(* SyscVolumeMeshAccess) (const char *regionName)

Provide function prototype for access to volume mesh.

Definition at line 214 of file syscFunctionTypes.h.

◆ SyscVolumeMeshAccessWithPointer

typedef SyscVolumeMesh(* SyscVolumeMeshAccessWithPointer) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)

Provide function prototype for access to volume mesh with opaque pointer.

Definition at line 220 of file syscFunctionTypes.h.

◆ SyscVolumeMeshMultiZoneAccess

typedef SyscVolumeMesh(* SyscVolumeMeshMultiZoneAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)

Provide function prototype for access to multi-zone volume mesh.

Definition at line 225 of file syscFunctionTypes.h.

◆ SyscZoneCountAccess

typedef uint16_t(* SyscZoneCountAccess) (SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)

Provide function prototype for access to zone count.

Definition at line 252 of file syscFunctionTypes.h.

Enumeration Type Documentation

◆ SyscAnalysisType

Provide an enum for coupled analysis type.

Enumerator
SyscSteady 

Steady analysis type.

SyscTransient 

Transient (unsteady) analysis type.

Definition at line 112 of file syscCommonTypes.h.

112 {
113 SyscSteady = 0,
114 SyscTransient = 1
115};
@ SyscTransient

◆ SyscConvergenceStatus

Provide enum for participant's solver convergence status.

Definition at line 103 of file syscCommonTypes.h.

103 {
104 SyscDiverging = -1,
105 SyscNotYetConverged = 0,
106 SyscConverged = 1,
107 SyscComplete = 2,
108 SyscNotEvaluated = 3
109};

◆ SyscDataType

enum SyscDataType

Definition at line 97 of file syscCommonTypes.h.

97 {
98 SyscDataType_Real = 0,
99 SyscDataType_Complex = 1
100};

◆ SyscDimension

Provide enum for system coupling dimension.

Definition at line 56 of file syscCommonTypes.h.

56 {
57 SyscD2 = 2,
58 SyscD3 = 3
59};

◆ SyscElementTypes

Provide an enum for element types.

Tri3: Trilateral element with corner nodes only.

         *2 
        / \    
       /   \   
      /     \
     /       \ 
    /         \      
  0*-----------*1

Tri6: Trilateral element with corner and mid-side nodes.

         *2 
        / \    
       /   \   
     5*     *4
     /       \ 
    /         \      
  0*-----*-----*1        
         3

Quad4: Quadrilateral element with corner nodes only.

  3*-----------*2
   |           | 
   |           | 
   |           | 
   |           |
   |           |
   |           |
   |           |
  0*-----------*1

Quad8: Quadrilateral element with corner and mid-side nodes.

         6
  3*-----*-----*2
   |           | 
   |           | 
   |           | 
  7*           *5
   |           |
   |           |
   |           |
  0*-----*-----*1
         4 

Tet4: Tetrahedral element with corner nodes only.

        3
        *            
       /|\           
      / | \          
     /  |  \
    /   |   \        
   /    |    \       
 0*- - -|- - -*2     
   \    |    /       
    \   |   /        
     \  |  /        
      \ | /          
       \|/           
        *1           

Tet10: Tetrahedral element with corner and mid-side nodes.

        3
        *              
       /|\             
      / | \            
    7*  |  *9          
    /   |   \          
   /    *8   \         
 0*- - *|- - -*2       
   \   6|    /         
    \   |   /          
    4*  |  *5          
      \ | /            
       \|/             
        *1             

Hex8: Hexahedral element with corner nodes only.

    7*-----------*6 
    /|          /|  
   /           / |  
  /  |        /  |  
 /   |       /   |
/    |      /    |  

4*--------—*5 |
| | | |
| 3*- - -|- - -*2 | / | /
| | /
| / | /
| | /
|/ |/
0*--------—*1

Hex20: Hexahedral element with corner and mid-side nodes.

          14             
    7*-----*-----*6   
    /|          /|   
   /           / |     
15*  |      13*  |    
 /   *19     /   *18     
/  12|      /    |     

4*--—*--—*5 |
| | | |
| 3*- - *|- - -*2 | / 10| / 16* 17 / | *11 | *9 | | / |/ |/ 0--—*--—*1 8

Wedge6: Wedge element with corner nodes only.

  3*-----------*5
   |\         /|
   | \       / |
   |  \     /  |
   |   \   /   |
   |    \ /    |
   |     *4    |
   |     |     |
  0*- - -|- - -*2
    \    |    /
     \   |   /
      \  |  /
       \ | /
        \|/
         *
         1

Wedge15: Wedge element with corner and mid-side nodes.

        11
  3*-----*-----*5
   |\         /|
   | \       / |
   |  *9  10*  |
 12*   \   /   *14
   |    \ /    |
   |     *4    |
   |     |     |
  0*- - -|*8- -*2
    \    |    /
     \ 13*   /
     6*  |  *7
       \ | /
        \|/
         *
         1

Pyramid5: Pyramid element with corner nodes only.

             *4                           4
            /|\                           *
           / | \                         /|\
          /  |  \                       // \\
         /   |   \                     / | | \
        /    |    \                   / /   \ \
      3*- - -|- - -*2                /  |   |  \
      /      |    /                 /  /     \  \
     /       |   /                3*- -|- - -|- -*2
    /        |  /                  |  /       \  |
   /         | /                   |  |       |  |
  /          |/                    | /         \ |
0*-----------*1                    | |         | |
                                   |/           \|
                                   *-------------*
                                   0             1

Pyramid13: Pyramid element with corner and mid-side nodes.

             *4                           4
            /|\                           *
           / | \                         /|\
        12*  |  *11                     // \\
         /   |   \                     / | | \
        /    |7   \                 12* /   \ *11
      3*- - -|* - -*2                /  |   |  \
      /      *10  /                 /  /  7  \  \
     /       |   /                3*- -|- * -|- -*2
  8 *        |  * 6                |  *9    10*  |
   /         | /                   |  |       |  |
  /          |/                   8* /         \ *6
0*-----*-----*1                    | |         | |
     5                             |/           \|
                                   *------*------*
                                   0      5      1

Polygon: Arbitrary polygon.

Polyhedron: Arbitrary polyhedron.

Enumerator
SyscTri3 

Trilateral element with corner nodes only.

SyscTri6 

Trilateral element with corner and mid-side nodes.

SyscQuad4 

Quadrilateral element with corner nodes only.

SyscQuad8 

Quadrilateral element with corner and mid-side nodes.

SyscTet4 

Tetrahedral element with corner nodes only.

SyscTet10 

Tetrahedral element with corner and mid-side nodes.

SyscHex8 

Hexahedral element with corner nodes only.

SyscHex20 

Hexahedral element with corner and mid-side nodes.

SyscWedge6 

Wedge element with corner nodes only.

SyscWedge15 

Wedge element with corner and mid-side nodes.

SyscPyramid5 

Pyramid element with corner nodes only.

SyscPyramid13 

Pyramid element with corner and mid-side nodes.

SyscPolygon 

Arbitrary polygon.

SyscPolyhedron 

Arbitrary polyhedron.

Definition at line 236 of file syscElementTypes.h.

236 {
237 SyscTri3 = 5,
238 SyscTri6 = 6,
239 SyscQuad4 = 7,
240 SyscQuad8 = 8,
241 SyscTet4 = 9,
242 SyscTet10 = 10,
243 SyscHex8 = 11,
244 SyscHex20 = 12,
245 SyscWedge6 = 13,
246 SyscWedge15 = 14,
247 SyscPyramid5 = 15,
248 SyscPyramid13 = 16,
249 SyscPolygon = 18,
250 SyscPolyhedron = 19
251};
@ SyscWedge6
@ SyscHex8
@ SyscPyramid13
@ SyscHex20
@ SyscWedge15
@ SyscPyramid5
@ SyscTet10
@ SyscTri3
@ SyscPolyhedron
@ SyscPolygon
@ SyscQuad4
@ SyscTri6
@ SyscQuad8
@ SyscTet4

◆ SyscInterfaceSide

Provide enum for coupling interface side.

Definition at line 50 of file syscCommonTypes.h.

50 {
51 SyscInterfaceSide_One = 1,
52 SyscInterfaceSide_Two = 2
53};

◆ SyscLocation

Provide an enum for variable mesh locations.

Enumerator
SyscNode 

Nodal data.

SyscElement 

Data on elements.

Definition at line 26 of file syscCommonTypes.h.

26 {
27 SyscNode = 0,
28 SyscElement = 1
29};
@ SyscElement

◆ SyscPrimitiveType

Provide an enum for supported primitive types.

Enumerator
SyscFloat 

Single-precision floating point type.

SyscDouble 

Double-precision floating point type.

SyscInt32 

Signed 32-bit integer.

SyscInt64 

Signed 64-bit integer.

SyscUnsignedInt16 

Unsigned 16-bit integer.

SyscUnsignedInt64 

Unsigned 64-bit integer.

Definition at line 141 of file syscCommonTypes.h.

141 {
142 SyscFloat = 0,
143 SyscDouble = 1,
144 SyscInt32 = 2,
145 SyscInt64 = 3,
148};
@ SyscInt32
@ SyscDouble
@ SyscFloat
@ SyscUnsignedInt64
@ SyscInt64
@ SyscUnsignedInt16

◆ SyscQuantityType

Provide an enum for supported quantity types.

Quantity type provides information about the physical meaning of the variable. This can be useful for detecting validation errors during the coupled analysis setup. If the variable does not match any of the provided quantity types, quantity type can be set to unspecified.

Definition at line 85 of file syscCommonTypes.h.

85 {
86 SyscUnspecified = 0,
87 SyscForce = 1,
88 SyscIncrementalDisplacement = 2,
89 SyscTemperature = 3,
90 SyscHeatRate = 4,
91 SyscHeatTransferCoefficient = 5,
92 SyscConvectionReferenceTemperature = 6,
93 SyscModeShape = 7,
94 SyscElectricalConductivity = 8
95};

◆ SyscRegionDiscretizationType

Provoide an enum for region mesh type.

Enumerator
SyscMeshRegion 

Mesh region discretization.

SyscPointCloudRegion 

Point cloud region discretization.

Definition at line 44 of file syscCommonTypes.h.

44 {
45 SyscMeshRegion = 0,
47};
@ SyscPointCloudRegion
@ SyscMeshRegion

◆ SyscTensorType

Provide an enum for variable tensor type.

Enumerator
SyscScalar 

Scalar

SyscVector 

Vector

Definition at line 32 of file syscCommonTypes.h.

32 {
33 SyscScalar = 0,
34 SyscVector = 1
35};
@ SyscVector

◆ SyscTopology

Provide an enum for region topologies.

Enumerator
SyscSurface 

Surface topology.

SyscVolume 

Volume topology.

Definition at line 38 of file syscCommonTypes.h.

38 {
39 SyscSurface = 2,
40 SyscVolume = 3
41};
@ SyscVolume

Function Documentation

◆ syscAddCouplingInterface()

SyscError syscAddCouplingInterface ( const SyscCouplingInterface  couplingInterface)

Provide a function to add a coupling interface.

If this coupling interface has already been added, then this call will have no effect.

If a different coupling interface with the same has already been added, then an error status will be returned.

If the coupling interface name contains invalid characters, then an error status will be returned.

See SyscCouplingInterface for more details.

◆ syscAddCouplingInterfaceA()

SyscError syscAddCouplingInterfaceA ( const SyscCouplingInterface  couplingInterface,
int  autoGenerateDataTransfers 
)

Provide a function to add a coupling interface.

If this coupling interface has already been added, then this call will have no effect.

If a different coupling interface with the same has already been added, then an error status will be returned.

If the coupling interface name contains invalid characters, then an error status will be returned.

See SyscCouplingInterface for more details.

◆ syscAddInputVariable()

SyscError syscAddInputVariable ( const SyscRegion  region,
const SyscVariable  variable 
)

Provide a function to add an input variable to the region.

If this variable has already been added to the region as an input variable, then this call will have no effect.

If a different variable with the same name has already been added to the region as an input variable, then an error will be returned.

If a variable with the same name has already been added to the region as an output variable, then an error will be returned.

If the variable name contains invalid characters, then an error will be returned.

If the region discretization type is point cloud, then the location of the variable added to this region is insignificant.

Parameters
[in]regionRegion to which the input variable is to be added.
[in]variableVariable whose values are provided by System Coupling and consumed by the participant.

◆ syscAddOutputVariable()

SyscError syscAddOutputVariable ( const SyscRegion  region,
const SyscVariable  variable 
)

Provide a function to add an output variable to the region.

If this variable has already been added to the region as an output variable, then this call will have no effect.

If a different variable with the same name has already been added to the region as an output variable, then an error will be returned.

If a variable with the same name has already been added to the region as an input variable, then an error will be returned.

If the variable name contains invalid characters, then an error will be returned.

If the region discretization type is point cloud, then the location of the variable added to this region is insignificant.

Parameters
[in]regionRegion to which the output variable is to be added.
[in]variableVariable whose values are consumed by System Coupling and provided by the participant.

◆ syscAddRegion()

SyscError syscAddRegion ( const SyscRegion  region)

Provide a function to add a region that could be used in a coupled analysis.

If this region has already been added, then this call will have no effect.

If a different region with the same has already been added, then an error will be returned.

If the region name contains invalid characters, then a runtime eror will be thrown.

◆ syscAddSideOneRegion()

SyscError syscAddSideOneRegion ( const SyscCouplingInterface  couplingInterface,
const SyscRegion  region 
)

Add region to side one of the interface.

If this region has already been added to the interface on side one, then this call will have no effect.

If a different region with the same name has already been added to the interface on side one, then a runtime error will be thrown.

If a region with the same name has already been added to the interface on side two, then a runtime error will be thrown.

If the region name contains invalid characters, a runtime error will be thrown.

Parameters
[in]couplingInterfaceCoupling interface to which the output variable is to be added.
[in]regionRegion to be added to side one of the interface.

◆ syscAddSideTwoRegion()

SyscError syscAddSideTwoRegion ( const SyscCouplingInterface  couplingInterface,
const SyscRegion  region 
)

Add region to side two of the interface.

If this region has already been added to the interface on side two, then this call will have no effect.

If a different region with the same name has already been added to the interface on side two, then a runtime error will be thrown.

If a region with the same name has already been added to the interface on side one, then a runtime error will be thrown.

If the region name contains invalid characters, a runtime error will be thrown.

Parameters
[in]couplingInterfaceCoupling interface to which the output variable is to be added.
[in]regionRegion to be added to side two of the interface.

◆ syscCheckSurfaceMeshValidity()

SyscError syscCheckSurfaceMeshValidity ( SyscSurfaceMesh  mesh)

Provide a function to perform simple mesh validity checks.

This function is provided as a testing and debugging tool and is not meant to be used in production workflows. System Coupling itself will not call this function for performance reasons.

The function will check the surface mesh for detectable problems. For example, it will check if array sizes are consistent, that elemNodeIds array only contains ids that are found in nodeIds array, etc. It is not an exhaustive validity check - the mesh can still have problems even if all checks passed.

Returns
Return value is SyscError struct. If mesh checks passed, then retcode will be 0. If mesh checks failed, then retcode will be not 0 and message that contains information about about the particular issue.

◆ syscCompleteSetup()

SyscError syscCompleteSetup ( const SyscSetupInfo  setupInfo)

Provide a function to notify System Coupling that setup can be completed.

After this function is called, coupled analysis setup can no longer be updated, i.e. regions and variables cannot be changed.

Once the setup is complete, any subsequent call to complete the setup will have no effect.

Parameters
setupInfo- setup information.

◆ syscConnect()

SyscError syscConnect ( const char *  scHost,
const unsigned short  scPort,
const char *  participantName,
const char *  buildInformation 
)

Provide a function to establish connection to System Coupling.

A participant must have obtained the host and port information from System Coupling prior to calling this function (e.g. via an input argument when participant application was started).

Parameters
[in]scHostName of the host on which System Coupling is running.
[in]scPortPort number on which System Coupling is listening for participant connections.
[in]participantNameName of this participant (e.g. "MAPDL-1").
[in]buildInformationInformation about the build of this participant solver.
Returns
SyscError Can be checked for any errors.

◆ syscConnectParallel()

SyscError syscConnectParallel ( const char *  scHost,
const unsigned short  scPort,
const char *  participantName,
const size_t  communicator,
const char *  buildInformation 
)

Provide a function to establish connection to System Coupling in parallel.

This function is an alternative to syscConnect function. It works the same way as syscConnect, but it takes in one additional argument, which is the MPI communicator, cast as size_t.

Note that if the MPI communicator is MPI_COMM_WORLD, then it is not necessary to call this function and syscConnect() can be used instead.

◆ syscConnectParallelUseStruct()

SyscError syscConnectParallelUseStruct ( SyscParticipantInfo  participantInfo,
const size_t  communicator 
)

Provide a function to establish connection to System Coupling in parellel using a C structure.

Parameters
participantInfoA C structure containing the participant attributes
communicatorA size_t flag signifying what mode to run in parallel with.
Returns
SyscError

◆ syscConnectUseStruct()

SyscError syscConnectUseStruct ( SyscParticipantInfo  participantInfo)

Provide a function to establish connection to System Coupling in serial using a C structure.

Parameters
participantInfoA C structure containing the participant attributes
Returns
SyscError

◆ syscDoIteration()

int syscDoIteration ( )

Provide a function to check whether to do a coupling iteration.

This function returns 1 (true) if another coupling iteration is required, otherwise it returns 0 (false).

◆ syscDoTimeStep()

int syscDoTimeStep ( )

Provide a function to check whether to do a coupling time step.

This function returns 1 (true) if another coupling time step is required, otherwise it returns 0 (false).

This function should be called to check if another coupling time step should be done. If the previous coupling time step is finished and another time step should be performed, then calling this function will tell System Coupling that the coupling participant is going to advance to the next time step (i.e. calling syscDoTimeStep() will cause syscDoIteration() to change from returning false to returning true, under the conditions described above).

This function only makes sense for transient analysis. It will always return false for steady analysis.

◆ syscGetAddedRegion()

SyscRegion syscGetAddedRegion ( size_t  index)

Provide a function to return added region given the region index.

Parameters
[in]index- region index. Use syscGetNumRegions() to get the number of regions.
Returns
Region at specified index.

◆ syscGetCouplingInterface()

SyscCouplingInterface syscGetCouplingInterface ( const char *  name)

Create a coupling interface.

Parameters
[in]name- Unique name for this interface. String length should not exceed SYSC_STRING_LENGTH.

◆ syscGetCurrentTimeStep()

SyscTimeStep syscGetCurrentTimeStep ( )

Provide a function to get current time step.

This function returns a time step struct, which contains time step number, start time, and time step size for the current coupling time step.

A default value (time step number 0, start time 0.0, time step size 0.0) is returned if this function is called outside the coupled analysis loop or if the analysis is steady.

◆ syscGetDataTransfer()

SyscDataTransfer syscGetDataTransfer ( SyscVariable  sideOneVariable,
SyscVariable  sideTwoVariable,
enum SyscInterfaceSide  targetSide 
)

Create a data transfer using side{One|Two}Variable.

Parameters
[in]sideOneVariable- side one variable.
[in]sideTwoVariable- side two variable.
[in]targetSide- target side.

◆ syscGetDataTransferST()

SyscDataTransfer syscGetDataTransferST ( SyscVariable  sourceVariable,
SyscVariable  targetVariable,
enum SyscInterfaceSide  targetSide 
)

Create a data transfer using {source|target}Variable.

Parameters
[in]sourceVariable- source variable.
[in]targetVariable- target variable.
[in]targetSide- target side.

◆ syscGetElementNodeConnectivityDataEmpty()

SyscElementNodeConnectivityData syscGetElementNodeConnectivityDataEmpty ( )

Create an empty element-to-node connectivity data access struct.

Returns an empty element-to-node connectivity data access struct. All member will be assigned default values.

◆ syscGetElementNodeCountDataEmpty()

SyscElementNodeCountData syscGetElementNodeCountDataEmpty ( )

Create an empty mesh element node count data access struct.

Returns an empty mesh element node count data access struct. All member will be assigned default values.

◆ syscGetElementTypeDataEmpty()

SyscElementTypeData syscGetElementTypeDataEmpty ( )

Create an empty mesh element type data access struct.

Returns an empty mesh element type data access struct. All member will be assigned default values.

◆ syscGetInput2DVectorDataSplitDouble()

SyscInputVectorData syscGetInput2DVectorDataSplitDouble ( double *const  data0,
double *const  data1,
size_t  dataSize 
)

Create an 2D input vector data access struct with split storage.

Parameters
data0- pointer to the first array of double-precision data
data1- pointer to the second array of double-precision data
dataSize- number of vectors.

◆ syscGetInput2DVectorDataSplitFloat()

SyscInputVectorData syscGetInput2DVectorDataSplitFloat ( float *const  data0,
float *const  data1,
size_t  dataSize 
)

Create an 2D input vector data access struct with split storage.

Parameters
data0- pointer to the first array of single-precision data
data1- pointer to the second array of single-precision data
dataSize- number of vectors.

◆ syscGetInputCompactComplexCompactVectorDataDouble()

SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataDouble ( double *const  data,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
data- pointer to the double-precision complex data.
dataSize- data size.

◆ syscGetInputCompactComplexCompactVectorDataDoubleDim()

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

Create a complex input vector data access struct based on dimension.

Parameters
data- pointer to the double-precision complex data.
dataSize- data size.
dimension- dimension of complex vector data.

◆ syscGetInputCompactComplexCompactVectorDataFloat()

SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataFloat ( float *const  data,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
data- pointer to the single-precision complex data.
dataSize- data size.

◆ syscGetInputCompactComplexCompactVectorDataFloatDim()

SyscInputComplexVectorData syscGetInputCompactComplexCompactVectorDataFloatDim ( float *const  data,
size_t  dataSize,
enum SyscDimension  dimension 
)

Create a complex input vector data access struct based on dimension.

Parameters
data- pointer to the single-precision complex data.
dataSize- data size.
dimension- dimension of complex vector data.

◆ syscGetInputCompactComplexSplitVectorDataDouble()

SyscInputComplexVectorData syscGetInputCompactComplexSplitVectorDataDouble ( double *const  data1,
double *const  data2,
double *const  data3,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
data1- pointer to the double-precision complex data (first component).
data2- pointer to the double-precision complex data (second component).
data3- pointer to the double-precision complex data (third component).
dataSize- data size.

◆ syscGetInputCompactComplexSplitVectorDataFloat()

SyscInputComplexVectorData syscGetInputCompactComplexSplitVectorDataFloat ( float *const  data1,
float *const  data2,
float *const  data3,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
data1- pointer to the single-precision complex data (first component).
data2- pointer to the single-precision complex data (second component).
data3- pointer to the single-precision complex data (third component).
dataSize- data size.

◆ syscGetInputComplexScalarData()

SyscInputComplexScalarData syscGetInputComplexScalarData ( )

Create an empty input copmlex scalar data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointers will be set to null.

◆ syscGetInputComplexScalarDataCompactDouble()

SyscInputComplexScalarData syscGetInputComplexScalarDataCompactDouble ( double *const  data,
size_t  dataSize 
)

Create a complex input scalar data access struct.

Parameters
data- pointer to the double-precision data.
dataSize- data size.

◆ syscGetInputComplexScalarDataCompactFloat()

SyscInputComplexScalarData syscGetInputComplexScalarDataCompactFloat ( float *const  data,
size_t  dataSize 
)

Create a complex input scalar data access struct.

Parameters
data- pointer to the single-precision data.
dataSize- data size.

◆ syscGetInputComplexScalarDataSplitDouble()

SyscInputComplexScalarData syscGetInputComplexScalarDataSplitDouble ( double *const  dataReal,
double *const  dataImag,
size_t  dataSize 
)

Create a complex input scalar data access struct.

Parameters
dataReal- pointer to the double-precision real data component.
dataImag- pointer to the double-precision imaginary data component.
dataSize- data size.

◆ syscGetInputComplexScalarDataSplitFloat()

SyscInputComplexScalarData syscGetInputComplexScalarDataSplitFloat ( float *const  dataReal,
float *const  dataImag,
size_t  dataSize 
)

Create a complex input scalar data access struct.

Parameters
dataReal- pointer to the single-precision real data component.
dataImag- pointer to the single-precision imaginary data component.
dataSize- data size.

◆ syscGetInputComplexVectorData()

SyscInputComplexVectorData syscGetInputComplexVectorData ( )

Create an empty input complex vector data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointers will be set to null.

◆ syscGetInputScalarData()

SyscInputScalarData syscGetInputScalarData ( )

Create an input scalar data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointer will be set to null.

◆ syscGetInputScalarDataDouble()

SyscInputScalarData syscGetInputScalarDataDouble ( double *const  data,
size_t  dataSize 
)

Create an input scalar data access struct.

Parameters
data- pointer to the double-precision (64-bit) array of data.
dataSize- number of elements in the array.

◆ syscGetInputScalarDataFloat()

SyscInputScalarData syscGetInputScalarDataFloat ( float *const  data,
size_t  dataSize 
)

Create an input scalar data access struct.

Parameters
data- pointer to the single-precision (32-bit) array of data.
dataSize- number of elements in the array.

◆ syscGetInputSplitComplexCompactVectorDataDouble()

SyscInputComplexVectorData syscGetInputSplitComplexCompactVectorDataDouble ( double *const  dataReal,
double *const  dataImag,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
dataReal- pointer to the double-precision complex data (real components).
dataImag- pointer to the double-precision complex data (imaginary components).
dataSize- data size.

◆ syscGetInputSplitComplexCompactVectorDataFloat()

SyscInputComplexVectorData syscGetInputSplitComplexCompactVectorDataFloat ( float *const  dataReal,
float *const  dataImag,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
dataReal- pointer to the single-precision complex data (real components).
dataImag- pointer to the single-precision complex data (imaginary components).
dataSize- data size.

◆ syscGetInputSplitComplexSplitVectorDataDouble()

SyscInputComplexVectorData syscGetInputSplitComplexSplitVectorDataDouble ( double *const  data1Real,
double *const  data1Imag,
double *const  data2Real,
double *const  data2Imag,
double *const  data3Real,
double *const  data3Imag,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
data1Real- pointer to the double-precision complex data (first real component).
data1Imag- pointer to the double-precision complex data (first imagindary component).
data2Real- pointer to the double-precision complex data (second real component).
data2Imag- pointer to the double-precision complex data (second imagindary component).
data3Real- pointer to the double-precision complex data (third real component).
data3Imag- pointer to the double-precision complex data (third imagindary component).
dataSize- data size.

◆ syscGetInputSplitComplexSplitVectorDataFloat()

SyscInputComplexVectorData syscGetInputSplitComplexSplitVectorDataFloat ( float *const  data1Real,
float *const  data1Imag,
float *const  data2Real,
float *const  data2Imag,
float *const  data3Real,
float *const  data3Imag,
size_t  dataSize 
)

Create a 3D complex input vector data access struct.

Parameters
data1Real- pointer to the single-precision complex data (first real component).
data1Imag- pointer to the single-precision complex data (first imagindary component).
data2Real- pointer to the single-precision complex data (second real component).
data2Imag- pointer to the single-precision complex data (second imagindary component).
data3Real- pointer to the single-precision complex data (third real component).
data3Imag- pointer to the single-precision complex data (third imagindary component).
dataSize- data size.

◆ syscGetInputVariable()

SyscVariable syscGetInputVariable ( const SyscRegion  region,
size_t  index 
)

Return an input variable.

Parameters
[in]region- region
[in]index- region index
Returns
Variable at specified index.

◆ syscGetInputVectorData()

SyscInputVectorData syscGetInputVectorData ( )

Create an input vector data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointers will be set to null.

◆ syscGetInputVectorDataCompactDouble()

SyscInputVectorData syscGetInputVectorDataCompactDouble ( double *const  data,
size_t  dataSize 
)

Create an 3D input vector data access struct with compact storage.

Parameters
data- pointer to the array of double-precision data
dataSize- number of vectors.

◆ syscGetInputVectorDataCompactDoubleDim()

SyscInputVectorData syscGetInputVectorDataCompactDoubleDim ( double *const  data,
size_t  dataSize,
enum SyscDimension  dimension 
)

Create an input vector data access struct with compact storage based on dimension.

Parameters
data- pointer to the array of double-precision data
dataSize- number of vectors.
dimension- dimension of complex vector data.

◆ syscGetInputVectorDataCompactFloat()

SyscInputVectorData syscGetInputVectorDataCompactFloat ( float *const  data,
size_t  dataSize 
)

Create an 3D input vector data access struct with compact storage.

Parameters
data- pointer to the array of single-precision data
dataSize- number of vectors.

◆ syscGetInputVectorDataCompactFloatDim()

SyscInputVectorData syscGetInputVectorDataCompactFloatDim ( float *const  data,
size_t  dataSize,
enum SyscDimension  dimension 
)

Create an input vector data access struct with compact storage based on dimension.

Parameters
data- pointer to the array of single-precision data
dataSize- number of vectors.
dimension- dimension of complex vector data.

◆ syscGetInputVectorDataSplitDouble()

SyscInputVectorData syscGetInputVectorDataSplitDouble ( double *const  data0,
double *const  data1,
double *const  data2,
size_t  dataSize 
)

Create an 3D input vector data access struct with split storage.

Parameters
data0- pointer to the first array of double-precision data
data1- pointer to the second array of double-precision data
data2- pointer to the third array of double-precision data
dataSize- number of vectors.

◆ syscGetInputVectorDataSplitFloat()

SyscInputVectorData syscGetInputVectorDataSplitFloat ( float *const  data0,
float *const  data1,
float *const  data2,
size_t  dataSize 
)

Create an 3D input vector data access struct with split storage.

Parameters
data0- pointer to the first array of single-precision data
data1- pointer to the second array of single-precision data
data2- pointer to the third array of single-precision data
dataSize- number of vectors.

◆ syscGetIntegerAttribute()

SyscIntegerAttribute syscGetIntegerAttribute ( const char *  name,
long long int  value 
)

Create an integer-valued attribute.

Parameters
[in]name- attribute name.
[in]value- attribute value.

◆ syscGetNodeData()

SyscNodeData syscGetNodeData ( )

Create a mesh node data access struct.

Returns an empty mesh node data access struct. All member will be assigned default values.

◆ syscGetNumCouplingInterfaces()

size_t syscGetNumCouplingInterfaces ( )

Provide a function to return the number of added coupling interfaces.

Returns
Number of coupling interfaces.

◆ syscGetNumInputVariables()

size_t syscGetNumInputVariables ( const SyscRegion  region)

Provide a function to return the number of input variables.

Parameters
[in]region- region
Returns
Number of input variables for the region.

◆ syscGetNumOutputVariables()

size_t syscGetNumOutputVariables ( const SyscRegion  region)

Provide a function to return the number of output variables.

Parameters
[in]region- region
Returns
Number of output variables for the region.

◆ syscGetNumRegions()

size_t syscGetNumRegions ( )

Provide a function to return the number of added regions.

Returns
Number of regions.

◆ syscGetOutput2DVectorDataSplitDouble()

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

Create a 2D output vector data access struct with split storage.

Parameters
data0- pointer to the first array of double-precision data
data1- pointer to the second array of double-precision data
dataSize- number of vectors.

◆ syscGetOutput2DVectorDataSplitFloat()

SyscOutputVectorData syscGetOutput2DVectorDataSplitFloat ( const float *const  data0,
const float *const  data1,
size_t  dataSize 
)

Create an output vector data access struct with split storage.

Parameters
data0- pointer to the first array of single-precision data
data1- pointer to the second array of single-precision data
dataSize- number of vectors.

◆ syscGetOutputCompactComplexCompactVectorDataDouble()

SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataDouble ( const double *const  data,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
data- pointer to the double-precision complex data.
dataSize- data size.

◆ syscGetOutputCompactComplexCompactVectorDataDoubleDim()

SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataDoubleDim ( const double *const  data,
size_t  dataSize,
enum SyscDimension  dimension 
)

Create a complex output vector data access struct based on dimension.

Parameters
data- pointer to the double-precision complex data.
dataSize- data size.
dimension- dimension of complex vector data.

◆ syscGetOutputCompactComplexCompactVectorDataFloat()

SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataFloat ( const float *const  data,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
data- pointer to the single-precision complex data.
dataSize- data size.

◆ syscGetOutputCompactComplexCompactVectorDataFloatDim()

SyscOutputComplexVectorData syscGetOutputCompactComplexCompactVectorDataFloatDim ( const float *const  data,
size_t  dataSize,
enum SyscDimension  dimension 
)

Create a complex output vector data access struct based on dimension.

Parameters
data- pointer to the single-precision complex data.
dataSize- data size.
dimension- dimension of complex vector data.

◆ syscGetOutputCompactComplexSplitVectorDataDouble()

SyscOutputComplexVectorData syscGetOutputCompactComplexSplitVectorDataDouble ( const double *const  data1,
const double *const  data2,
const double *const  data3,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
data1- pointer to the double-precision complex data (first component).
data2- pointer to the double-precision complex data (second component).
data3- pointer to the double-precision complex data (third component).
dataSize- data size.

◆ syscGetOutputCompactComplexSplitVectorDataFloat()

SyscOutputComplexVectorData syscGetOutputCompactComplexSplitVectorDataFloat ( const float *const  data1,
const float *const  data2,
const float *const  data3,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
data1- pointer to the single-precision complex data (first component).
data2- pointer to the single-precision complex data (second component).
data3- pointer to the single-precision complex data (third component).
dataSize- data size.

◆ syscGetOutputComplexScalarData()

SyscOutputComplexScalarData syscGetOutputComplexScalarData ( )

Create an empty output complex scalar data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointers will be set to null.

◆ syscGetOutputComplexScalarDataCompactDouble()

SyscOutputComplexScalarData syscGetOutputComplexScalarDataCompactDouble ( const double *const  data,
size_t  dataSize 
)

Create a complex output scalar data access struct.

Parameters
data- pointer to the double-precision data.
dataSize- data size.

◆ syscGetOutputComplexScalarDataCompactFloat()

SyscOutputComplexScalarData syscGetOutputComplexScalarDataCompactFloat ( const float *const  data,
size_t  dataSize 
)

Create a complex output scalar data access struct.

Parameters
data- pointer to the single-precision data.
dataSize- data size.

◆ syscGetOutputComplexScalarDataSplitDouble()

SyscOutputComplexScalarData syscGetOutputComplexScalarDataSplitDouble ( const double *const  dataReal,
const double *const  dataImag,
size_t  dataSize 
)

Create a complex output scalar data access struct.

Parameters
dataReal- pointer to the double-precision real data component.
dataImag- pointer to the double-precision imaginary data component.
dataSize- data size.

◆ syscGetOutputComplexScalarDataSplitFloat()

SyscOutputComplexScalarData syscGetOutputComplexScalarDataSplitFloat ( const float *const  dataReal,
const float *const  dataImag,
size_t  dataSize 
)

Create a complex output scalar data access struct.

Parameters
dataReal- pointer to the single-precision real data component.
dataImag- pointer to the single-precision imaginary data component.
dataSize- data size.

◆ syscGetOutputComplexVectorData()

SyscOutputComplexVectorData syscGetOutputComplexVectorData ( )

Create an empty output complex vector data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointers will be set to null.

◆ syscGetOutputIntegerData()

SyscOutputIntegerData syscGetOutputIntegerData ( )

Create an output integer data access struct.

Primitive type will default to 64-bit signed integer. Data size will be set to zero. Data pointer will be set to null.

◆ syscGetOutputIntegerDataInt32()

SyscOutputIntegerData syscGetOutputIntegerDataInt32 ( const int32_t *const  data,
size_t  dataSize 
)

Create an output integer data access struct.

Parameters
data- pointer to the signed (32-bit) array of data.
dataSize- number of elements in the array.

◆ syscGetOutputIntegerDataInt64()

SyscOutputIntegerData syscGetOutputIntegerDataInt64 ( const int64_t *const  data,
size_t  dataSize 
)

Create an output integer data access struct.

Parameters
data- pointer to the 64-bit array of integer data.
dataSize- number of elements in the array.

◆ syscGetOutputIntegerDataUInt16()

SyscOutputIntegerData syscGetOutputIntegerDataUInt16 ( const uint16_t *const  data,
size_t  dataSize 
)

Create an output integer data access struct.

Parameters
data- pointer to the 16-bit array of unsigned integer data.
dataSize- number of elements in the array.

◆ syscGetOutputIntegerDataUInt64()

SyscOutputIntegerData syscGetOutputIntegerDataUInt64 ( const uint64_t *const  data,
size_t  dataSize 
)

Create an output integer data access struct.

Parameters
data- pointer to the 64-bit array of unsigned integer data.
dataSize- number of elements in the array.

◆ syscGetOutputScalarData()

SyscOutputScalarData syscGetOutputScalarData ( )

Create an output scalar data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointer will be set to null.

◆ syscGetOutputScalarDataDouble()

SyscOutputScalarData syscGetOutputScalarDataDouble ( const double *const  data,
size_t  dataSize 
)

Create an output scalar data access struct.

Parameters
data- pointer to the double-precision (64-bit) array of data.
dataSize- number of elements in the array.

◆ syscGetOutputScalarDataFloat()

SyscOutputScalarData syscGetOutputScalarDataFloat ( const float *const  data,
size_t  dataSize 
)

Create an output scalar data access struct.

Parameters
data- pointer to the single-precision (32-bit) array of data.
dataSize- number of elements in the array.

◆ syscGetOutputScalarDataInt32()

SyscOutputScalarData syscGetOutputScalarDataInt32 ( const int32_t *const  data,
size_t  dataSize 
)

Create an output scalar data access struct.

Parameters
data- pointer to the 32-bit array of integer data.
dataSize- number of elements in the array.

◆ syscGetOutputScalarDataInt64()

SyscOutputScalarData syscGetOutputScalarDataInt64 ( const int64_t *const  data,
size_t  dataSize 
)

Create an output scalar data access struct.

Parameters
data- pointer to the 64-bit array of integer data.
dataSize- number of elements in the array.

◆ syscGetOutputScalarDataUInt16()

SyscOutputScalarData syscGetOutputScalarDataUInt16 ( const uint16_t *const  data,
size_t  dataSize 
)

Create an output scalar data access struct.

Parameters
data- pointer to the 16-bit array of unsigned integer data.
dataSize- number of elements in the array.

◆ syscGetOutputScalarDataUInt64()

SyscOutputScalarData syscGetOutputScalarDataUInt64 ( const uint64_t *const  data,
size_t  dataSize 
)

Create an output scalar data access struct.

Parameters
data- pointer to the 64-bit array of unsigned integer data.
dataSize- number of elements in the array.

◆ syscGetOutputSplitComplexCompactVectorDataDouble()

SyscOutputComplexVectorData syscGetOutputSplitComplexCompactVectorDataDouble ( const double *const  dataReal,
const double *const  dataImag,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
dataReal- pointer to the double-precision complex data (real components).
dataImag- pointer to the double-precision complex data (imaginary components).
dataSize- data size.

◆ syscGetOutputSplitComplexCompactVectorDataFloat()

SyscOutputComplexVectorData syscGetOutputSplitComplexCompactVectorDataFloat ( const float *const  dataReal,
const float *const  dataImag,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
dataReal- pointer to the single-precision complex data (real components).
dataImag- pointer to the single-precision complex data (imaginary components).
dataSize- data size.

◆ syscGetOutputSplitComplexSplitVectorDataDouble()

SyscOutputComplexVectorData syscGetOutputSplitComplexSplitVectorDataDouble ( const double *const  data1Real,
const double *const  data1Imag,
const double *const  data2Real,
const double *const  data2Imag,
const double *const  data3Real,
const double *const  data3Imag,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
data1Real- pointer to the double-precision complex data (first real component).
data1Imag- pointer to the double-precision complex data (first imagindary component).
data2Real- pointer to the double-precision complex data (second real component).
data2Imag- pointer to the double-precision complex data (second imagindary component).
data3Real- pointer to the double-precision complex data (third real component).
data3Imag- pointer to the double-precision complex data (third imagindary component).
dataSize- data size.

◆ syscGetOutputSplitComplexSplitVectorDataFloat()

SyscOutputComplexVectorData syscGetOutputSplitComplexSplitVectorDataFloat ( const float *const  data1Real,
const float *const  data1Imag,
const float *const  data2Real,
const float *const  data2Imag,
const float *const  data3Real,
const float *const  data3Imag,
size_t  dataSize 
)

Create a 3D complex output vector data access struct.

Parameters
data1Real- pointer to the single-precision complex data (first real component).
data1Imag- pointer to the single-precision complex data (first imagindary component).
data2Real- pointer to the single-precision complex data (second real component).
data2Imag- pointer to the single-precision complex data (second imagindary component).
data3Real- pointer to the single-precision complex data (third real component).
data3Imag- pointer to the single-precision complex data (third imagindary component).
dataSize- data size.

◆ syscGetOutputVariable()

SyscVariable syscGetOutputVariable ( const SyscRegion  region,
size_t  index 
)

Return an output variable.

Parameters
[in]region- region
[in]index- region index
Returns
Variable at specified index.

◆ syscGetOutputVectorData()

SyscOutputVectorData syscGetOutputVectorData ( )

Create an output vector data access struct.

Primitive type will default to double-precision. Data size will be set to zero. Data pointers will be set to null.

◆ syscGetOutputVectorDataCompactDouble()

SyscOutputVectorData syscGetOutputVectorDataCompactDouble ( const double *const  data,
size_t  dataSize 
)

Create an 3D output vector data access struct with compact storage.

Parameters
data- pointer to the array of double-precision data
dataSize- number of vectors.

◆ syscGetOutputVectorDataCompactDoubleDim()

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

Create an output vector data access struct with compact storage based on dimension.

Parameters
data- pointer to the array of double-precision data
dataSize- number of vectors.
dimension- dimension of complex vector data.

◆ syscGetOutputVectorDataCompactFloat()

SyscOutputVectorData syscGetOutputVectorDataCompactFloat ( const float *const  data,
size_t  dataSize 
)

Create an 3D output vector data access struct with compact storage.

Parameters
data- pointer to the array of single-precision data
dataSize- number of vectors.

◆ syscGetOutputVectorDataCompactFloatDim()

SyscOutputVectorData syscGetOutputVectorDataCompactFloatDim ( const float *const  data,
size_t  dataSize,
enum SyscDimension  dimension 
)

Create an output vector data access struct with compact storage based on dimension.

Parameters
data- pointer to the array of single-precision data
dataSize- number of vectors.
dimension- dimension of complex vector data.

◆ syscGetOutputVectorDataSplitDouble()

SyscOutputVectorData syscGetOutputVectorDataSplitDouble ( const double *const  data0,
const double *const  data1,
const double *const  data2,
size_t  dataSize 
)

Create an 3D output vector data access struct with split storage.

Parameters
data0- pointer to the first array of double-precision data
data1- pointer to the second array of double-precision data
data2- pointer to the third array of double-precision data
dataSize- number of vectors.

◆ syscGetOutputVectorDataSplitFloat()

SyscOutputVectorData syscGetOutputVectorDataSplitFloat ( const float *const  data0,
const float *const  data1,
const float *const  data2,
size_t  dataSize 
)

Create an 3D output vector data access struct with split storage.

Parameters
data0- pointer to the first array of single-precision data
data1- pointer to the second array of single-precision data
data2- pointer to the third array of single-precision data
dataSize- number of vectors.

◆ syscGetPointCloud()

SyscPointCloud syscGetPointCloud ( SyscOutputIntegerData  nodeIds,
SyscOutputVectorData  nodeCoords 
)

Create a point cloud access struct.

Parameters
nodeIds- output integer data access for node ids
nodeCoords- output vector data access for node coordinates, provided in the same order as node ids

◆ syscGetPointCloudEmpty()

SyscPointCloud syscGetPointCloudEmpty ( )

Create a point cloud access struct.

Returns a struct representing empty point cloud. All member will be assigned default values.

◆ syscGetRealAttribute()

SyscRealAttribute syscGetRealAttribute ( const char *  name,
double  value,
SyscDimensionality  dimensionality 
)

Create a real-valued attribute.

Parameters
[in]name- attribute name.
[in]value- attribute value.
[in]dimensionality- attribute dimensionality.

◆ syscGetRegion()

SyscRegion syscGetRegion ( const char *  name)

Create region to be used in a coupled analysis.

Parameters
name- Unique name for this region. String length should not exceed SYSC_STRING_LENGTH.

Display name will default to the same as name.

Topology will default to surface.

Region mesh type will default to mesh.

◆ syscGetRegionDT()

SyscRegion syscGetRegionDT ( const char *  name,
const char *  displayName,
enum SyscTopology  topology 
)

Create region to be used in a coupled analysis.

Parameters
name- Unique name for this region. String length should not exceed SYSC_STRING_LENGTH.
displayName- region display name. String length should not exceed SYSC_STRING_LENGTH.
topology- region topology.

Region mesh type will default to mesh.

◆ syscGetRegionDTM()

SyscRegion syscGetRegionDTM ( const char *  name,
const char *  displayName,
enum SyscTopology  topology,
enum SyscRegionDiscretizationType  regionDiscretizationType 
)

Create region to be used in a coupled analysis.

Parameters
[in]name- Unique name for this region. String length should not exceed SYSC_STRING_LENGTH.
[in]displayName- region display name. String length should not exceed SYSC_STRING_LENGTH.
[in]topology- region topology.
[in]regionDiscretizationType- region mesh type.

◆ syscGetRegionT()

SyscRegion syscGetRegionT ( const char *  name,
enum SyscTopology  topology 
)

Create region to be used in a coupled analysis.

Parameters
name- Unique name for this region. String length should not exceed SYSC_STRING_LENGTH.
topology- region topology.

Display name will default to the same as name.

Region mesh type will default to mesh.

◆ syscGetRegionTM()

SyscRegion syscGetRegionTM ( const char *  name,
enum SyscTopology  topology,
enum SyscRegionDiscretizationType  regionDiscretizationType 
)

Create region to be used in a coupled analysis.

Parameters
[in]name- Unique name for this region. String length should not exceed SYSC_STRING_LENGTH.
[in]topology- region topology.
[in]regionDiscretizationType- region mesh type.

Display names will be same as name.

◆ syscGetResultsInfo()

SyscResultsInfo syscGetResultsInfo ( const char *  baseFileName)

Provide a function to create SetupFileInfo struct.

Parameters
[in]baseFileName- base results file name.

◆ syscGetSetupFileInfo()

SyscSetupFileInfo syscGetSetupFileInfo ( const char *  setupFileName)

Provide a function to create SetupFileInfo struct.

Parameters
setupFileNameSetup file name.

Restarts supported flag will be set to false.

◆ syscGetSetupInfo()

SyscSetupInfo syscGetSetupInfo ( )

Create a setup info struct.

Analysis type will be set to steady. Restarts supported flag will be set to false.

◆ syscGetSetupInfoA()

SyscSetupInfo syscGetSetupInfoA ( enum SyscAnalysisType  analysisType)

Create a setup info struct.

Parameters
[in]analysisType- analysis type.

Restarts supported flag will be set to false.

◆ syscGetSetupInfoAR()

SyscSetupInfo syscGetSetupInfoAR ( enum SyscAnalysisType  analysisType,
int  restartsSupported 
)

Create a setup info struct.

Parameters
analysisType- analysis type.
restartsSupported- flag indicating whether restarts are supported.

◆ syscGetSetupInfoARD()

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

Create a setup info struct.

Parameters
analysisType- analysis type.
restartsSupported- flag indicating whether restarts are supported.
dimension- dimension of the participant.

◆ syscGetSurfaceMesh()

SyscSurfaceMesh syscGetSurfaceMesh ( )

Create a surface mesh access struct.

Returns a struct representing empty surface mesh. All member will be assigned default values.

◆ syscGetSurfaceMeshA()

SyscSurfaceMesh syscGetSurfaceMeshA ( SyscOutputScalarData  nodeIds,
SyscOutputVectorData  nodeCoords,
SyscOutputScalarData  elemNodeCounts,
SyscOutputScalarData  elemNodeIds 
)

Create a surface mesh access struct.

Note: this function is deprecated. Use syscGetSurfaceMeshNCI instead.

Parameters
[in]nodeIds- output scalar data access for node ids
[in]nodeCoords- output vector data access for node coordinates, provided in the same order as node ids
[in]elemNodeCounts- output scalar data access for element node counts
[in]elemNodeIds- output scalar data access for element node ids

◆ syscGetSurfaceMeshB()

SyscSurfaceMesh syscGetSurfaceMeshB ( SyscOutputVectorData  nodeCoords,
SyscOutputScalarData  elemNodeCounts,
SyscOutputScalarData  elemNodeIds 
)

Create a surface mesh access struct.

Note: this function is deprecated. Use syscGetSurfaceMeshNCI instead.

Parameters
[in]nodeCoords- output vector data access for node coordinates, provided in ascending node ids order
[in]elemNodeCounts- output scalar data access for element node counts
[in]elemNodeIds- output scalar data access for element node ids

◆ syscGetSurfaceMeshNCI()

SyscSurfaceMesh syscGetSurfaceMeshNCI ( SyscNodeData  nodes,
SyscElementNodeCountData  elemNodeCounts,
SyscElementNodeConnectivityData  elemNodeConnectivity 
)

Create a surface mesh access struct.

Element node counts are provided, element types are deduced from element node counts.

Parameters
[in]nodes- mesh nodes
[in]elemNodeCounts- element node counts
[in]elemNodeConnectivity- element-to-node connectivity

◆ syscGetSurfaceMeshNCIF()

SyscSurfaceMesh syscGetSurfaceMeshNCIF ( SyscNodeData  nodes,
SyscElementNodeCountData  elemNodeCounts,
SyscElementNodeConnectivityData  elemNodeConnectivity,
SyscFaceCellConnectivityData  faceCellConnectivty 
)

Create a surface mesh access struct.

Element node counts are provided, element types are deduced from element node counts. Face-to-cell connectivity is provided as well.

Parameters
[in]nodes- mesh nodes
[in]elemNodeCounts- element node counts
[in]elemNodeConnectivity- element-to-node connectivity
[in]faceCellConnectivity- face-to-cell connectivity

◆ syscGetSurfaceMeshNF()

SyscSurfaceMesh syscGetSurfaceMeshNF ( SyscNodeData  nodes,
SyscFaceData  faces 
)

Create a surface mesh access struct.

Parameters
[in]nodes- node data
[in]faces- face data

◆ syscGetSurfaceMeshNTCI()

SyscSurfaceMesh syscGetSurfaceMeshNTCI ( SyscNodeData  nodes,
SyscElementTypeData  elemTypes,
SyscElementNodeCountData  elemNodeCounts,
SyscElementNodeConnectivityData  elemNodeConnectivity 
)

Create a surface mesh access struct.

Both element types and element node counts are provided.

Parameters
[in]nodes- mesh nodes
[in]elemTypes- element types
[in]elemNodeCounts- element node counts
[in]elemNodeConnectivity- element-to-node connectivity

◆ syscGetSurfaceMeshNTI()

SyscSurfaceMesh syscGetSurfaceMeshNTI ( SyscNodeData  nodes,
SyscElementTypeData  elemTypes,
SyscElementNodeConnectivityData  elemNodeConnectivity 
)

Create a surface mesh access struct.

Element types are provided, element node counts are deduced from element types.

Parameters
[in]nodes- mesh nodes
[in]elemTypes- element types
[in]elemNodeConnectivity- element-to-node connectivity

◆ syscGetVariable()

SyscVariable syscGetVariable ( const char *  name)

Create variable to be used in a coupled analysis.

Parameters
name- Unique name for this variable. String length should not exceed SYSC_STRING_LENGTH.

Display name will default to the same as name.

Tensor type will default to scalar.

Is extensive flag will default to false (to non-extensive).

Location will default to nodes.

Quantity type will default to unspecified.

◆ syscGetVariableDTELQD()

SyscVariable syscGetVariableDTELQD ( const char *  name,
const char *  displayName,
enum SyscTensorType  tensorType,
int  isExtensive,
enum SyscLocation  location,
enum SyscQuantityType  quantityType,
enum SyscDataType  dataType 
)

Create variable to be used in a coupled analysis.

Parameters
name- Unique name for this variable. String length should not exceed SYSC_STRING_LENGTH.
displayName- variable display name. String length should not exceed SYSC_STRING_LENGTH.
tensorType- variable tensor type.
isExtensive- flag indicating if it's an extensive property.
location- variable location (e.g element or node).
quantityType- variable quantity type.
dataType- variable data type.

◆ syscGetVariableQ()

SyscVariable syscGetVariableQ ( const char *  name,
const char *  displayName,
enum SyscLocation  location,
enum SyscQuantityType  quantityType 
)

Create variable to be used in a coupled analysis.

Parameters
name- Unique name for this variable. String length should not exceed SYSC_STRING_LENGTH.
displayName- variable display name. String length should not exceed SYSC_STRING_LENGTH.
location- variable location (e.g element or node).
quantityType- variable quantity type.

The variable tensor type and is extensive properties will be inferred from the quantity type, according to the following rules:

Quantity Type Tensor Type Is Extensive
----------------------------------------------------------------
Force Vector True
Incremental Displacement Vector False
Temperature Scalar False
Heat Rate Scalar True
Heat Transfer Coefficient Scalar False
Convection Reference Temperature Scalar False

If any other quantity type is specified, tensor type will be set to scalar and is extensive will be set to false.

◆ syscGetVariableTE()

SyscVariable syscGetVariableTE ( const char *  name,
enum SyscTensorType  tensorType,
int  isExtensive,
enum SyscLocation  location 
)

Create variable to be used in a coupled analysis.

Parameters
name- Unique name for this variable. String length should not exceed SYSC_STRING_LENGTH.
tensorType- variable tensor type.
isExtensive- flag indicating if it's an extensive property.
location- variable location (e.g element or node).

Display name will default to the same as name.

Quantity type will default to unspecified.

◆ syscGetVariableTEQ()

SyscVariable syscGetVariableTEQ ( const char *  name,
const char *  displayName,
enum SyscTensorType  tensorType,
int  isExtensive,
enum SyscLocation  location,
enum SyscQuantityType  quantityType 
)

Create variable to be used in a coupled analysis.

Parameters
name- Unique name for this variable. String length should not exceed SYSC_STRING_LENGTH.
displayName- variable display name. String length should not exceed SYSC_STRING_LENGTH.
tensorType- variable tensor type.
isExtensive- flag indicating if it's an extensive property.
location- variable location (e.g element or node).
quantityType- variable quantity type.

◆ syscGetVolumeMeshElementBased()

SyscVolumeMesh syscGetVolumeMeshElementBased ( SyscNodeData  nodes,
SyscElementTypeData  cellTypes,
SyscElementNodeConnectivityData  cellNodeConnectivity 
)

Create an element-based volume mesh access struct.

Parameters
[in]nodes- node data
[in]cellTypes- cell types
[in]cellNodeConnectivity- cell-to-node connectivity

◆ syscGetVolumeMeshEmpty()

SyscVolumeMesh syscGetVolumeMeshEmpty ( )

Create an empty volume mesh access struct.

Returns a struct representing empty volume mesh. All member will be assigned default values.

◆ syscGetVolumeMeshFaceBased()

SyscVolumeMesh syscGetVolumeMeshFaceBased ( SyscNodeData  nodes,
SyscElementNodeCountData  faceNodeCounts,
SyscElementNodeConnectivityData  faceNodeConnectivity,
SyscFaceCellConnectivityData  faceCellConnectivity,
SyscCellIdData  cellIds 
)

Create a face-based volume mesh access struct.

Parameters
[in]nodes- node data
[in]faceNodeCounts- face node counts
[in]faceNodeConnectivity- face-to-node connectivity
[in]faceCellConnectivity- face-to-cell connectivity
[in]cellIds- cell ids

◆ syscGetVolumeMeshNFC()

SyscVolumeMesh syscGetVolumeMeshNFC ( SyscNodeData  nodes,
SyscFaceData  faces,
SyscCellData  cells 
)

Create a volume mesh access struct.

Parameters
[in]nodes- node data
[in]faces- face data
[in]cells- cell data

◆ syscInitializeAnalysis()

SyscError syscInitializeAnalysis ( )

Provide a function to notify System Coupling that analysis initialization can be completed.

This function must be called after registering mesh and variable data access and prior to entering the coupled analysis loop.

If this function is called before the coupled analysis is complete, it will automatically complete the coupled analysis and assume steady analysis type.

◆ syscRegisterInputComplexScalarDataAccess()

SyscError syscRegisterInputComplexScalarDataAccess ( SyscInputComplexScalarDataAccess  dataAccess)

Provide a function to register input complex scalar data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscInputComplexScalarDataAccess prototype.

◆ syscRegisterInputComplexScalarDataAccessWithPointer()

SyscError syscRegisterInputComplexScalarDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscInputComplexScalarDataAccessWithPointer  dataAccess 
)

Provide a function to register input complex scalar data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscInputComplexScalarDataAccessWithPointer prototype.

◆ syscRegisterInputComplexVectorDataAccess()

SyscError syscRegisterInputComplexVectorDataAccess ( SyscInputComplexVectorDataAccess  dataAccess)

Provide a function to register input complex vector data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscInputComplexVectorDataAccess prototype.

◆ syscRegisterInputComplexVectorDataAccessWithPointer()

SyscError syscRegisterInputComplexVectorDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscInputComplexVectorDataAccessWithPointer  dataAccess 
)

Provide a function to register input complex vector data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscInputComplexVectorDataAccessWithPointer prototype.

◆ syscRegisterInputScalarDataAccess()

SyscError syscRegisterInputScalarDataAccess ( SyscInputScalarDataAccess  dataAccess)

Provide a function to register input scalar data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscInputScalarDataAccess prototype.

◆ syscRegisterInputScalarDataAccessWithPointer()

SyscError syscRegisterInputScalarDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscInputScalarDataAccessWithPointer  dataAccess 
)

Provide a function to register input scalar data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscInputScalarDataAccessWithPointer prototype.

◆ syscRegisterInputScalarDataMultiZoneAccess()

SyscError syscRegisterInputScalarDataMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscInputScalarDataMultiZoneAccess  dataAccess 
)

Provide a function to register input scalar data multi-zone access.

Parameters
dataAccess- a pointer to the function that conforms to SyscInputScalarDataMultiZoneAccess prototype.

◆ syscRegisterInputVectorDataAccess()

SyscError syscRegisterInputVectorDataAccess ( SyscInputVectorDataAccess  dataAccess)

Provide a function to register input vector data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscInputVectorDataAccess prototype.

◆ syscRegisterInputVectorDataAccessWithPointer()

SyscError syscRegisterInputVectorDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscInputVectorDataAccessWithPointer  dataAccess 
)

Provide a function to register input vector data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscInputVectorDataAccessWithPointer prototype.

◆ syscRegisterInputVectorDataMultiZoneAccess()

SyscError syscRegisterInputVectorDataMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscInputVectorDataMultiZoneAccess  dataAccess 
)

Provide a function to register input vector data multi-zone access.

Parameters
dataAccess- a pointer to the function that conforms to SyscInputVectorDataMultiZoneAccess prototype.

◆ syscRegisterOutputComplexScalarDataAccess()

SyscError syscRegisterOutputComplexScalarDataAccess ( SyscOutputComplexScalarDataAccess  dataAccess)

Provide a function to register output complex scalar data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscOutputComplexScalarDataAccess prototype.

◆ syscRegisterOutputComplexScalarDataAccessWithPointer()

SyscError syscRegisterOutputComplexScalarDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscOutputComplexScalarDataAccessWithPointer  dataAccess 
)

Provide a function to register output complex scalar data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscOutputComplexScalarDataAccessWithPointer prototype.

◆ syscRegisterOutputComplexVectorDataAccess()

SyscError syscRegisterOutputComplexVectorDataAccess ( SyscOutputComplexVectorDataAccess  dataAccess)

Provide a function to register output complex vector data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscOutputComplexVectorDataAccess prototype.

◆ syscRegisterOutputComplexVectorDataAccessWithPointer()

SyscError syscRegisterOutputComplexVectorDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscOutputComplexVectorDataAccessWithPointer  dataAccess 
)

Provide a function to register output complex vector data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscOutputComplexVectorDataAccessWithPointer prototype.

◆ syscRegisterOutputScalarDataAccess()

SyscError syscRegisterOutputScalarDataAccess ( SyscOutputScalarDataAccess  dataAccess)

Provide a function to register output scalar data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscOutputScalarDataAccess prototype.

◆ syscRegisterOutputScalarDataAccessWithPointer()

SyscError syscRegisterOutputScalarDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscOutputScalarDataAccessWithPointer  dataAccess 
)

Provide a function to register output scalar data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscOutputScalarDataAccessWithPointer prototype.

◆ syscRegisterOutputScalarDataMultiZoneAccess()

SyscError syscRegisterOutputScalarDataMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscOutputScalarDataMultiZoneAccess  dataAccess 
)

Provide a function to register output scalar data multi-zone access.

Parameters
dataAccess- a pointer to the function that conforms to SyscOutputScalarDataMultiZoneAccess prototype.

◆ syscRegisterOutputVectorDataAccess()

SyscError syscRegisterOutputVectorDataAccess ( SyscOutputVectorDataAccess  dataAccess)

Provide a function to register output vector data access.

Parameters
dataAccess- a pointer to the function that conforms to SyscOutputVectorDataAccess prototype.

◆ syscRegisterOutputVectorDataAccessWithPointer()

SyscError syscRegisterOutputVectorDataAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscOutputVectorDataAccessWithPointer  dataAccess 
)

Provide a function to register output vector data access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
dataAccess- a pointer to the function that conforms to SyscOutputVectorDataAccessWithPointer prototype.

◆ syscRegisterOutputVectorDataMultiZoneAccess()

SyscError syscRegisterOutputVectorDataMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscOutputVectorDataMultiZoneAccess  dataAccess 
)

Provide a function to register output vector data multi-zone access.

Parameters
dataAccess- a pointer to the function that conforms to SyscOutputVectorDataMultiZoneAccess prototype.

◆ syscRegisterPointCloudAccess()

SyscError syscRegisterPointCloudAccess ( SyscPointCloudAccess  pointCloudAccess)

Provide a function to register point cloud access.

Parameters
pointCloudAccess- a pointer to the function that conforms to SyscPointCloudAccess prototype.

◆ syscRegisterPointCloudAccessWithPointer()

SyscError syscRegisterPointCloudAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscPointCloudAccessWithPointer  pointCloudAccess 
)

Provide a function to register point cloud access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
pointCloudAccess- a pointer to the function that conforms to SyscPointCloudAccessWithPointer prototype.

◆ syscRegisterPointCloudMultiZoneAccess()

SyscError syscRegisterPointCloudMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscPointCloudMultiZoneAccess  pointCloudAccess 
)

Provide a function to register point cloud multi-zone access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
meshAccess- a pointer to the function that conforms to SyscPointCloudMultiZoneAccess prototype.

◆ syscRegisterRestartPointCreation()

SyscError syscRegisterRestartPointCreation ( SyscRestartPointCreation  restartPointCreation)

Provide a function to register restart point creation callback.

Parameters
restartPointCreation- a pointer to the function that conforms to SyscRestartPointCreation function prototype. See SyscRestartPointCreation for details.

◆ syscRegisterSurfaceMeshAccessWithPointer()

SyscError syscRegisterSurfaceMeshAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscSurfaceMeshAccessWithPointer  meshAccess 
)

Provide a function to register surface mesh access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
meshAccess- a pointer to the function that conforms to SyscSurfaceMeshAccessWithPointer prototype.

◆ syscRegisterSurfaceMeshMultiZoneAccess()

SyscError syscRegisterSurfaceMeshMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscSurfaceMeshMultiZoneAccess  meshAccess 
)

Provide a function to register surface mesh multi-zone access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
meshAccess- a pointer to the function that conforms to SyscSurfaceMeshMultiZoneAccess prototype.

◆ syscRegisterSurfMeshAccess()

SyscError syscRegisterSurfMeshAccess ( SyscSurfMeshAccess  meshAccess)

Provide a function to register surface mesh access.

Parameters
meshAccess- a pointer to the function that conforms to SyscSurfMeshAccess prototype.

◆ syscRegisterVolumeMeshAccess()

SyscError syscRegisterVolumeMeshAccess ( SyscVolumeMeshAccess  meshAccess)

Provide a function to register volume mesh access.

Parameters
meshAccess- a pointer to the function that conforms to SyscVolumeMeshAccess prototype.

◆ syscRegisterVolumeMeshAccessWithPointer()

SyscError syscRegisterVolumeMeshAccessWithPointer ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscVolumeMeshAccessWithPointer  meshAccess 
)

Provide a function to register volume mesh access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
meshAccess- a pointer to the function that conforms to SyscVolumeMeshAccessWithPointer prototype.

◆ syscRegisterVolumeMeshMultiZoneAccess()

SyscError syscRegisterVolumeMeshMultiZoneAccess ( SyscOpaqueDataAccess  opaqueDataAccess,
SyscVolumeMeshMultiZoneAccess  meshAccess 
)

Provide a function to register volume mesh multi-zone access.

Parameters
opaqueDataAccess- a pointer to an address in memory. This pointer will be passed into the callback function.
meshAccess- a pointer to the function that conforms to SyscVolumeMeshMultiZoneAccess prototype.

◆ syscStartStandaloneParallel()

SyscError syscStartStandaloneParallel ( const size_t  mpiCommunicator)

Provide a function to start standalone mode in parallel.

Parameters
[in]mpiCommunicatorMPI communicator cast to size_t.

This will initialize the participant library in standalone mode and will use the provided MPI communicator for all parallel communication.

Note that if the MPI communicator is MPI_COMM_WORLD, then it is not necessary to call this function.

◆ syscUpdateInputs()

SyscError syscUpdateInputs ( )

Provide a function to update the participants input variables.

Solution data for all input variables will be updated. Depending on the defined interfaces, data will be transferred from another coupling participant solver, or from the opposite side of the same-participant coupling interface.

When doing cosimulation, this function must be called from inside the coupled analysis loop. It tells System Coupling that the participant is about to begin its solver iterations. All input variable data will be up-to-date after returning from this function. If any local coupling interfaces are defined, all corresponding input variable data will also be updated.

When doing same-participant mapping only (without cosimulation), this function should be called whenever input data needs to be brought up-to-date.

◆ syscUpdateOutputs()

SyscError syscUpdateOutputs ( const enum SyscConvergenceStatus  convStatus)

Provide a function to update the participants output variables.

This function must be called from inside the coupled analysis loop. It tells System Coupling that the participant has finished performing its solver iterations.

◆ syscWriteSetupFile()

int syscWriteSetupFile ( const SyscSetupFileInfo  setupFileInfo)

Provide a function to write the setup file.

This function can be used to generate a System Coupling setup file, which contains participant's setup information. It should be called after calling syscCompleteCouplingSetup.

It takes SyscSetupFileInfo struct as input parameter.

It will return true (1) if the setup file was successfully written, and false (0) otherwise.

Connect with Ansys