Skip to main content

System Coupling Fortran library 2024 R2

syscMeshDefinitionF

Last update: 17.07.2025
1module fortran
2!
3! Copyright ANSYS, Inc.
4! Unauthorized use, distribution, or duplication is prohibited.
5!
6! Provide free-form Fortran interface for
7! System Coupling Participant Library.
8!
9! *********************************************************************
10!! \brief Node data access struct, provides read-only access to the
11!! mesh nodes.
12!!
13!! To create and/or initialize SyscNodeDataF, it is highly
14!! recommended to use one of the functions within
15!! `syscGetNodeDataF` interface. These functions will
16!! initialize all members to the correct values and will help to
17!! avoid back-compatibility issues in the future. For example:
18!!
19!! \code
20!!
21!! SyscNodeDataF nodeData
22!! nodeData = syscGetNodeDataF(nodeCoords)
23!!
24!! \endcode
26 type(syscoutputintegerdataf) :: nodeids
27 type(syscoutputvectordataf) :: nodecoords
28end type syscnodedataf
29!
30!**********************************************************************
32!
33!**********************************************************************
34!! \brief Create a mesh node data access struct.
35!!
36!! Returns an empty mesh node data access struct.
37!! All members will be assigned default values.
38!**********************************************************************
39function syscgetnodedataf() result (ret)
40 import :: syscnodedataf
41 type(SyscNodeDataF) :: ret
42!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
43!DIR$ ATTRIBUTES DLLIMPORT :: syscGetNodeDataF
44!DIR$ ENDIF
45end function syscgetnodedataf
46!
47!**********************************************************************
48!! \brief Create a mesh node data access struct, given node ids and
49!! node coords in same order.
50!**********************************************************************
51function syscgetnodedataf_ic(nodeIds, nodeCoords) result (ret)
52!
55 type(SyscOutputIntegerDataF), intent(in) :: nodeIds
56 type(SyscOutputVectorDataF), intent(in) :: nodeCoords
57 type(SyscNodeDataF) :: ret
58!
59!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
60!DIR$ ATTRIBUTES DLLIMPORT :: syscGetNodeDataF_IC
61!DIR$ ENDIF
62!
63end function syscgetnodedataf_ic
64!
65!**********************************************************************
66!! \brief Creates a mesh node data access struct, given node
67!! coordinates in ascending node ids order.
68!**********************************************************************
69function syscgetnodedataf_c(nodeCoords) result (ret)
71 type(SyscOutputVectorDataF), intent(in) :: nodeCoords
72 type(SyscNodeDataF) :: ret
73!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
74!DIR$ ATTRIBUTES DLLIMPORT :: syscGetNodeDataF_C
75!DIR$ ENDIF
76 end function syscgetnodedataf_c
77!
78end interface syscgetnodedataf
79!
80! *********************************************************************
81!! \brief Element types access struct, provides read-only access to
82!! the mesh element types.
83!!
84!! To create and/or initialize SyscElementTypeDataF, it is highly
85!! recommended to use one of the functions within
86!! `syscGetElementTypeDataF` interface. These functions will
87!! initialize all members to the correct values and will help to
88!! avoid back-compatibility issues in the future. For example:
89!!
90!! \code
91!!
92!! SyscElementTypeDataF eTypeData
93!! eTypeData = syscGetElementTypeDataF(elementTypes)
94!!
95!! \endcode
99!
100!**********************************************************************
102!
103!**********************************************************************
104!! \brief Create a mesh node data access struct.
105!!
106!! Returns an empty mesh node data access struct. Element types integer
107!! array access will be set to empty.
108!**********************************************************************
109function syscgetelementtypedataf_empty() result (ret)
110 import :: syscelementtypedataf
111 type(SyscElementTypeDataF) :: ret
112!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
113!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementTypeDataF_Empty
114!DIR$ ENDIF
115end function syscgetelementtypedataf_empty
116!
117!**********************************************************************
118!! \brief Create a mesh node data access struct, given node ids and
119!! node coords in same order.
120!**********************************************************************
121function syscgetelementtypedataf(elementTypes) result (ret)
123 type(SyscOutputIntegerDataF), intent(in) :: elementTypes
124 type(SyscElementTypeDataF) :: ret
125!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
126!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementTypeDataF
127!DIR$ ENDIF
128end function syscgetelementtypedataf
129!
130end interface syscgetelementtypedataf
131!
132! *********************************************************************
133!! \brief Element node count access struct.
134! *********************************************************************
136 type(SyscOutputIntegerDataF) :: elementNodeCounts
138!
139!**********************************************************************
141!**********************************************************************
142!! \brief Returns an empty element node count data access struct.
143!**********************************************************************
144function syscgetelementnodecountdataf_empty() result (ret)
146 type(SyscElementNodeCountDataF) :: ret
147!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
148!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeCountDataF_Empty
149!DIR$ ENDIF
150end function syscgetelementnodecountdataf_empty
151!
152!**********************************************************************
153!! \brief Create an element node count node data access struct, given
154!! element node counts array.
155!**********************************************************************
156function syscgetelementnodecountdataf(elemNodeCounts) &
157 result(ret)
159 type(SyscOutputIntegerDataF), intent(in) :: elemNodeCounts
160 type(SyscElementNodeCountDataF) :: ret
161!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
162!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeCountDataF
163!DIR$ ENDIF
165!
167!
168! *********************************************************************
169!! \brief Element-to-node connectivity struct.
170! *********************************************************************
172 type(SyscOutputIntegerDataF) :: elemNodeIds
174!
175!**********************************************************************
177!**********************************************************************
178!! \brief Returns an empty element-to-node connectivity struct.
179!**********************************************************************
180function syscgetelementnodeconnectivitydataf_empty() result (ret)
182 type(SyscElementNodeConnectivityDataF) :: ret
183!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
184!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeConnectivityDataF_Empty
185!DIR$ ENDIF
186end function syscgetelementnodeconnectivitydataf_empty
187!
188!**********************************************************************
189!! \brief Create an element-to-node connectivity struct, given
190!! element node ids array.
191!**********************************************************************
192function syscgetelementnodeconnectivitydataf(elemNodeConn) &
193 result(ret)
195 type(SyscOutputIntegerDataF), intent(in) :: elemNodeConn
196 type(SyscElementNodeConnectivityDataF) :: ret
197!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
198!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeConnectivityDataF
199!DIR$ ENDIF
201!
203!
204! *********************************************************************
205!! \brief Face-to-cell connectivity struct.
206! *********************************************************************
208 type(SyscOutputIntegerDataF) :: cell0Ids
209 type(SyscOutputIntegerDataF) :: cell1Ids
211!
212!**********************************************************************
214!**********************************************************************
215!! \brief Returns an empty face-to-cell connectivity struct.
216!**********************************************************************
217function syscgetfacecellconnectivitydataf_empty() result (ret)
219 type(SyscFaceCellConnectivityDataF) :: ret
220!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
221!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceCellConnectivityDataF_Empty
222!DIR$ ENDIF
223end function syscgetfacecellconnectivitydataf_empty
224!
225!**********************************************************************
226!! \brief Create a face-to-cell connectivity struct, given cell0Ids
227!! and cell1Ids arrays.
228!**********************************************************************
229function syscgetfacecellconnectivitydataf(cell0Ids, cell1Ids) &
230 result(ret)
232 type(SyscOutputIntegerDataF), intent(in) :: cell0Ids
233 type(SyscOutputIntegerDataF), intent(in) :: cell1Ids
234 type(SyscFaceCellConnectivityDataF) :: ret
235!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
236!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceCellConnectivityDataF
237!DIR$ ENDIF
239!
241!
242! *********************************************************************
243!! \brief Cell id data struct.
244! *********************************************************************
246 type(SyscOutputIntegerDataF) :: cellIds
247end type sysccelliddataf
248!
249!**********************************************************************
251!**********************************************************************
252!! \brief Returns an empty cell id data struct.
253!**********************************************************************
254function syscgetcelliddataf_empty() result (ret)
255 import :: sysccelliddataf
256 type(SyscCellIdDataF) :: ret
257!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
258!DIR$ ATTRIBUTES DLLIMPORT :: syscGetCellIdDataF_Empty
259!DIR$ ENDIF
260end function syscgetcelliddataf_empty
261!
262!**********************************************************************
263!! \brief Create a cell id data struct, given cell ids array.
264!**********************************************************************
265function syscgetcelliddataf(cellIds) result (ret)
267 type(SyscOutputIntegerDataF), intent(in) :: cellIds
268 type(SyscCellIdDataF) :: ret
269!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
270!DIR$ ATTRIBUTES DLLIMPORT :: syscGetCellIdDataF
271!DIR$ ENDIF
272end function syscgetcelliddataf
273!
274end interface syscgetcelliddataf
275!
276! *********************************************************************
277!! \brief Element id data struct.
278! *********************************************************************
280 type(SyscOutputIntegerDataF) :: elementIds
281end type syscelementiddataf
282!
283!**********************************************************************
285!**********************************************************************
286!! \brief Returns an empty element id data struct.
287!**********************************************************************
288function syscgetelementiddataf_empty() result (ret)
289 import :: syscelementiddataf
290 type(SyscElementIdDataF) :: ret
291!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
292!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementIdDataF_Empty
293!DIR$ ENDIF
294end function syscgetelementiddataf_empty
295!
296!**********************************************************************
297!! \brief Create a element id data struct, given element ids array.
298!**********************************************************************
299function syscgetelementiddataf(elementIds) result (ret)
301 type(SyscOutputIntegerDataF), intent(in) :: elementIds
302 type(SyscElementIdDataF) :: ret
303!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
304!DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementIdDataF
305!DIR$ ENDIF
306end function syscgetelementiddataf
307!
308end interface syscgetelementiddataf
309!
310! *********************************************************************
311!! \brief Face data access struct, provides read-only access to the
312!! mesh faces.
313!
315 type(syscelementiddataf) :: faceids
316 type(syscelementtypedataf) :: facetypes
317 type(syscelementnodecountdataf) :: facenodecounts
318 type(syscelementnodeconnectivitydataf) :: facenodeconnectivity
319 type(syscfacecellconnectivitydataf) :: facecellconnectivity
320end type syscfacedataf
321!
322!**********************************************************************
324!
325!**********************************************************************
326!! \brief Create a mesh face data access struct.
327!!
328!! Returns an empty mesh face data access struct.
329!! All members will be assigned default values.
330!**********************************************************************
331function syscgetfacedataf() result (ret)
332 import :: syscfacedataf
333 type(SyscFaceDataF) :: ret
334!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
335!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF
336!DIR$ ENDIF
337end function syscgetfacedataf
338!
339!**********************************************************************
340!! \brief Create a mesh face data access struct.
341!**********************************************************************
342function syscgetfacedataf_itn(faceIds, faceTypes, &
343 faceNodeConnectivity) result (ret)
344!
347 type(SyscElementIdDataF), intent(in) :: faceIds
348 type(SyscElementTypeDataF), intent(in) :: faceTypes
349 type(SyscElementNodeConnectivityDataF), intent(in) :: &
350 faceNodeConnectivity
351 type(SyscFaceDataF) :: ret
352!
353!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
354!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_ITN
355!DIR$ ENDIF
356!
357end function syscgetfacedataf_itn
358!
359!**********************************************************************
360!! \brief Create a mesh face data access struct.
361!**********************************************************************
362function syscgetfacedataf_cn(faceNodeCounts, faceNodeConnectivity) &
363 result(ret)
364!
367 type(SyscElementNodeCountDataF), intent(in) :: faceNodeCounts
368 type(SyscElementNodeConnectivityDataF), intent(in) :: &
369 faceNodeConnectivity
370 type(SyscFaceDataF) :: ret
371!
372!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
373!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_CN
374!DIR$ ENDIF
375!
376end function syscgetfacedataf_cn
377!
378end interface syscgetfacedataf
379!
380! *********************************************************************
381!! \brief Cell data access struct, provides read-only access to the
382!! mesh cells.
383!
385 type(syscelementiddataf) :: cellids
386 type(syscelementtypedataf) :: celltypes
387 type(syscelementnodeconnectivitydataf) :: cellnodeconnectivity
388end type sysccelldataf
389!
390!**********************************************************************
392!
393!**********************************************************************
394!! \brief Create a mesh cell data access struct.
395!!
396!! Returns an empty mesh cell data access struct.
397!! All members will be assigned default values.
398!**********************************************************************
399function syscgetcelldataf() result (ret)
400 import :: sysccelldataf
401 type(SyscCellDataF) :: ret
402!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
403!DIR$ ATTRIBUTES DLLIMPORT :: syscGetCellDataF
404!DIR$ ENDIF
405end function syscgetcelldataf
406!
407!**********************************************************************
408!! \brief Create a mesh cell data access struct.
409!**********************************************************************
410function syscgetfacedataf_i(cellIds) result (ret)
411!
413 type(SyscElementIdDataF), intent(in) :: cellIds
414 type(SyscCellDataF) :: ret
415!
416!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
417!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_I
418!DIR$ ENDIF
419!
420end function syscgetfacedataf_i
421!
422!**********************************************************************
423!! \brief Create a mesh cell data access struct.
424!**********************************************************************
425function syscgetfacedataf_tn(cellTypes, &
426 cellNodeConnectivity) result (ret)
427!
430 type(SyscElementTypeDataF), intent(in) :: cellTypes
431 type(SyscElementNodeConnectivityDataF), intent(in) :: &
432 cellNodeConnectivity
433 type(SyscCellDataF) :: ret
434!
435!DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
436!DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_TN
437!DIR$ ENDIF
438!
439end function syscgetfacedataf_tn
440!
441end interface syscgetcelldataf
442!
443end module fortran
Provide an output integer data access type.
Create an output vector data access type.

Connect with Ansys