Skip to main content

System Coupling C library 2024 R2

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
23extern "C" {
24#endif
25
50SyscError 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
237double syscGetParameterValue(const char* parameterName, SyscError* errorCode);
238
248 const char* parameterName,
249 double value);
250
267 const SyscCouplingInterface couplingInterface);
268
285 const SyscCouplingInterface couplingInterface,
286 int autoGenerateDataTransfers);
287
302
311 SyscInputScalarDataAccess dataAccess);
312
324 SyscOpaqueDataAccess opaqueDataAccess,
326
335 SyscOpaqueDataAccess opaqueDataAccess,
337
346 SyscInputVectorDataAccess dataAccess);
347
359 SyscOpaqueDataAccess opaqueDataAccess,
361
370 SyscOpaqueDataAccess opaqueDataAccess,
372
381 SyscOutputScalarDataAccess dataAccess);
382
394 SyscOpaqueDataAccess opaqueDataAccess,
396
405 SyscOpaqueDataAccess opaqueDataAccess,
407
416 SyscOutputVectorDataAccess dataAccess);
417
429 SyscOpaqueDataAccess opaqueDataAccess,
431
440 SyscOpaqueDataAccess opaqueDataAccess,
442
452
464 SyscOpaqueDataAccess opaqueDataAccess,
466
476
488 SyscOpaqueDataAccess opaqueDataAccess,
490
500
512 SyscOpaqueDataAccess opaqueDataAccess,
514
524
536 SyscOpaqueDataAccess opaqueDataAccess,
538
547
559 SyscOpaqueDataAccess opaqueDataAccess,
561
573 SyscOpaqueDataAccess opaqueDataAccess,
575
584
596 SyscOpaqueDataAccess opaqueDataAccess,
598
610 SyscOpaqueDataAccess opaqueDataAccess,
612
621
633 SyscOpaqueDataAccess opaqueDataAccess,
634 SyscPointCloudAccessWithPointer pointCloudAccess);
635
647 SyscOpaqueDataAccess opaqueDataAccess,
648 SyscPointCloudMultiZoneAccess pointCloudAccess);
649
655 SyscOpaqueDataAccess opaqueDataAccess,
656 SyscZoneCountAccess zoneCountAccess);
657
667 SyscRestartPointCreation restartPointCreation);
668
681
690
709
722
743
753
760
763void syscFatalError(const char* errorMessage);
764
784
798int syscWriteSetupFile(const SyscSetupFileInfo setupFileInfo);
799
803
811
822
826
834
835
836SyscCouplingInterface syscGetAddedCouplingInterface(size_t index);
837
840#ifdef __cplusplus
841}
842#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.
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.
SyscError syscRegisterOutputScalarDataAccess(SyscOutputScalarDataAccess dataAccess)
Provide a function to register output scalar data access.
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.
const char *(* SyscRestartPointCreation)()
Provide function prototype for creating restart points.
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.
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.
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.
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.
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.
Provide a struct for a coupling interface.
Provide a struct for detecting errors from the interface calls.
Provide a struct for a System Coupling parameter.
Provide a structure to provide connection info to System Coupling.
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