Epetra Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
Epetra_Time.h
Go to the documentation of this file.
1/*
2//@HEADER
3// ************************************************************************
4//
5// Epetra: Linear Algebra Services Package
6// Copyright 2011 Sandia Corporation
7//
8// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9// the U.S. Government retains certain rights in this software.
10//
11// Redistribution and use in source and binary forms, with or without
12// modification, are permitted provided that the following conditions are
13// met:
14//
15// 1. Redistributions of source code must retain the above copyright
16// notice, this list of conditions and the following disclaimer.
17//
18// 2. Redistributions in binary form must reproduce the above copyright
19// notice, this list of conditions and the following disclaimer in the
20// documentation and/or other materials provided with the distribution.
21//
22// 3. Neither the name of the Corporation nor the names of the
23// contributors may be used to endorse or promote products derived from
24// this software without specific prior written permission.
25//
26// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39//
40// ************************************************************************
41//@HEADER
42*/
43
44#ifndef EPETRA_TIME_H
45#define EPETRA_TIME_H
46
48
58#include "Epetra_ConfigDefs.h"
59#include "Epetra_Object.h"
60#include "Epetra_Comm.h"
61
62#ifdef EPETRA_MPI
63#include <mpi.h>
64#else
65#if ICL || defined(_WIN32)
66#include <time.h>
67#else
68#include <sys/time.h>
69#ifndef MINGW
70#include <sys/resource.h>
71#endif
72#endif
73#endif
74
75class EPETRA_LIB_DLL_EXPORT Epetra_Time: public Epetra_Object {
76
77 public:
79
83 Epetra_Time(const Epetra_Comm & Comm);
84
86
88 Epetra_Time(const Epetra_Time& Time);
89
91
95 double WallTime(void) const;
96
98
102 void ResetStartTime(void);
103
105
111 double ElapsedTime(void) const;
112
114
116 virtual ~Epetra_Time(void);
117
119 {
120 StartTime_ = src.StartTime_;
121 Comm_ = src.Comm_;
122 return( *this );
123 }
124
125 private:
126
129
130};
131
132#endif /* EPETRA_TIME_H */
Epetra_Comm: The Epetra Communication Abstract Base Class.
Definition Epetra_Comm.h:73
Epetra_Object: The base Epetra class.
Epetra_Time: The Epetra Timing Class.
Definition Epetra_Time.h:75
const Epetra_Comm * Comm_
double StartTime_
Epetra_Time & operator=(const Epetra_Time &src)