initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / OSspecific / POSIX / clockTime / clockTime.C
blobe66bd7df32a69b7c61bafb797dee7c61b88d95b1
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
19     for more details.
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
25 \*---------------------------------------------------------------------------*/
27 #include "clockTime.H"
28 #include "scalar.H"
29 #include <sys/time.h>
31 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 namespace Foam
36 // * * * * * * * * * * * * * * * Static Members  * * * * * * * * * * * * * * //
39 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
41 void clockTime::getTime(struct timeval& t)
43     gettimeofday(&t, NULL);
47 double clockTime::timeDifference
49     const struct timeval& start,
50     const struct timeval& end
53     return end.tv_sec - start.tv_sec + 1E-6*(end.tv_usec - start.tv_usec);
57 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
59 clockTime::clockTime()
61     getTime(startTime_);
62     lastTime_ = startTime_;
63     newTime_ = startTime_;
67 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
69 double clockTime::elapsedTime() const
71     getTime(newTime_);
72     return timeDifference(startTime_, newTime_);
76 double clockTime::timeIncrement() const
78     lastTime_ = newTime_;
79     getTime(newTime_);
80     return timeDifference(lastTime_, newTime_);
84 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
86 } // End namespace Foam
88 // ************************************************************************* //