Forward compatibility: flex
[foam-extend-3.2.git] / src / foam / db / Time / TimeState.H
blobe0b675776a7aae74edf5d457299a9fd8b92fea9e
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::TimeState
27 Description
28     The time value with time-stepping information, user-defined remapping, etc.
30 SourceFiles
31     TimeState.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef TimeState_H
36 #define TimeState_H
38 #include "dimensionedScalar.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46                            Class TimeState Declaration
47 \*---------------------------------------------------------------------------*/
50 class TimeState
52     public dimensionedScalar
55 protected:
57         label timeIndex_;
58         scalar deltaT_;
59         scalar deltaTSave_;
60         scalar deltaT0_;
61         bool deltaTchanged_;
63         label outputTimeIndex_;
64         bool  outputTime_;
67 public:
69     // Constructors
71         TimeState();
74     // Destructor
76         //- Virtual destructor
77         virtual ~TimeState();
80     // Member functions
82         // Access
84             //- Convert the user-time (e.g. CA deg) to real-time (s).
85             virtual scalar userTimeToTime(const scalar theta) const;
87             //- Convert the real-time (s) into user-time (e.g. CA deg)
88             virtual scalar timeToUserTime(const scalar t) const;
90             //- Return current time value
91             virtual scalar timeOutputValue() const;
93             //- Return current time index
94             virtual label timeIndex() const;
96             //- Return time step value
97             inline scalar deltaTValue() const
98             {
99                 return deltaT_;
100             }
102             //- Return old time step value
103             inline scalar deltaT0Value() const
104             {
105                 return deltaT0_;
106             }
108             //- Return time step
109             virtual dimensionedScalar deltaT() const;
111             //- Return old time step
112             virtual dimensionedScalar deltaT0() const;
115         // Check
117             //- Return true if this is an output time
118             virtual bool outputTime() const;
122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124 } // End namespace Foam
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 #endif
130 // ************************************************************************* //