Skip to main content

Common Fluids Format 2023 R2

CffLocationModel

Last update: 16.07.2025
1/*
2 * Copyright ANSYS. All Rights Reserved.
3 */
4
5#ifndef CFFSDK_CFFINTERFACE_LOCATIONMODEL_HPP_
6#define CFFSDK_CFFINTERFACE_LOCATIONMODEL_HPP_
7
8#include "LibraryType.hpp"
9
10#include "Types.hpp"
11
12#include <memory>
13
14#if defined(_WIN32)
15#pragma warning(push)
16#pragma warning(disable:4251)
17#endif
18
19namespace ansys {
20
21 struct LocationModelData;
22
23 typedef CffMeshIdType MeshId;
24
25 typedef int Dimensionality;
26
27 typedef int CffPartId;
28 typedef CffPartId* CffPartIds;
29
30 typedef CffPartId PartId;
31 typedef std::vector<PartId> PartIds;
32
33 typedef int CffBodyId;
34 typedef CffBodyId* CffBodyIds;
35
36 typedef CffBodyId BodyId;
37 typedef std::vector<BodyId> BodyIds;
38
39 typedef int CffFaceId;
40 typedef CffFaceId* CffFaceIds;
41
42 typedef CffFaceId FaceId;
43 typedef std::vector<FaceId> FaceIds;
44
45 typedef int CffFaceUseId;
46 typedef CffFaceUseId* CffFaceUseIds;
47
48 typedef CffFaceUseId FaceUseId;
49 typedef std::vector<FaceUseId> FaceUseIds;
50
51 typedef int CffCompositeId;
52 typedef CffCompositeId* CffCompositeIds;
53
54 typedef CffCompositeId CompositeId;
55 typedef std::vector<CompositeId> CompositeIds;
56
57 typedef int CffZoneSideId;
58 typedef CffZoneSideId* CffZoneSideIds;
59
60 typedef CffZoneSideId ZoneSideId;
61 typedef std::vector<ZoneSideId> ZoneSideIds;
62
63
64 class ANSYS_FLUIDS_CFFINTERFACE_DLL CffLocationModel {
65 public:
67
69
70 void getParts(PartIds&) const;
71 bool findPart(const std::string&, PartId&) const;
72
73 void clearTopology();
74 void createPart(Dimensionality, const std::string&, PartId&);
75
76 bool getPartName(PartId, std::string&) const;
77 bool getPartDimensionality(PartId, Dimensionality&) const;
78 bool getPartBodies(PartId, BodyIds&) const;
79 bool getPartFaces(PartId, FaceIds&) const;
80 bool getPartFaceUses(PartId, FaceUseIds&) const;
81 bool getPartComposites(PartId, CompositeIds&) const;
82
83 bool findBody(PartId, const std::string&, BodyId&) const;
84 bool findFace(PartId, const std::string&, FaceId&) const;
85 bool findFaceUse(PartId, const std::string&, FaceUseId&) const;
86 bool findComposite(PartId, const std::string&, CompositeId&) const;
87
88 bool createBody(PartId, const std::string&, BodyId&);
89 bool createFace(PartId, const std::string&, FaceId&);
90 bool createComposite(PartId, const std::string&, CompositeId&);
91 bool setPartName(PartId, const std::string&);
92 bool deletePart(PartId);
93
94 bool getBodyPart(BodyId, PartId&) const;
95 bool getBodyName(BodyId, std::string&) const;
96 bool getBodyBoundary(BodyId, FaceUseIds&) const;
97 bool getBodyZones(BodyId, MeshId, ZoneIds&) const;
98
99 bool setBodyZones(BodyId, MeshId, const ZoneIds&);
100 bool setBodyName(BodyId, const std::string&);
101 bool deleteBody(BodyId);
102
103 bool getFacePart(FaceId, PartId&) const;
104 bool getFaceName(FaceId, std::string&) const;
105 bool getFaceZones(FaceId, MeshId, ZoneIds&) const;
106 bool getFaceSides(FaceId, FaceUseId&, FaceUseId&) const;
107
108 bool setFaceZones(FaceId, MeshId, const ZoneIds&);
109 bool setFaceName(FaceId, const std::string&);
110 bool deleteFace(FaceId);
111
112 bool getFaceUsePart(FaceUseId, PartId&) const;
113 bool getFaceUseDefinition(FaceUseId, BodyId&, FaceId&, int& side) const;
114 bool getFaceUseName(FaceUseId, std::string&) const;
115 bool getFaceUseRelativeName(FaceUseId, std::string&) const;
116 bool getFaceUseZoneSides(FaceUseId, MeshId, ZoneSideIds&) const;
117
118 bool createFaceUse(BodyId, FaceId, int side, FaceUseId&);
119 bool setFaceUseZoneSides(FaceUseId, MeshId, const ZoneSideIds&);
120 bool setFaceUseName(FaceUseId, const std::string&);
121 bool deleteFaceUse(FaceUseId);
122
123 bool getCompositeComponents(CompositeId, BodyIds&, FaceIds&,
124 FaceUseIds&, CompositeIds&) const;
125 bool resolveComposite(CompositeId, BodyIds&, FaceIds&, FaceUseIds&) const;
126 bool getCompositeName(CompositeId, std::string&) const;
127
128 bool setCompositeComponents(CompositeId, const BodyIds&, const FaceIds&,
129 const FaceUseIds&, const CompositeIds&);
130 bool setCompositeName(CompositeId, const std::string&);
131 bool deleteComposite(CompositeId);
132
133 bool resolveLocation(const std::vector<std::string>& locationNames,
134 PartId partId,
135 MeshId meshId,
136 ZoneIds& cellZones,
137 ZoneSideIds& faceZoneSides) const;
138
139 bool resolveLocation(const std::string& locationString,
140 PartId partId,
141 MeshId meshId,
142 ZoneIds& cellZones,
143 ZoneSideIds& faceZoneSides) const;
144
145 std::string state() const;
146 void reset(const std::string& state);
147
148 private:
149
150 std::unique_ptr<LocationModelData> _model;
151 };
152
153} // namespace ansys
154
155#if defined(_WIN32)
156#pragma warning(pop)
157#endif
158
159#endif // CFFSDK_CFFINTERFACE_LOCATIONMODEL_HPP_
A Topology model providing user visible topological names.
Definition: CffLocationModel.hpp:64
std::vector< ZoneIdType > ZoneIds
Type used to represent a number of zone identifiers('C++' API only)
Definition: Types.hpp:149
int CffMeshIdType
Type of a variable used to represent the identifier of a mesh.
Definition: CffTypes.h:663
Definition: API.dox:1

Connect with Ansys