150 #ifndef Foam_ccmReader_H 151 #define Foam_ccmReader_H 175 class ccmGlobalState;
200 static const char* cellTableOpti[];
203 static const char* cellTableOptstr[];
209 const std::unique_ptr<options> options_;
215 UNKNOWN, BAD, OKAY, READ
220 nodeStatus geometryStatus_;
223 nodeStatus solutionStatus_;
240 label nInternalFaces_;
305 void operator=(
const reader&) =
delete;
309 inline labelList patchStartList(label initial)
const;
312 void printSizes()
const;
315 int ccmGetEntityIndex(ccmNODE node);
319 std::string ccmReadNodestr(
const char* opt, ccmNODE node);
323 std::string ccmReadOptstr(
const char* opt, ccmID node);
326 void readMap(
const ccmID& mapId,
labelList& data);
329 bool detectGeometry();
332 void readProblemDescription(
const ccmID& probNode);
337 void readInterfaceDefinitions();
340 void readProblemDescription_boundaryRegion(
const ccmID& probNode);
343 void readProblemDescription_cellTable(
const ccmID& probNode);
346 void readMeshTopology(
const scalar scaleFactor=1.0);
351 const ccmID& verticesNode,
352 const scalar scaleFactor = 1.0
356 void readCells(
const ccmID& topoNode);
359 void readInterfaces(
const ccmID& cellsNode);
362 void readMonitoring(
const ccmID& topoId);
369 void removeUnwanted();
375 void renumberInterfaces(
const labelUList& oldToNew);
380 void cleanupInterfaces();
383 void mergeInplaceInterfaces();
392 void writeMeshLabelList
395 const word& propertyName,
407 bool detectSolution();
411 void determineFieldInfo
413 const ccmID& fieldSetNode,
538 return interfaceDefinitions_;
544 return boundaryRegion_;
556 return cellTable_.
fluids();
562 return cellTable_.
solids();
569 return solutionTable_;
583 return lagrangianTable_;
590 const word& solutionName,
591 const word& fieldName,
592 const bool wallData =
false 615 bool mergeInterfaces_;
619 bool renameInterfaces_;
626 bool useNumberedNames_;
645 mergeInterfaces_(false),
646 renameInterfaces_(true),
647 removeBaffles_(false),
648 useNumberedNames_(false),
670 return keepFluid_ || keepPorous_ || !keepSolid_;
FOAM_DLL_EXPORT void printInfo() const
Print general information about the mesh.
constexpr options() noexcept
Construct with default values.
A class for handling file names.
const interfaceDefinitions & interfaceDefinitionsInfo() const noexcept
Return interface definitions map.
Containers for holding STARCCM interface definitions.
Base functionality common to reader and writer classes.
static const fileName null
An empty fileName.
static FOAM_DLL_EXPORT void warnDuplicates(const word &context, const wordList &lst)
Warn about repeated name.
Map< word > solids() const
Return a Map of (id => name) for solids.
Reads CCM files as written by PROSTAR/STARCCM.
scalar undefScalar() const noexcept
Value to assign for undefined solutions (default: NaN)
bool removeBaffles() const noexcept
Remove baffles by merging their respective faces (default false)
A simple container for options an IOstream can normally have.
A list of available interface definitions.
bool keepPorous() const noexcept
Keep porous regions (default true)
Various functions to operate on Lists.
FOAM_DLL_EXPORT const reader::options & option() const
Reference to the reader options.
const dimensionedScalar e
Elementary charge.
const cellTable & cellTableInfo() const noexcept
Return cell table.
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
A class for handling words, derived from Foam::string.
FOAM_DLL_EXPORT void clearGeom()
Clear out some information after obtaining a polyMesh.
const boundaryRegion & boundaryTableInfo() const noexcept
Return boundaryRegion table.
FOAM_DLL_EXPORT bool hasGeometry()
Return true if file has geometry associated with it.
Map< word > fluids() const
Return a Map of (id => name) for fluids.
A HashTable similar to std::unordered_map.
The cellTable persistent data saved as a Map<dictionary>.
const fieldTable & fields()
Return table of available fields.
scalar mergeTol() const noexcept
Merge tolerance for points (default 0.05e-3)
bool renameInterfaces() const noexcept
Rename interface boundaries as InterfaceN_0, InterfaceN_1.
Map< word > fluids() const
Return a list of names corresponding to fluids.
FOAM_DLL_EXPORT bool hasSolution()
Return true if file has solutions associated with it.
FOAM_DLL_EXPORT ~reader()
Destructor (closes file)
Containers for holding ccm solution and field listings.
FOAM_DLL_EXPORT tmp< scalarField > readField(const word &solutionName, const word &fieldName, const bool wallData=false)
Read solution and field combination.
Map< word > solids() const
Return a list of names corresponding to solids.
FOAM_DLL_EXPORT void writeAux(const objectRegistry ®istry) const
Write cellTable, boundaryRegion and interface information.
bool keepSolid() const noexcept
Keep solid regions (default true)
bool keptSomeRegion() const noexcept
Some region (fluid, porous, solid) is kept.
A list of the available fields.
FOAM_DLL_EXPORT bool remapMeshInfo(const objectRegistry ®istry, const fileName &remappingDictName=fileName::null)
Remap cellTable and boundaryRegion according to dictionary.
FOAM_DLL_EXPORT autoPtr< polyMesh > mesh(const objectRegistry ®istry, const fileName &remappingDictName=fileName::null)
Construct the polyMesh from the read geometry.
FOAM_DLL_EXPORT bool readGeometry(const scalar scaleFactor=1.0)
Detect and read geometry if possible.
FOAM_DLL_EXPORT void writeMesh(const polyMesh &mesh, IOstreamOption streamOpt=IOstreamOption(IOstreamOption::BINARY)) const
Write the polyMesh.
bool mergeInterfaces() const noexcept
Merge in-place interfaces (default true)
bool useNumberedNames() const noexcept
Use numbered names (eg, patch_0, zone_0) instead of human-readable.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Mesh consisting of general polyhedral cells.
bool keepFluid() const noexcept
Keep fluid regions (default true)
A class for managing temporary objects.
Registry of regIOobjects.
The boundaryRegion persistent data saved as a Map<dictionary>.
const fieldTable & lagrangian()
Return table of available lagrangian fields.
const labelList & origCellId() const noexcept
Map to original cell Id.
const solutionTable & solutions()
Return table of available solutions.
const labelList & origFaceId() const noexcept
Map to original face Id.
A HashTable to objects of type <T> with a label key.