createMeshAccounting.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2021-2022 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
12
13Description
14 Additional mesh accounting (Ensight)
15
16\*---------------------------------------------------------------------------*/
17
18PtrList<ensightCase> ensightCases(regionNames.size());
19PtrList<ensightMesh> ensightMeshes(regionNames.size());
20
21PtrList<faMesh> meshesFa(regionNames.size());
22PtrList<ensightCase> ensightCasesFa(regionNames.size());
23PtrList<ensightFaMesh> ensightMeshesFa(regionNames.size());
24
25{
26 forAll(regionNames, regioni)
27 {
28 const fvMesh& mesh = meshes[regioni];
29
30 const word& regionName = regionNames[regioni];
31 const word& regionDir = polyMesh::regionName(regionName);
33 fileName ensCasePath(outputDir);
34 word ensCaseName(args.globalCaseName());
35
36 if (!regionDir.empty())
37 {
38 ensCaseName = regionName;
39 ensCasePath /= regionName;
40
41 // Handle very rare naming collision with Ensight directories
42 if (regionName == "data")
43 {
44 ensCasePath += "-region";
45 }
46 }
47
49 (
50 regioni,
51 new ensightMesh(mesh, writeOpts)
52 );
53 ensightMeshes[regioni].verbose(optVerbose);
54
55 // New ensight case file, initialize header etc.
56 ensightCases.set
57 (
58 regioni,
59 new ensightCase(ensCasePath, ensCaseName, caseOpts)
60 );
61
62 if (doFiniteArea)
63 {
64 autoPtr<faMesh> faMeshPtr(faMesh::TryNew(mesh));
65
66 if (faMeshPtr)
67 {
69 (
70 regioni,
71 new ensightCase
72 (
73 ensCasePath/"finite-area",
74 "finite-area",
75 caseOpts
76 )
77 );
78
79 meshesFa.set(regioni, std::move(faMeshPtr));
80
82 (
83 regioni,
84 new ensightFaMesh(meshesFa[regioni])
85 );
86 ensightMeshesFa[regioni].verbose(optVerbose);
87 }
88 }
89 }
90}
91
92
93// ************************************************************************* //
const fileName & globalCaseName() const noexcept
Return global case name.
Definition: argListI.H:75
dynamicFvMesh & mesh
Foam::word regionName(Foam::polyMesh::defaultRegion)
Foam::PtrList< Foam::fvMesh > meshes(regionNames.size())
const word & regionDir
PtrList< ensightCase > ensightCases(regionNames.size())
PtrList< ensightMesh > ensightMeshes(regionNames.size())
PtrList< ensightFaMesh > ensightMeshesFa(regionNames.size())
PtrList< faMesh > meshesFa(regionNames.size())
PtrList< ensightCase > ensightCasesFa(regionNames.size())
wordList regionNames
Foam::argList args(argc, argv)
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:333