massive.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2025 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "massive.H"
29 
30 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
31 
32 namespace Foam
33 {
34 namespace clouds
35 {
37 }
38 }
39 
40 
42 
43 
44 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
45 
46 Foam::clouds::massive::massive(const cloud& c, const shaped& shapedCloud)
47 :
48  rho
49  (
50  c.stateField<scalar>
51  (
52  IOobject
53  (
54  "rho",
55  c.time().name(),
56  c.mesh(),
57  IOobject::MUST_READ,
58  IOobject::AUTO_WRITE
59  ),
60  c.mesh()
61  )
62  ),
63  m
64  (
65  c.derivedField<scalar>
66  (
67  mName,
68  [&]
69  (
70  const LagrangianModelRef& model,
71  const LagrangianSubMesh& subMesh
72  )
73  {
74  return shapedCloud.v(model, subMesh)*rho(model, subMesh);
75  }
76  )
77  )
78 {}
79 
80 
81 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
82 
84 {}
85 
86 
87 // ************************************************************************* //
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Definition: IOobject.H:99
Simple wrapper to provide an optional reference to a Lagrangian model.
Mesh that relates to a sub-section of a Lagrangian mesh. This is used to construct fields that relate...
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
Definition: cloud.H:63
Base class for clouds with particles with mass.
Definition: massive.H:51
virtual ~massive()
Destructor.
Definition: massive.C:83
static const word mName
Name of mass fields.
Definition: massive.H:60
massive(const cloud &, const shaped &)
Construct from a reference to the cloud and its base classes.
Definition: massive.C:46
CloudStateField< scalar > & rho
Density.
Definition: massive.H:66
Base class for clouds with particles with mass.
Definition: shaped.H:51
const CloudDerivedField< scalar > & v
Volume.
Definition: shaped.H:83
A class for handling words, derived from string.
Definition: word.H:62
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
defineTypeNameAndDebug(coupled, 0)
const dimensionedScalar c
Speed of light in a vacuum.
Namespace for OpenFOAM.
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.