Loading...
Searching...
No Matches
indexedParticle.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) 2011-2017 OpenFOAM Foundation
9 Copyright (C) 2019-2024 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::indexedParticle
29
30Description
31 Adds label index to base particle
32
33SourceFiles
34 indexedParticle.H
35
36\*---------------------------------------------------------------------------*/
37
38#ifndef Foam_indexedParticle_H
39#define Foam_indexedParticle_H
40
41#include "particle.H"
42#include "IOstream.H"
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
49/*---------------------------------------------------------------------------*\
50 Class indexedParticle Declaration
51\*---------------------------------------------------------------------------*/
52
54:
55 public particle
56{
57 // Private Data
58
59 label index_;
60
61
62public:
63
64 // Constructors
65
66 //- Construct from a position and a cell.
67 // Searches for the rest of the required topology.
68 // Other properties are zero initialised.
70 (
71 const polyMesh& mesh,
72 const vector& position,
73 const label celli = -1,
74 const label index = 0
75 )
76 :
77 particle(mesh, position, celli),
78 index_(index)
79 {}
80
81 //- Construct from components
83 (
84 const polyMesh& mesh,
86 const label celli,
87 const label tetFacei,
88 const label tetPti,
89 const label index = 0
90 )
91 :
92 particle(mesh, coordinates, celli, tetFacei, tetPti),
93 index_(index)
94 {}
95
96 //- Construct from Istream
98 (
99 const polyMesh& mesh,
100 Istream& is,
101 bool readFields = true,
102 bool newFormat = true
103 )
104 :
105 particle(mesh, is, readFields, newFormat)
106 {}
107
108 //- Construct as a copy
110 :
111 particle(p),
112 index_(p.index_)
113 {}
114
115 //- Return a clone
116 virtual autoPtr<particle> clone() const
117 {
118 return particle::Clone(*this);
119 }
120
121
122 // Member Functions
123
124 label index() const noexcept { return index_; }
125
126 label& index() noexcept { return index_; }
127};
128
129
130// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131
132} // End namespace Foam
133
134// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135
136#endif
137
138// ************************************************************************* //
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition Istream.H:60
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition autoPtr.H:65
Adds label index to base particle.
indexedParticle(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const label index=0)
Construct from components.
virtual autoPtr< particle > clone() const
Return a clone.
label & index() noexcept
label index() const noexcept
indexedParticle(const polyMesh &mesh, const vector &position, const label celli=-1, const label index=0)
Construct from a position and a cell.
indexedParticle(const indexedParticle &p)
Construct as a copy.
indexedParticle(const polyMesh &mesh, Istream &is, bool readFields=true, bool newFormat=true)
Construct from Istream.
Base particle class.
Definition particle.H:72
vector position() const
Return current particle position.
Definition particleI.H:283
static void readFields(TrackCloudType &c)
Read the fields associated with the owner cloud.
static autoPtr< particle > Clone(const Derived &p)
Clone a particle.
Definition particle.H:552
const polyMesh & mesh() const noexcept
Return the mesh database.
Definition particleI.H:110
const barycentric & coordinates() const noexcept
Return current particle coordinates.
Definition particleI.H:116
particle(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from components.
Definition particle.C:507
Mesh consisting of general polyhedral cells.
Definition polyMesh.H:79
volScalarField & p
Namespace for OpenFOAM.
const direction noexcept
Definition scalarImpl.H:265
Barycentric< scalar > barycentric
A scalar version of the templated Barycentric.
Definition barycentric.H:45
Vector< scalar > vector
Definition vector.H:57