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 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
12 
13 Description
14  Additional mesh accounting (Ensight)
15 
16 \*---------------------------------------------------------------------------*/
17 
18 PtrList<ensightCase> ensightCases(regionNames.size());
19 PtrList<ensightMesh> ensightMeshes(regionNames.size());
20 
21 PtrList<faMesh> meshesFa(regionNames.size());
22 PtrList<ensightCase> ensightCasesFa(regionNames.size());
23 PtrList<ensightFaMesh> ensightMeshesFa(regionNames.size());
24 
25 {
26  forAll(regionNames, regioni)
27  {
28  const fvMesh& mesh = meshes[regioni];
29 
30  const word& regionName = regionNames[regioni];
32 
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 
48  ensightMeshes.set
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  {
68  ensightCasesFa.set
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 
81  ensightMeshesFa.set
82  (
83  regioni,
84  new ensightFaMesh(meshesFa[regioni])
85  );
86  ensightMeshesFa[regioni].verbose(optVerbose);
87  }
88  }
89  }
90 }
91 
92 
93 // ************************************************************************* //
PtrList< faMesh > meshesFa(regionNames.size())
const fileName & globalCaseName() const noexcept
Return global case name.
Definition: argListI.H:68
wordList regionNames
PtrList< ensightCase > ensightCases(regionNames.size())
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:414
Foam::word regionName(Foam::polyMesh::defaultRegion)
dynamicFvMesh & mesh
PtrList< ensightFaMesh > ensightMeshesFa(regionNames.size())
Foam::PtrList< Foam::fvMesh > meshes(regionNames.size())
PtrList< ensightMesh > ensightMeshes(regionNames.size())
PtrList< ensightCase > ensightCasesFa(regionNames.size())
const word & regionDir
Foam::argList args(argc, argv)