1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright held by original author
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 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, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 Virtual base class for ODEs derived by Proper Orthogonal Decomposition
32 Hrvoje Jasak, Wikki Ltd. All rights reserved.
37 \*---------------------------------------------------------------------------*/
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51 Class PODODE Declaration
52 \*---------------------------------------------------------------------------*/
63 //- Reference to dictionary
64 const dictionary& dict_;
67 // Private Member Functions
69 //- Disallow default bitwise copy construct
70 PODODE(const PODODE&);
72 //- Disallow default bitwise assignment
73 void operator=(const PODODE&);
78 //- Runtime type information
82 // Declare run-time constructor selection table
84 declareRunTimeSelectionTable
91 const dictionary& dict
99 //- Return a reference to the selected POD model
100 static autoPtr<PODODE> New
103 const dictionary& dict
109 //- Construct from dictionary
113 const dictionary& dict
130 const fvMesh& mesh() const
135 //- Return dictionary
136 const dictionary& dict() const
142 // Solution variables
144 //- Return reference to interpolation coefficients
145 virtual scalarField& coeffs() = 0;
147 //- Return reference to interpolation coefficients
148 virtual const scalarField& coeffs() const = 0;
150 //- Clear ortho-normal base
151 virtual void clearBase() const = 0;
153 //- Update reconstructed fields
154 virtual void updateFields() const = 0;
156 //- Clear reconstructed field
157 virtual void clearFields() const = 0;
162 //- Update ODE after the solution, advancing by delta
163 virtual void update(const scalar delta)
167 //- Write reconstructed fields
168 virtual void write() const = 0;
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
174 } // End namespace Foam
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 // ************************************************************************* //