preCICE v3.2.0
Loading...
Searching...
No Matches
preciceC.h
Go to the documentation of this file.
1#pragma once
2
3#include <precice/Version.h>
4#include <precice/export.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
18
21
33 const char *participantName,
34 const char *configFileName,
35 int solverProcessIndex,
36 int solverProcessSize,
37 void *communicator);
38
54PRECICE_API void precicec_createParticipant(
55 const char *participantName,
56 const char *configFileName,
57 int solverProcessIndex,
58 int solverProcessSize);
59
61
64
68PRECICE_API void precicec_initialize();
69
75PRECICE_API void precicec_advance(double computedTimeStepSize);
76
80PRECICE_API void precicec_finalize();
81
83
86
89
92
94
97
99PRECICE_API int precicec_getMeshDimensions(const char *meshName);
100
102PRECICE_API int precicec_getDataDimensions(const char *meshName, const char *dataName);
103
107PRECICE_API int precicec_isCouplingOngoing();
108
112PRECICE_API int precicec_isTimeWindowComplete();
113
117PRECICE_API double precicec_getMaxTimeStepSize();
118
120
124
126PRECICE_API int precicec_requiresMeshConnectivityFor(const char *meshName);
127
129PRECICE_API void precicec_resetMesh(const char *meshName);
130
138PRECICE_API int precicec_setMeshVertex(
139 const char *meshName,
140 const double *coordinates);
141
148PRECICE_API int precicec_getMeshVertexSize(const char *meshName);
149
161PRECICE_API void precicec_setMeshVertices(
162 const char *meshName,
163 int size,
164 const double *coordinates,
165 int *ids);
166
176PRECICE_API void precicec_setMeshEdge(
177 const char *meshName,
178 int firstVertexID,
179 int secondVertexID);
180
190PRECICE_API void precicec_setMeshEdges(
191 const char *meshName,
192 int size,
193 const int *ids);
194
198PRECICE_API void precicec_setMeshTriangle(
199 const char *meshName,
200 int firstVertexID,
201 int secondVertexID,
202 int thirdVertexID);
203
213PRECICE_API void precicec_setMeshTriangles(
214 const char *meshName,
215 int size,
216 const int *ids);
217
227PRECICE_API void precicec_setMeshQuad(
228 const char *meshName,
229 int firstVertexID,
230 int secondVertexID,
231 int thirdVertexID,
232 int fourthVertexID);
233
243PRECICE_API void precicec_setMeshQuads(
244 const char *meshName,
245 int size,
246 const int *ids);
247
257PRECICE_API void precicec_setMeshTetrahedron(
258 const char *meshName,
259 int firstVertexID,
260 int secondVertexID,
261 int thirdVertexID,
262 int fourthVertexID);
263
273PRECICE_API void precicec_setMeshTetrahedra(
274 const char *meshName,
275 int size,
276 const int *ids);
277
279
282
284PRECICE_API int precicec_requiresInitialData();
285
300PRECICE_API void precicec_writeData(
301 const char *meshName,
302 const char *dataName,
303 int size,
304 const int *valueIndices,
305 const double *values);
306
323PRECICE_API void precicec_readData(
324 const char *meshName,
325 const char *dataName,
326 int size,
327 const int *valueIndices,
328 double relativeReadTime,
329 double *values);
330
332
335
348PRECICE_API void precicec_writeAndMapData(
349 const char *meshName,
350 const char *dataName,
351 int size,
352 const double *coordinates,
353 const double *values);
354
368PRECICE_API void precicec_mapAndReadData(
369 const char *meshName,
370 const char *dataName,
371 int size,
372 const double *coordinates,
373 double relativeReadTime,
374 double *values);
376
379
383PRECICE_API void precicec_setMeshAccessRegion(
384 const char *meshName,
385 const double *boundingBox);
386
391 const char *meshName,
392 const int size,
393 int *ids,
394 double *coordinates);
395
397
402
404PRECICE_API int precicec_requiresGradientDataFor(const char *meshName,
405 const char *dataName);
406
408PRECICE_API void precicec_writeGradientData(
409 const char *meshName,
410 const char *dataName,
411 int size,
412 const int *valueIndices,
413 const double *gradients);
414
416
419
421PRECICE_API void precicec_startProfilingSection(const char *sectionName);
422
424PRECICE_API void precicec_stopLastProfilingSection();
425
427
437PRECICE_API const char *precicec_getVersionInformation();
438
439#ifdef __cplusplus
440}
441#endif
PRECICE_API int precicec_getMeshVertexSize(const char *meshName)
Returns the number of vertices of a mesh.
Definition preciceC.cpp:208
PRECICE_API void precicec_writeData(const char *meshName, const char *dataName, int size, const int *valueIndices, const double *values)
Writes vector data values given as block.
Definition preciceC.cpp:315
PRECICE_API int precicec_isTimeWindowComplete()
Returns true (->1), if the coupling time window is completed.
Definition preciceC.cpp:115
PRECICE_API void precicec_startProfilingSection(const char *sectionName)
Definition preciceC.cpp:430
PRECICE_API double precicec_getMaxTimeStepSize()
Returns maximum allowed time step size.
Definition preciceC.cpp:127
PRECICE_API int precicec_getDataDimensions(const char *meshName, const char *dataName)
Returns the spatial dimensionality of the given data on the given mesh.
Definition preciceC.cpp:94
PRECICE_API void precicec_stopLastProfilingSection()
Definition preciceC.cpp:437
PRECICE_API void precicec_setMeshTetrahedron(const char *meshName, int firstVertexID, int secondVertexID, int thirdVertexID, int fourthVertexID)
Sets mesh tetrahedron from vertex IDs.
Definition preciceC.cpp:290
PRECICE_API void precicec_initialize()
Initiates the coupling to the coupling supervisor and initializes coupling data.
Definition preciceC.cpp:60
PRECICE_API void precicec_setMeshAccessRegion(const char *meshName, const double *boundingBox)
See precice::Participant::setMeshAccessRegion().
Definition preciceC.cpp:408
PRECICE_API int precicec_requiresGradientDataFor(const char *meshName, const char *dataName)
Checks if the given data set requires gradient data. We check if the data object has been initialized...
Definition preciceC.cpp:375
PRECICE_API const char * precicec_getVersionInformation()
Returns information on the version of preCICE.
Definition preciceC.cpp:403
PRECICE_API int precicec_getMeshDimensions(const char *meshName)
Returns the spatial dimensionality of the given mesh.
Definition preciceC.cpp:85
PRECICE_API void precicec_getMeshVertexIDsAndCoordinates(const char *meshName, const int size, int *ids, double *coordinates)
See precice::Participant::getMeshVertexIDsAndCoordinates().
Definition preciceC.cpp:418
PRECICE_API void precicec_createParticipant(const char *participantName, const char *configFileName, int solverProcessIndex, int solverProcessSize)
Creates the coupling interface and configures it.
Definition preciceC.cpp:45
PRECICE_API void precicec_writeAndMapData(const char *meshName, const char *dataName, int size, const double *coordinates, const double *values)
Writes data using just-in-time data mapping See.
Definition preciceC.cpp:344
PRECICE_API void precicec_advance(double computedTimeStepSize)
Exchanges data between solver and coupling supervisor.
Definition preciceC.cpp:68
PRECICE_API void precicec_setMeshVertices(const char *meshName, int size, const double *coordinates, int *ids)
Creates multiple mesh vertices.
Definition preciceC.cpp:194
PRECICE_API void precicec_setMeshEdge(const char *meshName, int firstVertexID, int secondVertexID)
Sets mesh edge from vertex IDs.
Definition preciceC.cpp:218
PRECICE_API void precicec_readData(const char *meshName, const char *dataName, int size, const int *valueIndices, double relativeReadTime, double *values)
Reads vector data values given as block.
Definition preciceC.cpp:329
PRECICE_API int precicec_requiresMeshConnectivityFor(const char *meshName)
Definition preciceC.cpp:162
PRECICE_API void precicec_finalize()
Finalizes the coupling to the coupling supervisor.
Definition preciceC.cpp:76
PRECICE_API void precicec_createParticipant_withCommunicator(const char *participantName, const char *configFileName, int solverProcessIndex, int solverProcessSize, void *communicator)
Definition preciceC.cpp:28
PRECICE_API void precicec_setMeshQuad(const char *meshName, int firstVertexID, int secondVertexID, int thirdVertexID, int fourthVertexID)
Sets surface mesh quadrangle from vertex IDs.
Definition preciceC.cpp:265
PRECICE_API int precicec_requiresInitialData()
Definition preciceC.cpp:135
PRECICE_API void precicec_setMeshTriangle(const char *meshName, int firstVertexID, int secondVertexID, int thirdVertexID)
Sets a triangle from vertex IDs. Creates missing edges.
Definition preciceC.cpp:241
PRECICE_API void precicec_setMeshTetrahedra(const char *meshName, int size, const int *ids)
Sets multiple mesh tetrahedra from vertex IDs.
Definition preciceC.cpp:303
PRECICE_API int precicec_isCouplingOngoing()
Returns true (->1), if the coupled simulation is ongoing.
Definition preciceC.cpp:103
PRECICE_API void precicec_mapAndReadData(const char *meshName, const char *dataName, int size, const double *coordinates, double relativeReadTime, double *values)
Reads data using just-in-time data mapping. See.
Definition preciceC.cpp:359
PRECICE_API int precicec_requiresReadingCheckpoint()
Definition preciceC.cpp:153
PRECICE_API void precicec_setMeshQuads(const char *meshName, int size, const int *ids)
Sets multiple mesh quads from vertex IDs.
Definition preciceC.cpp:278
PRECICE_API void precicec_setMeshTriangles(const char *meshName, int size, const int *ids)
Sets multiple mesh triangles from vertex IDs.
Definition preciceC.cpp:253
PRECICE_API int precicec_setMeshVertex(const char *meshName, const double *coordinates)
Creates a mesh vertex.
Definition preciceC.cpp:182
PRECICE_API void precicec_resetMesh(const char *meshName)
Removes all vertices and connectivity information from the mesh.
Definition preciceC.cpp:174
PRECICE_API int precicec_requiresWritingCheckpoint()
Definition preciceC.cpp:144
PRECICE_API void precicec_setMeshEdges(const char *meshName, int size, const int *ids)
Sets multiple mesh edge from vertex IDs.
Definition preciceC.cpp:229
PRECICE_API void precicec_writeGradientData(const char *meshName, const char *dataName, int size, const int *valueIndices, const double *gradients)
Writes vector gradient data to a mesh.
Definition preciceC.cpp:388