Skip to main content

System Coupling C library 2025 R1

syscSystemCoupling

Last update: 17.07.2025
1 /*
2 * Copyright ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3 */
4 
5 #pragma once
6 
7 #include "SystemCouplingParticipant/LibraryType.hpp"
8 
9 #include "SystemCouplingParticipant/syscCommonTypes.h"
10 #include "SystemCouplingParticipant/syscCouplingInterface.h"
11 #include "SystemCouplingParticipant/syscFunctionTypes.h"
12 #include "SystemCouplingParticipant/syscLegacyInterfaces.h"
13 #include "SystemCouplingParticipant/syscParameter.h"
14 #include "SystemCouplingParticipant/syscPointCloud.h"
15 #include "SystemCouplingParticipant/syscRegion.h"
16 #include "SystemCouplingParticipant/syscVariable.h"
17 #include "SystemCouplingParticipant/syscVolumeMesh.h"
18 #include "SystemCouplingParticipant/syscSurfaceMesh.h"
19 
20 #include <stddef.h>
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
50 SyscError syscStartStandaloneParallel(const size_t mpiCommunicator);
51 
74  const char* scHost,
75  const unsigned short scPort,
76  const char* participantName,
77  const char* buildInformation);
78 
92  const char* scHost,
93  const unsigned short scPort,
94  const char* participantName,
95  const size_t communicator,
96  const char* buildInformation);
97 
110  SyscParticipantInfo participantInfo);
111 
127  SyscParticipantInfo participantInfo,
128  const size_t communicator);
129 
144  const SyscRegion region);
145 
167  const SyscParameter parameter);
168 
191  const SyscParameter parameter);
192 
200 
208 
218 
228 
236 
244 
254 
264 
286  const SyscRealAttribute attribute);
287 
309  const SyscIntegerAttribute attribute);
310 
319 double syscGetParameterValue(const char* parameterName, SyscError* errorCode);
320 
330  const char* parameterName,
331  double value);
332 
341  const char* attributeName,
342  SyscError* errorCode);
343 
352  const char* attributeName,
353  SyscError* errorCode);
354 
371  const SyscCouplingInterface couplingInterface);
372 
389  const SyscCouplingInterface couplingInterface,
390  int autoGenerateDataTransfers);
391 
406 
415  SyscInputScalarDataAccess dataAccess);
416 
428  SyscOpaqueDataAccess opaqueDataAccess,
430 
439  SyscOpaqueDataAccess opaqueDataAccess,
441 
450  SyscInputVectorDataAccess dataAccess);
451 
463  SyscOpaqueDataAccess opaqueDataAccess,
465 
474  SyscOpaqueDataAccess opaqueDataAccess,
476 
485  SyscOutputScalarDataAccess dataAccess);
486 
498  SyscOpaqueDataAccess opaqueDataAccess,
500 
509  SyscOpaqueDataAccess opaqueDataAccess,
511 
520  SyscOutputVectorDataAccess dataAccess);
521 
533  SyscOpaqueDataAccess opaqueDataAccess,
535 
544  SyscOpaqueDataAccess opaqueDataAccess,
546 
556 
568  SyscOpaqueDataAccess opaqueDataAccess,
570 
580 
592  SyscOpaqueDataAccess opaqueDataAccess,
594 
604 
616  SyscOpaqueDataAccess opaqueDataAccess,
618 
628 
640  SyscOpaqueDataAccess opaqueDataAccess,
642 
651 
663  SyscOpaqueDataAccess opaqueDataAccess,
665 
677  SyscOpaqueDataAccess opaqueDataAccess,
678  SyscSurfaceMeshMultiZoneAccess meshAccess);
679 
688 
700  SyscOpaqueDataAccess opaqueDataAccess,
702 
714  SyscOpaqueDataAccess opaqueDataAccess,
715  SyscVolumeMeshMultiZoneAccess meshAccess);
716 
725 
737  SyscOpaqueDataAccess opaqueDataAccess,
738  SyscPointCloudAccessWithPointer pointCloudAccess);
739 
751  SyscOpaqueDataAccess opaqueDataAccess,
752  SyscPointCloudMultiZoneAccess pointCloudAccess);
753 
759  SyscOpaqueDataAccess opaqueDataAccess,
760  SyscZoneCountAccess zoneCountAccess);
761 
771  SyscRestartPointCreation restartPointCreation);
772 
785 
794 
813 
826 
847 
857 
864 
867 void syscFatalError(const char* errorMessage);
868 
871 void syscNonFatalError(const char* errorMessage);
872 
892 
906 int syscWriteSetupFile(const SyscSetupFileInfo setupFileInfo);
907 
911 
919 
930 
934 
942 
943 
944 SyscCouplingInterface syscGetAddedCouplingInterface(size_t index);
945 
948 #ifdef __cplusplus
949 }
950 #endif
void syscFatalError(const char *errorMessage)
Provide a function to notify System Coupling about a fatal error.
SyscError syscRegisterSurfMeshAccess(SyscSurfMeshAccess meshAccess)
Provide a function to register surface mesh access.
SyscError syscRegisterInputScalarDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscInputScalarDataAccessWithPointer dataAccess)
Provide a function to register input scalar data access.
SyscError syscRegisterInputScalarDataAccess(SyscInputScalarDataAccess dataAccess)
Provide a function to register input scalar data access.
SyscError syscDisconnect()
Provide a function to end the analysis and disconnect from System Coupling.
SyscParameter syscGetAddedInputParameter(size_t index)
Provide a function to return input parameter information.
size_t syscGetNumInputParameters()
Provide a method to get the number of input parameters.
SyscConvergenceStatus
Provide enum for participant's solver convergence status.
int64_t syscGetIntegerAttributeValue(const char *attributeName, SyscError *errorCode)
Provide a function to get an IntegerAttribute value.
SyscError syscConnect(const char *scHost, const unsigned short scPort, const char *participantName, const char *buildInformation)
Provide a function to establish connection to System Coupling.
SyscOutputComplexScalarData(* SyscOutputComplexScalarDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to output complex scalar data.
void * SyscOpaqueDataAccess
SyscOutputComplexVectorData(* SyscOutputComplexVectorDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to output complex vector data with opaque pointer.
SyscError syscRegisterOutputComplexScalarDataAccess(SyscOutputComplexScalarDataAccess 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.
SyscOutputVectorData(* SyscOutputVectorDataMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone output vector data.
SyscError syscRegisterInputComplexScalarDataAccess(SyscInputComplexScalarDataAccess dataAccess)
Provide a function to register input complex scalar data access.
SyscError syscRegisterVolumeMeshAccess(SyscVolumeMeshAccess meshAccess)
Provide a function to register volume mesh access.
SyscError syscRegisterOutputScalarDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscOutputScalarDataAccessWithPointer dataAccess)
Provide a function to register output scalar data access.
SyscError syscRegisterRestartPointCreation(SyscRestartPointCreation restartPointCreation)
Provide a function to register restart point creation callback.
SyscError syscRegisterSurfaceMeshMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscSurfaceMeshMultiZoneAccess meshAccess)
Provide a function to register surface mesh multi-zone access.
SyscError syscAddInputParameter(const SyscParameter parameter)
Provide a method to add an input parameter that could be used in a coupled analysis.
SyscError syscRegisterInputVectorDataAccess(SyscInputVectorDataAccess dataAccess)
Provide a function to register input vector data access.
SyscError syscUpdateOutputs(const enum SyscConvergenceStatus convStatus)
Provide a function to update the participants output variables.
SyscError syscRegisterVolumeMeshAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscVolumeMeshAccessWithPointer meshAccess)
Provide a function to register volume mesh access.
SyscError syscAddRegion(const SyscRegion region)
Provide a function to add a region that could be used in a coupled analysis.
SyscError syscCheckSurfaceMeshValidity(SyscSurfaceMesh mesh)
Provide a function to perform simple mesh validity checks.
SyscError syscRegisterInputVectorDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscInputVectorDataAccessWithPointer dataAccess)
Provide a function to register input vector data access.
SyscSolutionControl syscGetSolutionControl()
Get solution control.
SyscError syscAddCouplingInterface(const SyscCouplingInterface couplingInterface)
Provide a function to add a coupling interface.
double syscGetParameterValue(const char *parameterName, SyscError *errorCode)
Provide a function to get a Parameter value.
SyscError syscRegisterInputComplexScalarDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscInputComplexScalarDataAccessWithPointer dataAccess)
Provide a function to register input complex scalar data access.
size_t syscGetNumRegions()
Provide a function to return the number of added regions.
SyscError syscRegisterOutputComplexScalarDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscOutputComplexScalarDataAccessWithPointer dataAccess)
Provide a function to register output complex scalar data access.
SyscOutputComplexVectorData(* SyscOutputComplexVectorDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to output complex vector data.
SyscError syscSetParameterValue(const char *parameterName, double value)
Provide a function to set a Parameter value.
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.
SyscInputComplexVectorData(* SyscInputComplexVectorDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to input complex vector data with opaque pointer.
SyscError syscRegisterInputScalarDataMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscInputScalarDataMultiZoneAccess dataAccess)
Provide a function to register input scalar data multi-zone access.
const char *(* SyscRestartPointCreation)()
Provide function prototype for creating restart points.
SyscError syscRegisterOutputScalarDataAccess(SyscOutputScalarDataAccess dataAccess)
Provide a function to register output scalar data access.
SyscIntegerAttribute syscGetAddedIntegerAttribute(size_t index)
Provide a function to return integer attribute information.
SyscOutputComplexScalarData(* SyscOutputComplexScalarDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to output complex scalar data with opaque pointer.
SyscSurfaceMesh(* SyscSurfMeshAccess)(const char *regionName)
Provide function prototype for access to surface mesh.
SyscRegion syscGetAddedRegion(size_t index)
Provide a function to return added region given the region index.
SyscOutputScalarData(* SyscOutputScalarDataMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone output scalar data.
SyscError syscRegisterPointCloudMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscPointCloudMultiZoneAccess pointCloudAccess)
Provide a function to register point cloud multi-zone access.
SyscError syscRegisterOutputScalarDataMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscOutputScalarDataMultiZoneAccess dataAccess)
Provide a function to register output scalar data multi-zone access.
SyscInputComplexScalarData(* SyscInputComplexScalarDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to input complex scalar data with opaque pointer.
SyscError syscAddIntegerAttribute(const SyscIntegerAttribute attribute)
Provide a method to add an integer attribute that could be used in a coupled analysis.
SyscError syscCompleteSetup(const SyscSetupInfo setupInfo)
Provide a function to notify System Coupling that setup can be completed.
SyscError syscUpdateInputs()
Provide a function to update the participants input variables.
SyscInputScalarData(* SyscInputScalarDataMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone input scalar data.
SyscError syscRegisterOutputComplexVectorDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscOutputComplexVectorDataAccessWithPointer dataAccess)
Provide a function to register output complex vector data access.
SyscError syscStartStandaloneParallel(const size_t mpiCommunicator)
Provide a function to start standalone mode in parallel.
size_t syscGetNumCouplingInterfaces()
Provide a function to return the number of added coupling interfaces.
SyscInputVectorData(* SyscInputVectorDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to input vector data.
SyscError syscConnectUseStruct(SyscParticipantInfo participantInfo)
Provide a function to establish connection to System Coupling in serial using a C structure.
SyscError syscRegisterOutputVectorDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscOutputVectorDataAccessWithPointer dataAccess)
Provide a function to register output vector data access.
SyscSurfaceMesh(* SyscSurfaceMeshMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone surface mesh.
SyscError syscInitializeAnalysis()
Provide a function to notify System Coupling that analysis initialization can be completed.
SyscError syscRegisterOutputVectorDataAccess(SyscOutputVectorDataAccess dataAccess)
Provide a function to register output vector data access.
size_t syscGetNumOutputParameters()
Provide a method to get the number of output parameters.
SyscParameter syscGetAddedOutputParameter(size_t index)
Provide a function to return input parameter information.
uint16_t(* SyscZoneCountAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
Provide function prototype for access to zone count.
SyscInputScalarData(* SyscInputScalarDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to input scalar data.
SyscOutputVectorData(* SyscOutputVectorDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to output vector data with opaque pointer.
SyscOutputScalarData(* SyscOutputScalarDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to output scalar data with opaque pointer.
SyscInputComplexScalarData(* SyscInputComplexScalarDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to input complex scalar data.
SyscError syscRegisterVolumeMeshMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscVolumeMeshMultiZoneAccess meshAccess)
Provide a function to register volume mesh multi-zone access.
SyscOutputScalarData(* SyscOutputScalarDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to output scalar data.
SyscPointCloud(* SyscPointCloudMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone point cloud.
size_t syscGetNumRealAttributes()
Provide a function to get the number of real attributes.
SyscError syscConnectParallelUseStruct(SyscParticipantInfo participantInfo, const size_t communicator)
Provide a function to establish connection to System Coupling in parallel using a C structure.
SyscTimeStep syscGetCurrentTimeStep()
Provide a function to get current time step.
SyscInputComplexVectorData(* SyscInputComplexVectorDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to input complex vector data.
SyscError syscAddRealAttribute(const SyscRealAttribute attribute)
Provide a method to add a real attribute that could be used in a coupled analysis.
SyscVolumeMesh(* SyscVolumeMeshAccess)(const char *regionName)
Provide function prototype for access to volume mesh.
SyscInputScalarData(* SyscInputScalarDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to input scalar data with opaque pointer.
SyscError syscRegisterZoneCountAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscZoneCountAccess zoneCountAccess)
Provide a function to register zone count access.
int syscWriteSetupFile(const SyscSetupFileInfo setupFileInfo)
Provide a function to write the setup file.
SyscError syscRegisterOutputVectorDataMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscOutputVectorDataMultiZoneAccess dataAccess)
Provide a function to register output vector data multi-zone access.
SyscError syscRegisterInputVectorDataMultiZoneAccess(SyscOpaqueDataAccess opaqueDataAccess, SyscInputVectorDataMultiZoneAccess dataAccess)
Provide a function to register input vector data multi-zone access.
SyscVolumeMesh(* SyscVolumeMeshAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
Provide function prototype for access to volume mesh with opaque pointer.
SyscError syscRegisterSurfaceMeshAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscSurfaceMeshAccessWithPointer meshAccess)
Provide a function to register surface mesh access.
SyscError syscRegisterPointCloudAccess(SyscPointCloudAccess pointCloudAccess)
Provide a function to register point cloud access.
SyscError syscAddCouplingInterfaceA(const SyscCouplingInterface couplingInterface, int autoGenerateDataTransfers)
Provide a function to add a coupling interface.
SyscError syscRegisterInputComplexVectorDataAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscInputComplexVectorDataAccessWithPointer dataAccess)
Provide a function to register input complex vector data access.
SyscInputVectorData(* SyscInputVectorDataMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone input vector data.
SyscInputVectorData(* SyscInputVectorDataAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, const char *variableName)
Provide function prototype for access to input vector data with opaque pointer.
SyscPointCloud(* SyscPointCloudAccess)(const char *regionName)
Provide function prototype for access to point cloud.
SyscOutputVectorData(* SyscOutputVectorDataAccess)(const char *regionName, const char *variableName)
Provide function prototype for access to output vector data.
int syscDoIteration()
Provide a function to check whether to do a coupling iteration.
SyscError syscRegisterPointCloudAccessWithPointer(SyscOpaqueDataAccess opaqueDataAccess, SyscPointCloudAccessWithPointer pointCloudAccess)
Provide a function to register point cloud access.
SyscRealAttribute syscGetAddedRealAttribute(size_t index)
Provide a function to return real attribute information.
SyscError syscAddOutputParameter(const SyscParameter parameter)
Provide a method to add an output parameter that could be used in a coupled analysis.
SyscError syscRegisterInputComplexVectorDataAccess(SyscInputComplexVectorDataAccess dataAccess)
Provide a function to register input complex vector data access.
SyscVolumeMesh(* SyscVolumeMeshMultiZoneAccess)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName, uint16_t zoneIndex)
Provide function prototype for access to multi-zone volume mesh.
size_t syscGetNumIntegerAttributes()
Provide a function to get the number of integer attributes.
double syscGetRealAttributeValue(const char *attributeName, SyscError *errorCode)
Provide a function to get a RealAttribute value.
int syscDoTimeStep()
Provide a function to check whether to do a coupling time step.
SyscPointCloud(* SyscPointCloudAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
Provide function prototype for access to point cloud with an opaque pointer.
SyscError syscWriteResults(const SyscResultsInfo resultsInfo)
Write results to a file.
SyscSurfaceMesh(* SyscSurfaceMeshAccessWithPointer)(SyscOpaqueDataAccess opaqueDataAccess, const char *regionName)
Provide function prototype for access to surface mesh with opaque pointer.
void syscNonFatalError(const char *errorMessage)
Provide a function to notify System Coupling about a non fatal error.
Provide a struct for a coupling interface.
Provide a struct for detecting errors from the interface calls.
Provide a struct for an integer-valued attribute.
Definition: syscAttribute.h:70
Provide a struct for a System Coupling parameter.
Definition: syscParameter.h:26
Provide a structure to provide connection info to System Coupling.
Provide a struct for a real-valued attribute.
Definition: syscAttribute.h:24
Provide a struct for a System Coupling region.
Definition: syscRegion.h:42
Provide a structure for writing results files.
Provide a structure for writing System Coupling setup files.
Provide a structure for System Coupling setup information.
Provide a structure containing solution control.
Provide a surface mesh access struct.
Provide a struct for time step.

Connect with Ansys