ensightCellsI.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) 2016-2022 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
29
30inline Foam::label Foam::ensightCells::add(const elemType etype, label id)
31{
32 // Linear addressing location
33 const label index = offsets_[etype] + sizes_[etype]++;
34
35 addressing()[index] = id;
36
37 return index;
38}
39
40
41// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
42
44{
45 return manifold_;
46}
47
48
49inline const char* Foam::ensightCells::key(const elemType etype)
50{
51 return elemNames[etype];
52}
53
54
56{
57 return sizes_;
58}
59
60
61inline Foam::label Foam::ensightCells::total(const elemType etype) const
62{
63 return sizes_[etype];
64}
65
66
67inline Foam::label Foam::ensightCells::size(const elemType etype) const
68{
69 return (offsets_[etype+1] - offsets_[etype]);
70}
71
72
74{
75 return labelRange(offsets_[etype], offsets_[etype+1] - offsets_[etype]);
76}
77
78
80{
81 return addressing();
82}
83
84
85inline const Foam::labelUList
87{
88 return addressing().slice(range(etype));
89}
90
91
92inline void Foam::ensightCells::incrCellIds(const label off)
93{
94 incrAddressing(off);
95}
96
97
98inline void Foam::ensightCells::decrCellIds(const label off)
99{
100 decrAddressing(off);
101}
102
103
104// ************************************************************************* //
scalar range
A 1D vector of objects of type <T> with a fixed length <N>.
Definition: FixedList.H:81
const Key & key() const
The key associated with the iterator.
SubList< T > slice(const label pos, label len=-1)
Return SubList slice (non-const access) - no range checking.
Definition: SubList.H:165
bool manifold() const noexcept
Manifold mesh cells detected? Globally consistent quantity.
Definition: ensightCellsI.H:43
void incrCellIds(const label off)
Increase cell ids by specified offset value.
Definition: ensightCellsI.H:92
elemType
Supported ensight 'Cell' element types.
Definition: ensightCells.H:66
label size() const noexcept
Processor-local size of all elements.
Definition: ensightPart.H:154
label total() const
The global size of all element types.
Definition: ensightCells.C:111
void decrCellIds(const label off)
Decrease face ids by specified offset value.
Definition: ensightCellsI.H:98
const FixedList< label, nTypes > & totals() const
The global sizes for each element type.
Definition: ensightCellsI.H:55
const labelList & cellIds() const
Processor-local cell ids of all elements.
Definition: ensightCellsI.H:79
label index() const noexcept
The index in a list (0-based)
Definition: ensightPart.H:124
const labelList & addressing() const noexcept
Element addressing.
Definition: ensightPart.H:76
Sums a given list of (at least two or more) fields and outputs the result into a new field,...
Definition: add.H:161
A range or interval of labels defined by a start and a size.
Definition: labelRange.H:58
const direction noexcept
Definition: Scalar.H:223