1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
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.
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
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/>.
25 Foam::PressureGradientForce
28 Calculates particle pressure gradient force
31 PressureGradientForceI.H
32 PressureGradientForce.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef PressureGradientForce_H
37 #define PressureGradientForce_H
39 #include "ParticleForce.H"
40 #include "volFields.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 /*---------------------------------------------------------------------------*\
48 Class PressureGradientForce Declaration
49 \*---------------------------------------------------------------------------*/
51 template<class CloudType>
52 class PressureGradientForce
54 public ParticleForce<CloudType>
58 //- Name of velocity field
61 //- Velocity gradient field
62 const volTensorField* gradUPtr_;
67 //- Runtime type information
68 TypeName("pressureGradient");
73 //- Construct from mesh
78 const dictionary& dict
82 PressureGradientForce(const PressureGradientForce& pgf);
84 //- Construct and return a clone
85 virtual autoPtr<ParticleForce<CloudType> > clone() const
87 return autoPtr<ParticleForce<CloudType> >
89 new PressureGradientForce<CloudType>(*this)
95 virtual ~PressureGradientForce();
102 //- Return const access to the velocity gradient field
103 inline const volTensorField& gradU() const;
109 virtual void cacheFields(const bool store);
111 //- Calculate the non-coupled force
112 virtual forceSuSp calcCoupled
114 const typename CloudType::parcelType& p,
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125 } // End namespace Foam
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 #include "PressureGradientForceI.H"
132 #include "PressureGradientForce.C"
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 // ************************************************************************* //