Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2_BlockHelper_Timers.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Ifpack2: Templated Object-Oriented Algebraic Preconditioner Package
4 //
5 // Copyright 2009 NTESS and the Ifpack2 contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef IFPACK2_BLOCKHELPER_TIMERS_HPP
11 #define IFPACK2_BLOCKHELPER_TIMERS_HPP
12 
13 namespace Ifpack2 {
14 
15 namespace BlockHelperDetails {
16 
17 #if defined(HAVE_IFPACK2_BLOCKTRIDICONTAINER_TIMERS)
18 #define IFPACK2_BLOCKHELPER_TIMER(label, varname) TEUCHOS_FUNC_TIME_MONITOR_DIFF(label, varname);
19 #define IFPACK2_BLOCKHELPER_TIMER_FENCE(execution_space) execution_space().fence();
20 #define IFPACK2_BLOCKHELPER_TIMER_DEFAULT_FENCE() Kokkos::DefaultExecutionSpace().fence();
21 #else
22 #define IFPACK2_BLOCKHELPER_TIMER(label, varname)
23 #define IFPACK2_BLOCKHELPER_TIMER_FENCE(execution_space)
24 #define IFPACK2_BLOCKHELPER_TIMER_DEFAULT_FENCE()
25 #endif
26 
27 #define IFPACK2_BLOCKHELPER_TIMER_WITH_FENCE(label, varname, execution_space) \
28  IFPACK2_BLOCKHELPER_TIMER_FENCE(execution_space) \
29  IFPACK2_BLOCKHELPER_TIMER(label, varname)
30 
31 } // namespace BlockHelperDetails
32 
33 } // namespace Ifpack2
34 
35 #endif