Skip to main content

Common Fluids Format 2023 R2

CffProvider

Last update: 16.07.2025
1/*
2 * Copyright ANSYS. All Rights Reserved.
3 */
4
5#ifndef CFFSDK_CFFINTERFACE_CFFPROVIDER_HPP_
6#define CFFSDK_CFFINTERFACE_CFFPROVIDER_HPP_
7
8#include "LibraryType.hpp"
9
10#include "CffBase.hpp"
11#include "CffTimeLevels.hpp"
12#include "CffVariableRecipeProvider.hpp"
13#include "CffVariant.hpp"
14#include "CffSetting.hpp"
15
16#include <utility>
17#include <limits>
18
19namespace ansys {
20
21class ANSYS_FLUIDS_CFFINTERFACE_DLL CffProvider : virtual public CffBase {
22public:
24
25 virtual ~CffProvider();
26
27 virtual void setVariableTarget(const VariableTarget& target);
28
29 virtual void setVariableRecipeProvider(CffVariableRecipeProvider* vrp);
30
31 virtual bool startReading(DataClass dataClass);
32 virtual bool endReading(DataClass dataClass);
33
34 virtual void setSkipReadZoneTopology(bool skip);
35
36 virtual void setHeavyDataCacheMode(const DataCacheMode cacheMode);
37
38 virtual void setReadAllSettings(bool readAllSettings);
39
40 virtual void
41 setKeyWordsForSettingsToBeRead(const std::vector<std::string>& dsNames,
42 const std::vector<std::vector<std::string> >& settings);
43
44 virtual void getSettingsKeys(DataClass dataClass,
45 std::vector<std::string>& keys) const;
46
47 CffVariant
48 getSettings(const DataClass type,
49 const std::string& key, const PhaseIdType phaseId = 1) const;
50
51 virtual void getSettingString(DataClass dataClass,
52 const std::string& datasetName,
53 std::string& contents,
54 const std::string& path = "") const;
55
56 virtual CffSetting getSetting(const std::string& key = "Common",
58 const std::string& rootName = CffBase::_defaultSettingsPath) const;
59 // Meshes
60 virtual bool hasMeshId(MeshIdType) const;
61 virtual MeshIds availableMeshIds(DataClass dc = DataClass::CFF_CASE) const;
62
63 // Targets - across all meshes
64 bool hasTarget(TargetCategory target) const;
65 TargetCategories availableTargets() const;
66
67 // Targets - for supplied mesh
68 virtual bool hasTarget(MeshIdType, TargetCategory) const;
69 virtual TargetCategories availableTargets(MeshIdType meshId,
71
72 // Partitions - across all meshes
73 bool hasPartition(PartitionIdType) const;
74 int getPartitionCount() const;
75 PartitionIds availablePartitionIds() const;
76
77 // Partitions - for supplied mesh
78 virtual bool hasPartition(MeshIdType, PartitionIdType) const;
79 virtual int getPartitionCount(MeshIdType) const;
80 virtual PartitionIds availablePartitionIds(MeshIdType meshId,
81 DataClass dc = DataClass::CFF_CASE) const;
82
83 // node-coordinates init
84 virtual void startReadingCoordinatesForNodes(ZoneIds& zoneIds) const;
85
86 virtual size_t getCoordinatesForNode(const ElemIdType nodeId,
87 float* const coord,
88 const size_t) const;
89
90 virtual size_t getCoordinatesForNodesInRange(const ElemIdType minid,
91 const ElemIdType maxId,
92 float* const coords,
93 const size_t) const;
94
95 virtual size_t getCoordinatesForNodesInZone(const ZoneIdType zoneId,
96 float* const coords,
97 const size_t) const;
98
99 virtual size_t getCoordinatesForNode(const ElemIdType nodeId,
100 double* const coord,
101 const size_t) const;
102
103 virtual size_t getCoordinatesForNodesInRange(const ElemIdType minid,
104 const ElemIdType maxId,
105 double* const coords,
106 const size_t) const;
107
108 virtual size_t getCoordinatesForNodesInZone(const ZoneIdType zoneId,
109 double* const coords,
110 const size_t) const;
111
112 // node-coordinates end
113 virtual void endReadingCoordinatesForNodes() const;
114
115 // edge-node connectivity init
116 virtual void startReadingNodesForEdges(ZoneIds& zoneIds) const;
117
118 // edge-node count
119 virtual void startReadingNodeCountsForEdges() const;
120
121 virtual bool hasUniformNodeCountForEdgesInRange(const ElemIdType minId,
122 const ElemIdType maxId,
123 short* const uenc) const;
124
125 virtual bool hasUniformNodeCountForEdgesInZone(const ZoneIdType zoneId,
126 short* const uenc) const;
127
128 virtual short getNodeCountForEdge(const ElemIdType edgeId) const;
129
130 virtual size_t getNodeCountsForEdgesInRange(const ElemIdType,
131 const ElemIdType,
132 short* const,
133 const size_t) const;
134
135 virtual size_t getNodeCountsForEdgesInZone(const ZoneIdType zoneId,
136 short* const fenc,
137 const size_t) const;
138
139 virtual void endReadingNodeCountsForEdges() const;
140
141 // edge-node ids
142 virtual void startReadingNodeIdsForEdges() const;
143
144 virtual size_t getNodeIdsForEdge(const ElemIdType edgeId,
145 ElemIdType* const enid,
146 const size_t) const;
147
148 virtual size_t getNodeIdsForEdgesInRange(const ElemIdType,
149 const ElemIdType,
150 ElemIdType* const,
151 const size_t) const;
152
153 virtual size_t getNodeIdsForEdgesInZone(const ZoneIdType,
154 ElemIdType* const,
155 const size_t) const;
156
157 virtual void endReadingNodeIdsForEdges() const;
158
159 // edge-node connectivity end
160 virtual void endReadingNodesForEdges() const;
161
162 // face-node connectivity init
163 virtual void startReadingNodesForFaces(ZoneIds& zoneIds) const;
164
165 // face-node count
166 virtual void startReadingNodeCountsForFaces() const;
167
168 virtual bool hasUniformNodeCountForFacesInRange(const ElemIdType minId,
169 const ElemIdType maxId,
170 short* const ufnc) const;
171
172 virtual bool hasUniformNodeCountForFacesInZone(const ZoneIdType zoneId,
173 short* const ufnc) const;
174
175 virtual short getNodeCountForFace(const ElemIdType faceId) const;
176
177 virtual size_t getNodeCountsForFacesInRange(const ElemIdType,
178 const ElemIdType,
179 short* const,
180 const size_t) const;
181
182 virtual size_t getNodeCountsForFacesInZone(const ZoneIdType zoneId,
183 short* const fnc,
184 const size_t) const;
185
186 virtual void endReadingNodeCountsForFaces() const;
187
188 // face-node ids
189 virtual void startReadingNodeIdsForFaces() const;
190
191 virtual size_t getNodeIdsForFace(const ElemIdType faceId,
192 ElemIdType* const fnid,
193 const size_t) const;
194
195 virtual size_t getNodeIdsForFacesInRange(const ElemIdType,
196 const ElemIdType,
197 ElemIdType* const,
198 const size_t) const;
199
200 virtual size_t getNodeIdsForFacesInZone(const ZoneIdType,
201 ElemIdType* const,
202 const size_t) const;
203
204 virtual void endReadingNodeIdsForFaces() const;
205
206 // face-node connectivity end
207 virtual void endReadingNodesForFaces() const;
208
209 // face-cell0 connectivity init
210 virtual void startReadingCell0sForFaces(ZoneIds& zoneIds) const;
211
212 // face-cell0 connectivity
213 virtual ElemIdType getCell0ForFace(const ElemIdType faceId) const;
214
215 virtual size_t getCell0sForFacesInRange(const ElemIdType minId,
216 const ElemIdType maxId,
217 ElemIdType* const cell0Id,
218 const size_t) const;
219
220 virtual size_t getCell0sForFacesInZone(const ZoneIdType zoneId,
221 ElemIdType* const cell0Id,
222 const size_t) const;
223
224 // face-cell0 connectivity end
225 virtual void endReadingCell0sForFaces() const;
226
227 // face-cell1 connectivity init
228 virtual void startReadingCell1sForFaces(ZoneIds& zoneIds) const;
229
230 // face-cell1 connectivity
231 virtual ElemIdType getCell1ForFace(const ElemIdType faceId) const;
232
233 virtual size_t getCell1sForFacesInRange(const ElemIdType minId,
234 const ElemIdType maxId,
235 ElemIdType* const cell1,
236 const size_t) const;
237
238 virtual size_t getCell1sForFacesInZone(const ZoneIdType zoneId,
239 ElemIdType* const fc1,
240 const size_t) const;
241
242 // face-cell1 connectivity end
243 virtual void endReadingCell1sForFaces() const;
244
245 // face-shadow init
246 virtual void startReadingShadowFaceIdsForFaces(ZoneIds& zoneIds) const;
247
248 // face-shadow
249 virtual ElemIdType getShadowFaceIdForFace(const ElemIdType faceId) const;
250
251 virtual size_t getShadowFaceIdsForFacesInRange(const ElemIdType minId,
252 const ElemIdType maxId,
253 ElemIdType* const shadowFaces,
254 const size_t) const;
255
256 virtual size_t getShadowFaceIdsForFacesInZone(const ZoneIdType zoneId,
257 ElemIdType* const shadowFaces,
258 const size_t) const;
259
260 // face-shadow end
261 virtual void endReadingShadowFaceIdsForFaces() const;
262
263 // interface-face init
264 virtual void
265 startReadingInterfaceDataForFaces(ZoneIds&, std::vector<int>&) const;
266
267 // interface-face
268 virtual size_t getInterfaceDataForFace(const ElemIdType,
269 double* const,
270 const size_t,
271 double* const,
272 const size_t,
273 size_t* const pf0,
274 size_t* const = NULL) const;
275
276 virtual size_t getInterfaceDataForFacesInZone(const ZoneIdType zoneId,
277 double* const,
278 const size_t,
279 double* const,
280 const size_t,
281 size_t* const,
282 const size_t,
283 size_t* const = NULL,
284 const size_t = 0) const;
285
286 virtual size_t getInterfaceDataForFace(const ElemIdType,
287 float* const,
288 const size_t,
289 float* const,
290 const size_t,
291 size_t* const pf0,
292 size_t* const = NULL) const;
293
294 virtual size_t getInterfaceDataForFacesInZone(const ZoneIdType zoneId,
295 float* const,
296 const size_t,
297 float* const,
298 const size_t,
299 size_t* const,
300 const size_t,
301 size_t* const = NULL,
302 const size_t = 0) const;
303
304 // interface-face end
305 virtual void endReadingInterfaceDataForFaces() const;
306
307 // Face refinement init
308 virtual void startReadingChildFacesForFaces(ZoneIds&) const;
309
310 // face-child count
311 virtual void startReadingChildFaceCountsForFaces() const;
312
313 virtual short getChildFaceCountForFace(const ElemIdType faceId) const;
314
315 virtual size_t getChildFaceCountsForFacesInRange(const ElemIdType,
316 const ElemIdType,
317 short* const,
318 const size_t) const;
319
320 virtual size_t getChildFaceCountsForFacesInZone(const ZoneIdType,
321 short* const,
322 const size_t) const;
323
324 virtual void endReadingChildFaceCountsForFaces() const;
325
326 // face-children ids
327 virtual void startReadingChildFaceIdsForFaces() const;
328
329 virtual size_t getChildFaceIdsForFace(const ElemIdType faceId,
330 ElemIdType* const fcid,
331 const size_t) const;
332
333 virtual size_t getChildFaceIdsForFacesInRange(const ElemIdType,
334 const ElemIdType,
335 ElemIdType* const,
336 const size_t) const;
337
338 virtual size_t getChildFaceIdsForFacesInZone(const ZoneIdType,
339 ElemIdType* const,
340 const size_t) const;
341
342 // face-children end
343 virtual void endReadingChildFaceIdsForFaces() const;
344
345 // face-children end
346 virtual void endReadingChildFacesForFaces() const;
347
348 // cell-type init
349 virtual void startReadingTypesForCells(ZoneIds&) const;
350
351 // cell-type
352 virtual bool hasUniformTypeForCellsInZone(const ZoneIdType zoneId,
353 CellType* const) const;
354
355 virtual CellType getTypeForCell(const ElemIdType cellId) const;
356
357 virtual size_t getTypesForCellsInRange(const ElemIdType,
358 const ElemIdType,
359 CellType* const,
360 const size_t) const;
361
362 virtual size_t getTypesForCellsInZone(const ZoneIdType,
363 CellType* const,
364 const size_t) const;
365
366 // cell-type end
367 virtual void endReadingTypesForCells() const;
368
369 // cell-node connectivity init
370 virtual void startReadingNodesForCells(ZoneIds& zoneIds) const;
371
372 // cell-node count
373 virtual void startReadingNodeCountsForCells() const;
374
375 virtual bool hasUniformNodeCountForCellsInZone(const ZoneIdType zoneId,
376 short* const ucnc) const;
377
378 virtual short getNodeCountForCell(const ElemIdType cellId) const;
379
380 virtual size_t getNodeCountsForCellsInRange(const ElemIdType minId,
381 const ElemIdType maxId,
382 short* const cnc,
383 const size_t) const;
384
385 virtual size_t getNodeCountsForCellsInZone(const ZoneIdType zoneId,
386 short* const cnc,
387 const size_t) const;
388
389 virtual void endReadingNodeCountsForCells() const;
390
391 // cell-node ids
392 virtual void startReadingNodeIdsForCells() const;
393
394 virtual size_t getNodeIdsForCell(const ElemIdType cellId,
395 ElemIdType* const cnid,
396 const size_t) const;
397
398 virtual size_t getNodeIdsForCellsInRange(const ElemIdType minId,
399 const ElemIdType maxId,
400 ElemIdType* const cnid,
401 const size_t) const;
402
403 virtual size_t getNodeIdsForCellsInZone(const ZoneIdType zoneId,
404 ElemIdType* const cnid,
405 const size_t) const;
406
407 virtual void endReadingNodeIdsForCells() const;
408
409 virtual void endReadingNodesForCells() const;
410
411 virtual void startReadingFacesForCells(ZoneIds& zoneIds) const;
412
413 virtual void startReadingFaceCountsForCells() const;
414
415 virtual
416 bool hasUniformFaceCountForCellsInZone(const ZoneIdType zoneId,
417 short* const ucfc) const;
418
419 virtual short getFaceCountForCell(const ElemIdType cellId) const;
420
421 virtual
422 size_t getFaceCountsForCellsInRange(const ElemIdType minId,
423 const ElemIdType maxId,
424 short* const cfc,
425 const size_t dataSize) const;
426
427 virtual size_t getFaceCountsForCellsInZone(const ZoneIdType zoneId,
428 short* const cfc,
429 const size_t) const;
430
431 virtual void endReadingFaceCountsForCells() const;
432
433 virtual void startReadingFaceIdsForCells() const;
434
435 virtual
436 size_t getFaceIdsForCell(const ElemIdType cellId,
437 ElemIdType* const cfid,
438 const size_t dataSize) const;
439
440 virtual
441 size_t getFaceIdsForCellsInRange(const ElemIdType minId,
442 const ElemIdType maxId,
443 ElemIdType* const cfid,
444 const size_t dataSize) const;
445
446 virtual size_t getFaceIdsForCellsInZone(const ZoneIdType zoneId,
447 ElemIdType* const cfid,
448 const size_t) const;
449
450 virtual void endReadingFaceIdsForCells() const;
451
452 virtual void endReadingFacesForCells() const;
453
454 // cell-partition init
455 virtual void startReadingPartitionIdsForCells(ZoneIds&) const;
456
457 // cell-partition
458 virtual int getPartitionCountForZone(const ZoneIdType zoneId) const;
459
460 virtual PartitionIdType getPartitionIdForCell(const ElemIdType cellId) const;
461
462 virtual size_t getPartitionIdsForCellsInRange(const ElemIdType,
463 const ElemIdType,
464 PartitionIdType* const partIds,
465 const size_t) const;
466
467 virtual size_t getPartitionIdsForCellsInZone(const ZoneIdType,
468 PartitionIdType* const partIds,
469 const size_t) const;
470
471 // cell-partition end
472 virtual void endReadingPartitionIdsForCells() const;
473
474 // Cell refinement init
475 virtual void startReadingChildCellsForCells(ZoneIds&) const;
476
477 // cell-child count
478 virtual void startReadingChildCellCountsForCells() const;
479
480 virtual short getChildCellCountForCell(const ElemIdType cellId) const;
481
482 virtual size_t getChildCellCountsForCellsInRange(const ElemIdType,
483 const ElemIdType,
484 short* const,
485 const size_t) const;
486
487 virtual size_t getChildCellCountsForCellsInZone(const ZoneIdType,
488 short* const,
489 const size_t) const;
490
491 virtual void endReadingChildCellCountsForCells() const;
492
493 // cell-children ids
494 virtual void startReadingChildCellIdsForCells() const;
495
496 virtual size_t getChildCellIdsForCell(const ElemIdType cellId,
497 ElemIdType* const ccid,
498 const size_t) const;
499
500 virtual size_t getChildCellIdsForCellsInRange(const ElemIdType,
501 const ElemIdType,
502 ElemIdType* const,
503 const size_t) const;
504
505 virtual size_t getChildCellIdsForCellsInZone(const ZoneIdType,
506 ElemIdType* const,
507 const size_t) const;
508
509 virtual void endReadingChildCellIdsForCells() const;
510
511 // cell-children end
512 virtual void endReadingChildCellsForCells() const;
513
514 // special case sections
515 virtual void
516 startReadingCategorizedCaseSections(const ZoneCategory,
517 CategoryNames& categories) const;
518
519 // this section init
520 virtual PlainDataType
521 startReadingCaseSectionForCategory(const CategoryName& catgeory,
522 ZoneIds& zoneIds) const;
523
524 // this section data-count
525 virtual void startReadingCaseSectionDataCounts() const;
526
527 virtual bool hasUniformCaseSectionDataCountForZone(const ZoneIdType zoneId,
528 short* const dc) const;
529
530 virtual short getCaseSectionDataCountForElement(const ElemIdType elemId) const;
531
532 virtual size_t
533 getCaseSectionDataCountsForElementsInRange(const ElemIdType minId,
534 const ElemIdType maxId,
535 short* const dc,
536 const size_t) const;
537
538 virtual size_t
539 getCaseSectionDataCountsForElementsInZone(const ZoneIdType zoneId,
540 short* const dc,
541 const size_t) const;
542
543 virtual void endReadingCaseSectionDataCounts() const;
544
545 // this section data
546 virtual void startReadingCaseSectionData() const;
547
548 virtual size_t getCaseSectionDataForElement(const ElemIdType elemId,
549 void* const data,
550 const size_t) const;
551
552 virtual size_t getCaseSectionDataForElementsInRange(const ElemIdType minId,
553 const ElemIdType maxId,
554 void* const data,
555 const size_t) const;
556
557 virtual size_t getCaseSectionDataForElementsInZone(const ZoneIdType zoneId,
558 void* const data,
559 const size_t) const;
560
561 // this section end
562 virtual void endReadingCaseSectionData() const;
563
564 // special section end
565 virtual void endReadingCategorizedCaseSections() const;
566
567 // if reading data
568 virtual bool isReadingData() const;
569
570 // start reading data within a specified time level
571 void startReadingTimeLevel(const TimeLevelType = CffFinalTimeLevel) const;
572 // end reading data within a specified time level
573 void endReadingTimeLevel() const;
574
575 // reading data
576 virtual void startReadingPhase(const PhaseIdType = 1) const;
577
578 virtual bool getAttributesOfPhase(PhaseIdType, AttributeNames&) const;
579
580 virtual bool getAttributeValueOfPhase(PhaseIdType,
581 const AttributeName&,
582 AttributeValue&) const;
583
584 virtual bool getAttributesOfPhase(AttributeNames&) const;
585
586 virtual bool getAttributeValueOfPhase(const AttributeName&,
587 AttributeValue&) const;
588
589 virtual bool getAttributesOfPhase(const PhaseName&,
590 AttributeNames&) const;
591
592 virtual bool getAttributeValueOfPhase(const PhaseName&,
593 const AttributeName&,
594 AttributeValue&) const;
595
596
597 virtual size_t getPhaseVariableCountOfCategory(const ZoneCategory) const;
598
599 virtual void
600 getPhaseVariablesOfCategory(const ZoneCategory, VariableIds&) const;
601
602 virtual void
603 getPhaseVariablesOfCategory(const ZoneCategory, VariableNames&) const;
604
605 bool getVariableId(PhaseIdType phaseId,
606 const VariableName& varName,
607 VariableIdType& varId) const;
608
609 bool getVariableId(const VariableName& varName, VariableIdType& varId) const;
610
611 bool getVariableId(const PhaseName& phaseName,
612 const VariableName& varName,
613 VariableIdType& varId) const;
614
615 virtual bool
616 getAttributesOfPhaseVariable(VariableIdType, AttributeNames&) const;
617
618 virtual bool
619 getAttributeValueOfPhaseVariable(VariableIdType,
620 const AttributeName&,
621 AttributeValue&) const;
622
623 virtual bool
624 getAttributesOfPhaseVariable(const VariableName&, AttributeNames&) const;
625
626 virtual bool
627 getAttributeValueOfPhaseVariable(const VariableName&,
628 const AttributeName&,
629 AttributeValue&) const;
630
631 virtual bool
632 getAttributesOfPhaseVariable(PhaseIdType phaseId,
633 const VariableName&,
634 AttributeNames&) const;
635
636 virtual bool
637 getAttributeValueOfPhaseVariable(PhaseIdType,
638 const VariableName&,
639 const AttributeName&,
640 AttributeValue&) const;
641
642 virtual bool
643 getAttributesOfPhaseVariable(const PhaseName& phaseName,
644 const VariableName&,
645 AttributeNames&) const;
646
647 virtual bool
648 getAttributeValueOfPhaseVariable(const PhaseName&,
649 const VariableName&,
650 const AttributeName&,
651 AttributeValue&) const;
652
653 virtual size_t
654 startReadingZonesOfCategoryWithPhaseVariable(const ZoneCategory zoneCategory,
655 const VariableIdType varId,
656 ZoneIds& zoneIds) const;
657
658 virtual size_t
659 startReadingZonesOfCategoryWithPhaseVariable(const ZoneCategory zoneCategory,
660 const VariableName& varName,
661 ZoneIds& zoneIds) const;
662
663 virtual size_t
664 getValuesOfPhaseVariableForElement(const ElemIdType elemId,
665 double* const vals,
666 const size_t) const;
667
668 virtual size_t
669 getValuesOfPhaseVariableForElementsInRange(const ElemIdType minId,
670 const ElemIdType maxId,
671 double* const vals,
672 const size_t) const;
673
674 virtual size_t
675 getValuesOfPhaseVariableForElementsInZone(const ZoneIdType zoneId,
676 double* const vals,
677 const size_t) const;
678
679 virtual size_t
680 getValuesOfPhaseVariableForElement(const ElemIdType elemId,
681 float* const vals,
682 const size_t) const;
683
684 virtual size_t
685 getValuesOfPhaseVariableForElementsInRange(const ElemIdType minId,
686 const ElemIdType maxId,
687 float* const vals,
688 const size_t) const;
689
690 virtual size_t
691 getValuesOfPhaseVariableForElementsInZone(const ZoneIdType zoneId,
692 float* const vals,
693 const size_t) const;
694
695 virtual void endReadingZonesOfCategoryWithPhaseVariable() const;
696
697 virtual bool hasParticles() const;
698
699 virtual bool hasParticles(const PhaseName& phaseName) const;
700
701 virtual bool hasParticles(const PhaseIdType phaseId) const;
702
703 virtual bool startReadingParticles() const;
704
705 virtual bool startReadingParticles(const PhaseName& phaseName) const;
706
707 virtual bool startReadingParticles(const PhaseIdType phaseId) const;
708
709 virtual void getInjectionNames(InjectionNames&) const;
710
711 virtual void getVariablesOfInjection(const InjectionName& name,
712 VariableNames& varNames) const;
713
714 virtual void getVariablesOfInjection(const InjectionName& name,
715 VariableIds& varIds) const;
716
717 virtual size_t getNumOfParticlesInInjection(const InjectionName& name) const;
718
719 virtual size_t startReadingVariableForParticlesInInjection(const InjectionName& injName,
720 const VariableName& varName,
721 PlainDataType& dataType) const;
722
723 virtual size_t getValuesOfVariableForParticlesInInjection(double* const vals,
724 size_t const dataSize) const;
725
726 virtual size_t getValuesOfVariableForParticlesInInjection(float* const vals,
727 size_t const dataSize) const;
728
729 virtual size_t getValuesOfVariableForParticlesInInjection(ElemIdType* const vals,
730 size_t const dataSize) const;
731
732 virtual size_t getValuesOfVariableForParticlesInInjection(int* const vals,
733 size_t const dataSize) const;
734
735 virtual size_t getValuesOfVariableForParticlesInInjection(short* const vals,
736 size_t const dataSize) const;
737
738 virtual size_t getValuesOfVariableForParticlesInInjection(unsigned int* const vals,
739 size_t const dataSize) const;
740
741 virtual size_t getValuesOfVariableForParticlesInInjection(long* const vals,
742 size_t const dataSize) const;
743
744 virtual size_t getValuesOfVariableForParticlesInInjection(long long* const vals,
745 size_t const dataSize) const;
746
747 virtual size_t getValuesOfVariableForParticlesInInjection(char* const vals,
748 size_t const dataSize) const;
749
750 virtual size_t getValuesOfVariableForParticlesInInjection(unsigned char* const vals,
751 size_t const dataSize) const;
752
753 virtual void endReadingVariableForParticlesInInjection() const;
754
755 virtual void endReadingParticles() const;
756
757 /*
758 * The following three APIs keep unchanged for the new APIs for set data
759 * All other APIs have different names
760 */
761
762 virtual bool getSetNames(std::vector<std::string>& setNames) const;
763
764 virtual bool getSetNames(const DataClass dataClass,
765 std::vector<std::string>& setNames) const;
766
767 virtual bool getSetNames(const DataClass dataClass,
768 const ZoneCategory cat,
769 std::vector<std::string>& setNames) const;
770
771 /*
772 * The following are old APIs for set data
773 */
774
775 virtual bool startReadingSet(const DataClass dataClass,
776 const ZoneCategory cat,
777 const std::string& setName);
778
779 virtual void startReadingIdsForSet(std::vector<size_t>& nElems,
780 std::vector<ElemIdType>& minId,
781 std::vector<ElemIdType>& maxId);
782
783 virtual size_t getIdsForSetInRange(const ElemIdType minId,
784 const ElemIdType maxId,
785 ElemIdType* const setId,
786 const size_t dataSize);
787
788 virtual void endReadingIdsForSet() const;
789
790 virtual void getVariablesInSet(VariableNames& varNames,
791 std::vector<bool>& hasSize) const;
792
793 virtual void startReadingVariableLengthedVarForSet(const VariableName& varName,
794 PlainDataType& dataType);
795
796 virtual PlainDataType startReadingSizeOfVariableLengthedVarForSet() const;
797
798 virtual size_t getSizeOfVariableLengthedVarForSetInRange(const ElemIdType minId,
799 const ElemIdType maxId,
800 CountType* const counts,
801 size_t const dataSize) const;
802
803 virtual size_t getSizeOfVariableLengthedVarForSetInRange(const ElemIdType minId,
804 const ElemIdType maxId,
805 int* const counts,
806 size_t const dataSize) const;
807
808 virtual size_t getSizeOfVariableLengthedVarForSetInRange(const ElemIdType minId,
809 const ElemIdType maxId,
810 size_t* const counts,
811 size_t const dataSize) const;
812
813 virtual void endReadingSizeOfVariableLengthedVarForSet() const;
814
815 virtual void startReadingDataOfVariableLengthedVarForSet() const;
816
817 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
818 const ElemIdType maxId,
819 unsigned char* const vals,
820 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
821
822 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
823 const ElemIdType maxId,
824 char* const vals,
825 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
826
827 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
828 const ElemIdType maxId,
829 short* const vals,
830 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
831
832 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
833 const ElemIdType maxId,
834 unsigned int* const vals,
835 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
836
837 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
838 const ElemIdType maxId,
839 int* const vals,
840 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
841
842 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
843 const ElemIdType maxId,
844 long* const vals,
845 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
846
847 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
848 const ElemIdType maxId,
849 long long* const vals,
850 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
851
852 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
853 const ElemIdType maxId,
854 float* const vals,
855 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
856
857 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
858 const ElemIdType maxId,
859 double* const vals,
860 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
861
862 virtual size_t getValuesOfVariableLengthedVarForSetInRange(const ElemIdType minId,
863 const ElemIdType maxId,
864 size_t* const vals,
865 size_t const dataSize = std::numeric_limits<size_t>::max()) const;
866
867 virtual void endReadingDataOfVariableLengthedVarForSet() const;
868
869 virtual void endReadingVariableLengthedVarForSet() const;
870
871 virtual size_t startReadingConstantLengthedVarForSet(const VariableName& varName,
872 PlainDataType& dataType) const;
873
874 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
875 const ElemIdType maxId,
876 unsigned char* const vals,
877 size_t const dataSize) const;
878
879 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
880 const ElemIdType maxId,
881 char* const vals,
882 size_t const dataSize) const;
883
884 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
885 const ElemIdType maxId,
886 short* const vals,
887 size_t const dataSize) const;
888
889 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
890 const ElemIdType maxId,
891 unsigned int* const vals,
892 size_t const dataSize) const;
893
894 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
895 const ElemIdType maxId,
896 int* const vals,
897 size_t const dataSize) const;
898
899 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
900 const ElemIdType maxId,
901 long* const vals,
902 size_t const dataSize) const;
903
904 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
905 const ElemIdType maxId,
906 long long* const vals,
907 size_t const dataSize) const;
908
909 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
910 const ElemIdType maxId,
911 float* const vals,
912 size_t const dataSize) const;
913
914 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
915 const ElemIdType maxId,
916 double* const vals,
917 size_t const dataSize) const;
918
919 virtual size_t getValuesOfConstantLengthedVarForSetInRange(const ElemIdType minId,
920 const ElemIdType maxId,
921 size_t* const vals,
922 size_t const dataSize) const;
923
924 virtual void endReadingConstantLengthedVarForSet() const;
925
926 virtual void getOtherVariablesInSet(VariableNames& varNames) const;
927
928 virtual size_t startReadingOtherVariableForSet(const VariableName& varName,
929 PlainDataType& dataType,
930 size_t& numElems) const;
931
932 virtual size_t getValuesOfOtherVariableForSet(unsigned char* const vals,
933 size_t const dataSize) const;
934
935 virtual size_t getValuesOfOtherVariableForSet(char* const vals,
936 size_t const dataSize) const;
937
938 virtual size_t getValuesOfOtherVariableForSet(short* const vals,
939 size_t const dataSize) const;
940
941 virtual size_t getValuesOfOtherVariableForSet(unsigned int* const vals,
942 size_t const dataSize) const;
943
944 virtual size_t getValuesOfOtherVariableForSet(int* const vals,
945 size_t const dataSize) const;
946
947 virtual size_t getValuesOfOtherVariableForSet(long* const vals,
948 size_t const dataSize) const;
949
950 virtual size_t getValuesOfOtherVariableForSet(long long* const vals,
951 size_t const dataSize) const;
952
953 virtual size_t getValuesOfOtherVariableForSet(float* const vals,
954 size_t const dataSize) const;
955
956 virtual size_t getValuesOfOtherVariableForSet(double* const vals,
957 size_t const dataSize) const;
958
959 virtual size_t getValuesOfOtherVariableForSet(size_t* const vals,
960 size_t const dataSize) const;
961
962 virtual void endReadingOtherVariableForSet() const;
963
964 virtual void endReadingSet();
965
966 /*
967 * The following are new APIs for set data
968 */
969
970 virtual bool startReadingSetData(const DataClass dataClass,
971 const ZoneCategory cat,
972 const std::string& setName);
973
974 virtual size_t startReadingIdsForSetData();
975
976 virtual size_t getNumRowsOfSetData(const int nth) const;
977
978 virtual bool getIdsForSetData(const int nth,
979 ElemIdType* const setId,
980 const size_t dataSize) const;
981
982 virtual void endReadingIdsForSetData() const;
983
984 virtual void getVariablesInSetData(VariableNames& varNames,
985 std::vector<bool>& hasSize) const;
986
987 virtual void startReadingVariableLengthVarForSetData(const VariableName& varName);
988
989 virtual PlainDataType getDataTypeOfDataForSetData() const;
990
991 virtual PlainDataType getDataTypeOfSizeForSetData() const;
992
993 virtual size_t startReadingSizeOfVariableLengthVarForSetData() const;
994
995 virtual bool getSizeOfVariableLengthVarForSetData(const int nth,
996 void* const counts,
997 size_t const dataSize) const;
998
999 virtual void endReadingSizeOfVariableLengthVarForSetData() const;
1000
1001 virtual size_t startReadingDataOfVariableLengthVarForSetData() const;
1002
1003 virtual bool getDataOfVariableLengthVarForSetData(const int nth,
1004 void* const vals,
1005 size_t const dataSize) const;
1006
1007 virtual void endReadingDataOfVariableLengthVarForSetData() const;
1008
1009 virtual void endReadingVariableLengthVarForSetData() const;
1010
1011 virtual size_t startReadingConstantLengthVarForSetData(const VariableName& varName) const;
1012
1013 virtual size_t getColumnsNumOfConstantLengthVarForSetData(const size_t nth) const;
1014
1015 virtual bool getDataOfConstantLengthVarForSetData(const int nth,
1016 void* const vals,
1017 size_t const dataSize) const;
1018
1019 virtual void endReadingConstantLengthVarForSetData() const;
1020
1021 virtual void getOtherVariablesInSetData(VariableNames& varNames) const;
1022
1023 virtual size_t startReadingOtherDataForSetData(const VariableName& varName,
1024 PlainDataType& dataType,
1025 size_t& numElems) const;
1026
1027 virtual bool getOtherDataForSetData(void* const vals,
1028 size_t const dataSize) const;
1029
1030 virtual void endReadingOtherDataForSetData() const;
1031
1032 virtual void endReadingSetData();
1033
1034 virtual bool hasParticleTracks();
1035
1036 virtual bool hasParticleTracks(const MeshIdType meshId,
1038 const PartitionIdType partition = -1);
1039
1040 virtual bool hasParticleTracks(const PhaseIdType phaseId,
1041 const MeshIdType meshId,
1043 const PartitionIdType partition = -1);
1044
1045 virtual bool hasParticleTracksInActivePhase();
1046
1047 virtual void getMeshBranchesWithParticleTracks(MeshIds& mids,
1048 TargetCategories& tgts,
1049 PartitionIds& pids);
1050
1051 virtual std::vector<PhaseIdType> getPhasesWithParticleTracks(const MeshIdType meshId = -1,
1053 const PartitionIdType partition = -1);
1054
1055 virtual void startReadingParticleTracks(const PhaseIdType phaseId = -1,
1056 const MeshIdType meshId = -1,
1058 const PartitionIdType partition = -1);
1059
1060 virtual void getVariablesOfParticleTrack(std::vector<VariableName>& varNames,
1061 std::vector<bool>& isConst,
1062 std::vector<PlainDataType>& datTypes);
1063
1064 virtual void getParticleTrackGroups(std::vector<std::string>& groupNames);
1065
1066 virtual size_t startReadingParticleTrackGroup(const std::string& groupName);
1067
1068 virtual void getChunksInParticleTrackGroup(std::vector<size_t>& chunks);
1069
1070 virtual size_t startReadingChunkInParticleTrackGroup(const size_t chunkIndex = 0);
1071
1072 virtual size_t startReadingVariableOfParticleTracksInChunk(const VariableName& varName);
1073
1074 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1075 unsigned char* const data,
1076 const size_t dataSize);
1077
1078 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1079 char* const data,
1080 const size_t dataSize);
1081
1082 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1083 short* const data,
1084 const size_t dataSize);
1085
1086 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1087 unsigned int* const data,
1088 const size_t dataSize);
1089
1090 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1091 int* const data,
1092 const size_t dataSize);
1093
1094 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1095 long* const data,
1096 const size_t dataSize);
1097
1098 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1099 long long* const data,
1100 const size_t dataSize);
1101
1102 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1103 float* const data,
1104 const size_t dataSize);
1105
1106 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1107 double* const data,
1108 const size_t dataSize);
1109
1110 virtual void getVariableDataOfParticleTrackInChunk(const ElemIdType particleId,
1111 size_t* const data,
1112 const size_t dataSize);
1113
1114 virtual void getVariableDataOfAllParticleTracksInChunk(unsigned char* const data,
1115 const size_t dataSize);
1116
1117 virtual void getVariableDataOfAllParticleTracksInChunk(char* const data,
1118 const size_t dataSize);
1119
1120 virtual void getVariableDataOfAllParticleTracksInChunk(short* const data,
1121 const size_t dataSize);
1122
1123 virtual void getVariableDataOfAllParticleTracksInChunk(unsigned int* const data,
1124 const size_t dataSize);
1125
1126 virtual void getVariableDataOfAllParticleTracksInChunk(int* const data,
1127 const size_t dataSize);
1128
1129 virtual void getVariableDataOfAllParticleTracksInChunk(long* const data,
1130 const size_t dataSize);
1131
1132 virtual void getVariableDataOfAllParticleTracksInChunk(long long* const data,
1133 const size_t dataSize);
1134
1135 virtual void getVariableDataOfAllParticleTracksInChunk(float* const data,
1136 const size_t dataSize);
1137
1138 virtual void getVariableDataOfAllParticleTracksInChunk(double* const data,
1139 const size_t dataSize);
1140
1141 virtual void getVariableDataOfAllParticleTracksInChunk(size_t* const data,
1142 const size_t dataSize);
1143
1144 virtual void endReadingVariableOfParticleTracksInChunk();
1145
1146 virtual void endReadingChunkOfParticleTrackGroup();
1147
1148 virtual void endReadingParticleTrackGroup();
1149
1150 virtual void endReadingParticleTracks();
1151
1152 virtual void endReadingPhase() const;
1153
1154 virtual void dump(std::string fileName = "settings.xml") const;
1155
1156 virtual void print(bool objectOnly = true) const;
1157
1158protected:
1159 bool fileExists(const std::string&) const;
1160
1161 void applyVariableRecipe(VariableIdType varId,
1162 AttributeName name,
1163 AttributeValue& value) const;
1164
1165private:
1166 size_t getValuesOfVariableLengthedVarForSetInRangeComm() const;
1167 size_t getValuesOfConstantLengthedVarForSetInRangeComm() const;
1168 size_t getValuesOfOtherVariableForSetComm() const;
1169
1170private:
1171 template <typename DType>
1172 size_t getValuesOfVariableForParticlesInInjectionCommon(DType* const vals,
1173 size_t const dataSize) const;
1174
1175private:
1176 std::unique_ptr<CffVariableRecipeProvider> _variableRecipeProvider;
1177 VariableTarget _varTarget;
1178 CffSetting _settings[CFF_DATA_CLASS_MAX];
1179};
1180
1181} // namespace ansys
1182
1183#endif // CFFSDK_CFFINTERFACE_CFFPROVIDER_HPP_
Base class that provides common function used by both CffConsumer and CffProvider classes.
Definition: CffBase.hpp:35
Class that provides functions to access data stored within a CFF database. The database may be stored...
Definition: CffProvider.hpp:21
CffZoneCategory
An enumeration that is used with ansys::CffBase::getNumZones, ansys::CffBase::getZoneIds,...
Definition: CffTypes.h:195
CffTargetCategory
An enumeration that represents the target models available within a CFF database.
Definition: CffTypes.h:109
CffPlainDataType
Datatypes available in certain CFF functions.
Definition: CffTypes.h:383
CffDataCacheMode
An enum indicates whether allow CFF API to cache heavy weight data while reading.
Definition: CffTypes.h:68
CffDataClass
An enumeration that is used within the API to caterorize types of CFF data.
Definition: CffTypes.h:415
CffCellType
An enumeration used to represet the type of a Cell element.
Definition: CffTypes.h:608
@ CFF_TARGET_CATEGORY_UNKNOWN
Definition: CffTypes.h:111
@ CFF_CASE
Definition: CffTypes.h:419
@ CFF_DATA_CLASS_MAX
Definition: CffTypes.h:423
std::string VariableTarget
Type used to represent the variable target ('C++' API only)
Definition: Types.hpp:219
std::vector< PartitionIdType > PartitionIds
Type used to represent a number of partition identifiers ('C++' API only)
Definition: Types.hpp:124
std::vector< InjectionName > InjectionNames
Type used to represent a number of particle injection names ('C++' API only)
Definition: Types.hpp:179
std::vector< VariableName > VariableNames
Type used to represent a number of variable names ('C++' API only)
Definition: Types.hpp:199
std::vector< TargetCategory > TargetCategories
Type used to represent a number of target categories ('C++' API only)
Definition: Types.hpp:129
std::vector< MeshIdType > MeshIds
Type used to represent a number of mesh identifiers ('C++' API only)
Definition: Types.hpp:119
std::string AttributeValue
Type used to represent the variable attribute value ('C++' API only)
Definition: Types.hpp:104
CffCountType CountType
Alias for CffCountType ('C++' API only)
Definition: Types.hpp:51
std::string VariableName
Type used to represent the name of a variable ('C++' API only)
Definition: Types.hpp:194
std::vector< ZoneIdType > ZoneIds
Type used to represent a number of zone identifiers('C++' API only)
Definition: Types.hpp:149
CffZoneIdType ZoneIdType
Alias for CffZoneIdType ('C++' API only)
Definition: Types.hpp:144
CffMeshIdType MeshIdType
Alias for CffMeshIdType ('C++' API only)
Definition: Types.hpp:26
CffPartitionIdType PartitionIdType
Alias for CffPartitionIdType ('C++' API only)
Definition: Types.hpp:31
std::string CategoryName
Type used to represent a category name ('C++' API only)
Definition: Types.hpp:134
CffTimeLevelType TimeLevelType
Alias for CffTimeLevelType ('C++' API only)
Definition: Types.hpp:109
CffPhaseIdType PhaseIdType
Alias for CffPhaseIdType ('C++' API only)
Definition: Types.hpp:154
std::vector< AttributeName > AttributeNames
Type used to represent a number of variable attribute names ('C++' API only)
Definition: Types.hpp:99
std::vector< VariableIdType > VariableIds
Type used to represent a number of variable identifiers ('C++' API only)
Definition: Types.hpp:189
CffVariableIdType VariableIdType
Type used to represent the identifier of a variable ('C++' API only)
Definition: Types.hpp:184
CffElemIdType ElemIdType
Alias for CffElemIdType ('C++' API only)
Definition: Types.hpp:56
std::string PhaseName
Type used to represent a name of a phase ('C++' API only)
Definition: Types.hpp:164
std::vector< CategoryName > CategoryNames
Type used to represent a number of category names ('C++' API only)
Definition: Types.hpp:139
std::string InjectionName
Type used to represent a particle injection name ('C++' API only)
Definition: Types.hpp:174
std::string AttributeName
Type used to represent the variable attribute name ('C++' API only)
Definition: Types.hpp:94
Definition: API.dox:1

Connect with Ansys