chombo-discharge
Loading...
Searching...
No Matches
CD_BoxLoops.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_BOXLOOPS_H
14#define CD_BOXLOOPS_H
15
16// Chombo includes
17#include <Box.H>
18#include <IntVectSet.H>
19#include <DenseIntVectSet.H>
20#include <VoFIterator.H>
21#include <FaceIterator.H>
22#include <Vector.H>
23
24// Our includes
25#include <CD_Decorations.H>
26#include <CD_NamespaceHeader.H>
27
62namespace BoxLoops {
63
80#if CH_SPACEDIM == 2
81template <int Si, int Sj, typename Functor>
82ALWAYS_INLINE void
83loop(const Box& a_computeBox, Functor&& kernel);
84#else
85template <int Si, int Sj, int Sk, typename Functor>
86ALWAYS_INLINE void
87loop(const Box& a_computeBox, Functor&& kernel);
88#endif
89
95template <typename Functor>
96ALWAYS_INLINE void
97loop(const IntVectSet& a_ivs, Functor&& a_kernel);
98
104template <typename Functor>
105ALWAYS_INLINE void
106loop(const DenseIntVectSet& a_ivs, Functor&& a_kernel);
107
113template <typename Functor>
114ALWAYS_INLINE void
115loop(VoFIterator& a_iter, Functor&& a_kernel);
116
122template <typename Functor>
123ALWAYS_INLINE void
124loop(FaceIterator& a_iter, Functor&& a_kernel);
125
131template <typename T, typename Functor>
132ALWAYS_INLINE void
133loop(const Vector<T>& a_subset, Functor&& a_kernel);
134} // namespace BoxLoops
135
136#include <CD_NamespaceFooter.H>
137
138#include <CD_BoxLoopsImplem.H>
139
140#endif
Implementation of CD_BoxLoops.H.
Declaration of various decoration macros.
Namespace for encapsulating loop types.
Definition CD_BoxLoops.H:62
ALWAYS_INLINE void loop(const Box &a_computeBox, Functor &&kernel)
Launch a C++ kernel over a regular grid with compile-time per-dimension strides.
Definition CD_BoxLoopsImplem.H:39