OpenFOAM
v2406
The open source CFD toolbox
writeAreaFields.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-2023 OpenCFD Ltd.
9
-------------------------------------------------------------------------------
10
License
11
This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
12
13
InNamespace
14
Foam
15
16
Description
17
Read finiteArea fields from disk and write ensightFaMesh
18
19
\*---------------------------------------------------------------------------*/
20
21
#ifndef ensight_writeAreaFields_H
22
#define ensight_writeAreaFields_H
23
24
#include "
readFields.H
"
25
#include "
areaFaMesh.H
"
26
27
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
28
29
namespace
Foam
30
{
31
32
template
<
class
Type>
33
bool
writeAreaField
34
(
35
ensightCase& ensCase,
36
const
ensightFaMesh
& ensMesh,
37
const
tmp
<
AreaField<Type>
>& tfield
38
)
39
{
40
if
(!tfield)
41
{
42
return
false
;
43
}
44
const
auto
&
field
= tfield();
45
46
autoPtr<ensightFile>
os
=
47
ensCase.newData<Type>(
field
.name());
48
49
bool
wrote = ensightOutput::writeAreaField<Type>
50
(
51
os
.ref(),
52
field
,
53
ensMesh
54
);
55
56
tfield.clear();
57
return
wrote;
58
}
59
60
61
template
<
class
Type>
62
label
writeAreaFields
63
(
64
ensightCase& ensCase,
65
const
ensightFaMesh
& ensMesh,
66
const
IOobjectList
& objects
67
)
68
{
69
typedef
AreaField<Type>
FieldType;
70
71
const
faMesh
&
mesh
= ensMesh.
mesh
();
72
73
label
count
= 0;
74
75
for
(
const
IOobject
&
io
: objects.
csorted
<FieldType>())
76
{
77
if
78
(
79
writeAreaField<Type>
80
(
81
ensCase,
82
ensMesh,
83
getField<FieldType>(
io
,
mesh
)
84
)
85
)
86
{
87
Info
<<
' '
<<
io
.
name
();
88
++
count
;
89
}
90
}
91
92
return
count
;
93
}
94
95
96
label
writeAllAreaFields
97
(
98
ensightCase& ensCase,
99
const
ensightFaMesh
& ensMesh,
100
const
IOobjectList
& objects
101
)
102
{
103
#undef ensight_WRITE_FIELD
104
#define ensight_WRITE_FIELD(PrimitiveType) \
105
writeAreaFields<PrimitiveType> \
106
( \
107
ensCase, \
108
ensMesh, \
109
objects \
110
)
111
112
label
count
= 0;
113
count
+=
ensight_WRITE_FIELD
(scalar);
114
count
+=
ensight_WRITE_FIELD
(
vector
);
115
count
+=
ensight_WRITE_FIELD
(
sphericalTensor
);
116
count
+=
ensight_WRITE_FIELD
(
symmTensor
);
117
count
+=
ensight_WRITE_FIELD
(
tensor
);
118
119
#undef ensight_WRITE_FIELD
120
return
count
;
121
}
122
123
}
// End namespace Foam
124
125
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126
127
#endif
128
129
// ************************************************************************* //
Foam::faMesh
Finite area mesh (used for 2-D non-Euclidian finite area method) defined using a patch of faces on a ...
Definition:
faMesh.H:133
Foam::writeAreaFields
label writeAreaFields(ensightCase &ensCase, const ensightFaMesh &ensMesh, const IOobjectList &objects)
Definition:
writeAreaFields.H:65
field
rDeltaTY field()
Foam::SymmTensor< scalar >
Foam::IOobjectList
List of IOobjects with searching and retrieving facilities. Implemented as a HashTable, so the various sorted methods should be used if traversing in parallel.
Definition:
IOobjectList.H:55
Foam::IOobject::name
const word & name() const noexcept
Return the object name.
Definition:
IOobjectI.H:195
Foam::ensightFaMesh
Encapsulation of area meshes for writing in ensight format.
Definition:
ensightFaMesh.H:58
Foam::GeometricField
Generic GeometricField class.
Definition:
pointMVCWeight.H:58
Foam::writeAllAreaFields
label writeAllAreaFields(ensightCase &ensCase, const ensightFaMesh &ensMesh, const IOobjectList &objects)
Definition:
writeAreaFields.H:99
Foam::SphericalTensor< scalar >
Foam::ensightFaMesh::mesh
const faMesh & mesh() const noexcept
Reference to the underlying faMesh.
Definition:
ensightFaMesh.H:139
Foam::BitOps::count
unsigned int count(const UList< bool > &bools, const bool val=true)
Count number of 'true' entries.
Definition:
BitOps.H:73
mesh
dynamicFvMesh & mesh
Definition:
createDynamicFvMesh.H:6
Foam::vector
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
os
OBJstream os(runTime.globalPath()/outputName)
ensight_WRITE_FIELD
#define ensight_WRITE_FIELD(PrimitiveType)
Foam::writeAreaField
bool writeAreaField(ensightCase &ensCase, const ensightFaMesh &ensMesh, const tmp< AreaField< Type >> &tfield)
Definition:
writeAreaFields.H:36
readFields.H
Helper routines for reading a field or fields, for foamToEnsight.
Foam::Info
messageStream Info
Information stream (stdout output on master, null elsewhere)
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition:
HashPtrTable.H:48
areaFaMesh.H
io
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
Foam::tmp
A class for managing temporary objects.
Definition:
HashPtrTable.H:50
Foam::tensor
Tensor of scalars, i.e. Tensor<scalar>.
Foam::IOobject
Defines the attributes of an object for which implicit objectRegistry management is supported...
Definition:
IOobject.H:180
Foam::IOobjectList::csorted
UPtrList< const IOobject > csorted() const
The sorted list of IOobjects with headerClassName == Type::typeName.
Foam
Namespace for OpenFOAM.
Definition:
atmBoundaryLayer.C:26
applications
utilities
postProcessing
dataConversion
foamToEnsight
writeAreaFields.H
Generated by
1.8.14