ParticleStressModel.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) 2013-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
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 Class
27  Foam::ParticleStressModel
28 
29 Group
30  grpLagrangianIntermediateMPPICParticleStressSubModels
31 
32 Description
33  Base class for inter-particle stress models.
34 
35 SourceFiles
36  exponential.C
37 
38 \*---------------------------------------------------------------------------*/
39 
40 #ifndef ParticleStressModel_H
41 #define ParticleStressModel_H
42 
43 #include "Field.H"
44 #include "FieldField.H"
45 #include "dictionary.H"
46 #include "runTimeSelectionTables.H"
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 /*---------------------------------------------------------------------------*\
54  Class ParticleStressModel Declaration
55 \*---------------------------------------------------------------------------*/
56 
58 {
59 private:
60 
61  //- Private member functions
62 
63  //- No copy assignment
64  void operator=(const ParticleStressModel&) = delete;
65 
66 
67 protected:
68 
69  // Protected data
70 
71  //- Close pack volume fraction
72  scalar alphaPacked_;
73 
74 
75 public:
76 
77  //- Runtime type information
78  TypeName("particleStressModel");
79 
80  //- Declare runtime constructor selection table
82  (
83  autoPtr,
85  dictionary,
86  (const dictionary& dict),
87  (dict)
88  );
89 
90 
91  //- Constructors
92 
93  //- Construct from components
95 
96  //- Construct a copy
98 
99  //- Construct and return a clone
100  virtual autoPtr<ParticleStressModel> clone() const = 0;
101 
102 
103  //- Selector
105  (
106  const dictionary& dict
107  );
108 
109 
110  //- Destructor
111  virtual ~ParticleStressModel();
112 
113 
114  //- Member Functions
115 
116  //- Access max volume fraction
117  scalar alphaPacked() const;
118 
119  //- Collision stress
120  virtual tmp<Field<scalar>> tau
121  (
122  const Field<scalar>& alpha,
123  const Field<scalar>& rho,
124  const Field<scalar>& uRms
125  ) const = 0;
126 
127  //- Collision stress derivative w.r.t. the volume fraction
129  (
130  const Field<scalar>& alpha,
131  const Field<scalar>& rho,
132  const Field<scalar>& uRms
133  ) const = 0;
134 
135  //- Collision stress using FieldFields
137  (
140  const FieldField<Field, scalar>& uRms
141  ) const;
142 };
143 
144 
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 
147 } // End namespace Foam
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 #endif
152 
153 // ************************************************************************* //
Foam::FieldField
A field of fields is a PtrList of fields with reference counting.
Definition: FieldField.H:53
FieldField.H
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::ParticleStressModel::~ParticleStressModel
virtual ~ParticleStressModel()
Destructor.
Definition: ParticleStressModel.C:90
Foam::constant::atomic::alpha
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Definition: readThermalProperties.H:212
Foam::ParticleStressModel::alphaPacked_
scalar alphaPacked_
Close pack volume fraction.
Definition: ParticleStressModel.H:71
rho
rho
Definition: readInitialConditions.H:88
Foam::ParticleStressModel::tau
virtual tmp< Field< scalar > > tau(const Field< scalar > &alpha, const Field< scalar > &rho, const Field< scalar > &uRms) const =0
Collision stress.
Foam::Field< scalar >
Field.H
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::ParticleStressModel::alphaPacked
scalar alphaPacked() const
Member Functions.
Definition: ParticleStressModel.C:96
Foam::ParticleStressModel::dTaudTheta
virtual tmp< Field< scalar > > dTaudTheta(const Field< scalar > &alpha, const Field< scalar > &rho, const Field< scalar > &uRms) const =0
Collision stress derivative w.r.t. the volume fraction.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::ParticleStressModel::clone
virtual autoPtr< ParticleStressModel > clone() const =0
Construct and return a clone.
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::ParticleStressModel::New
static autoPtr< ParticleStressModel > New(const dictionary &dict)
Selector.
Definition: ParticleStressModel.C:63
runTimeSelectionTables.H
Macros to ease declaration of run-time selection tables.
dictionary.H
Foam::ParticleStressModel::TypeName
TypeName("particleStressModel")
Runtime type information.
Foam::ParticleStressModel
Base class for inter-particle stress models.
Definition: ParticleStressModel.H:56
Foam::ParticleStressModel::ParticleStressModel
ParticleStressModel(const dictionary &dict)
Constructors.
Definition: ParticleStressModel.C:43
Foam::ParticleStressModel::declareRunTimeSelectionTable
declareRunTimeSelectionTable(autoPtr, ParticleStressModel, dictionary,(const dictionary &dict),(dict))
Declare runtime constructor selection table.