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 25type :: syscnodedataf 26 type(syscoutputintegerdataf) :: nodeids 27 type(syscoutputvectordataf) :: nodecoords 28end type syscnodedataf 29! 30!********************************************************************** 31interface syscgetnodedataf 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! 53 import :: syscnodedataf, syscoutputintegerdataf, & 54 syscoutputvectordataf 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) 70 import :: syscnodedataf, syscoutputvectordataf 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 96type :: syscelementtypedataf 97 type(syscoutputintegerdataf) :: elementtypes 98end type syscelementtypedataf 99! 100!********************************************************************** 101interface syscgetelementtypedataf 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) 122 import :: syscelementtypedataf, syscoutputintegerdataf 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! ********************************************************************* 135type :: syscelementnodecountdataf 136 type(SyscOutputIntegerDataF) :: elementNodeCounts 137end type syscelementnodecountdataf 138! 139!********************************************************************** 140interface syscgetelementnodecountdataf 141!********************************************************************** 142!! \brief Returns an empty element node count data access struct. 143!********************************************************************** 144function syscgetelementnodecountdataf_empty() result (ret) 145 import :: syscelementnodecountdataf 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) 158 import :: syscelementnodecountdataf, syscoutputintegerdataf 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 164end function syscgetelementnodecountdataf 165! 166end interface syscgetelementnodecountdataf 167! 168! ********************************************************************* 169!! \brief Element-to-node connectivity struct. 170! ********************************************************************* 171type :: syscelementnodeconnectivitydataf 172 type(SyscOutputIntegerDataF) :: elemNodeIds 173end type syscelementnodeconnectivitydataf 174! 175!********************************************************************** 176interface syscgetelementnodeconnectivitydataf 177!********************************************************************** 178!! \brief Returns an empty element-to-node connectivity struct. 179!********************************************************************** 180function syscgetelementnodeconnectivitydataf_empty() result (ret) 181 import :: syscelementnodeconnectivitydataf 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) 194 import :: syscelementnodeconnectivitydataf, syscoutputintegerdataf 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 200end function syscgetelementnodeconnectivitydataf 201! 202end interface syscgetelementnodeconnectivitydataf 203! 204! ********************************************************************* 205!! \brief Face-to-cell connectivity struct. 206! ********************************************************************* 207type :: syscfacecellconnectivitydataf 208 type(SyscOutputIntegerDataF) :: cell0Ids 209 type(SyscOutputIntegerDataF) :: cell1Ids 210end type syscfacecellconnectivitydataf 211! 212!********************************************************************** 213interface syscgetfacecellconnectivitydataf 214!********************************************************************** 215!! \brief Returns an empty face-to-cell connectivity struct. 216!********************************************************************** 217function syscgetfacecellconnectivitydataf_empty() result (ret) 218 import :: syscfacecellconnectivitydataf 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) 231 import :: syscfacecellconnectivitydataf, syscoutputintegerdataf 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 238end function syscgetfacecellconnectivitydataf 239! 240end interface syscgetfacecellconnectivitydataf 241! 242! ********************************************************************* 243!! \brief Cell id data struct. 244! ********************************************************************* 245type :: sysccelliddataf 246 type(SyscOutputIntegerDataF) :: cellIds 247end type sysccelliddataf 248! 249!********************************************************************** 250interface syscgetcelliddataf 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) 266 import :: sysccelliddataf, syscoutputintegerdataf 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! ********************************************************************* 279type :: syscelementiddataf 280 type(SyscOutputIntegerDataF) :: elementIds 281end type syscelementiddataf 282! 283!********************************************************************** 284interface syscgetelementiddataf 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) 300 import :: syscelementiddataf, syscoutputintegerdataf 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! 314type :: syscfacedataf 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!********************************************************************** 323interface syscgetfacedataf 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! 345 import :: syscfacedataf, syscelementiddataf, & 346 syscelementtypedataf, syscelementnodeconnectivitydataf 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! 365 import :: syscfacedataf, syscelementnodecountdataf, & 366 syscelementnodeconnectivitydataf 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! 384type :: sysccelldataf 385 type(syscelementiddataf) :: cellids 386 type(syscelementtypedataf) :: celltypes 387 type(syscelementnodeconnectivitydataf) :: cellnodeconnectivity 388end type sysccelldataf 389! 390!********************************************************************** 391interface syscgetcelldataf 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! 412 import :: sysccelldataf, syscelementiddataf 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! 428 import :: sysccelldataf, syscelementtypedataf, & 429 syscelementnodeconnectivitydataf 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 fortran::syscgetcelldatafDefinition syscMeshDefinitionF.fi:391 fortran::syscgetcelliddatafDefinition syscMeshDefinitionF.fi:250 fortran::syscgetelementiddatafDefinition syscMeshDefinitionF.fi:284 fortran::syscgetelementnodeconnectivitydatafDefinition syscMeshDefinitionF.fi:176 fortran::syscgetelementnodecountdatafDefinition syscMeshDefinitionF.fi:140 fortran::syscgetelementtypedatafDefinition syscMeshDefinitionF.fi:101 fortran::syscgetfacecellconnectivitydatafDefinition syscMeshDefinitionF.fi:213 fortran::syscgetfacedatafDefinition syscMeshDefinitionF.fi:323 fortran::syscgetnodedatafDefinition syscMeshDefinitionF.fi:31 fortran::sysccelldatafDefinition syscMeshDefinitionF.fi:384 fortran::sysccelliddatafDefinition syscMeshDefinitionF.fi:245 fortran::syscelementiddatafDefinition syscMeshDefinitionF.fi:279 fortran::syscelementnodeconnectivitydatafDefinition syscMeshDefinitionF.fi:171 fortran::syscelementnodecountdatafDefinition syscMeshDefinitionF.fi:135 fortran::syscelementtypedatafDefinition syscMeshDefinitionF.fi:96 fortran::syscfacecellconnectivitydatafDefinition syscMeshDefinitionF.fi:207 fortran::syscfacedatafDefinition syscMeshDefinitionF.fi:314 fortran::syscnodedatafDefinition syscMeshDefinitionF.fi:25 fortran::syscoutputintegerdatafProvide an output integer data access type.Definition syscOutputIntegerDataF.fi:29 fortran::syscoutputvectordatafCreate an output vector data access type.Definition syscOutputVectorDataF.fi:31