DOLFIN-X
DOLFIN-X C++ interface
timing.h
1 // Copyright (C) 2005-2010 Anders Logg, 2015 Jan Blechta
2 //
3 // This file is part of DOLFINX (https://www.fenicsproject.org)
4 //
5 // SPDX-License-Identifier: LGPL-3.0-or-later
6 
7 #pragma once
8 
9 #include <cstdint>
10 #include <dolfinx/common/Table.h>
11 #include <mpi.h>
12 #include <set>
13 #include <string>
14 #include <tuple>
15 
16 namespace dolfinx
17 {
18 
23 enum class TimingType : std::int32_t
24 {
25  wall = 0,
26  user = 1,
27  system = 2
28 };
29 
34 Table timings(std::set<TimingType> type);
35 
41 void list_timings(MPI_Comm mpi_comm, std::set<TimingType> type);
42 
48 std::tuple<std::size_t, double, double, double> timing(std::string task);
49 
50 } // namespace dolfinx