chombo-discharge
Loading...
Searching...
No Matches
CD_RtIteratorImplem.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_RTITERATORIMPLEM_H
14#define CD_RTITERATORIMPLEM_H
15
16// Our includes
17#include <CD_RtIterator.H>
18#include <CD_NamespaceHeader.H>
19
24template <class T>
26{
27 CH_TIME("RtIterator::RtIterator");
28
29 m_solvers = a_layout.getSolvers();
30 m_species = a_layout.getSpecies();
31 m_num = m_solvers.size();
32
33 this->reset();
34}
35
36template <class T>
38{
39 CH_TIME("RtIterator::~RtIterator");
40}
41
42template <class T>
43int
45{
46 return m_num;
47}
48
49template <class T>
50int
52{
53 return m_isolver;
54}
55
56template <class T>
57void
59{
60 m_isolver = 0;
61}
62
63template <class T>
64bool
66{
67 return (m_isolver < m_num);
68}
69
70template <class T>
71void
73{
74 m_isolver++;
75}
76
77template <class T>
80{
81 CH_assert(m_isolver < m_num);
82 return m_solvers[m_isolver];
83}
84template <class T>
87{
88 CH_assert(m_isolver < m_num);
89 return m_species[m_isolver];
90}
91
92#include <CD_NamespaceFooter.H>
93
94#endif
Iterator class for RtLayout.
virtual RefCountedPtr< T > & operator()()
Get the solver pointed to by the iterator.
Definition CD_RtIteratorImplem.H:79
virtual int index() const
Get current solver number/index.
Definition CD_RtIteratorImplem.H:51
virtual ~RtIterator()
Destructor (does nothing)
Definition CD_RtIteratorImplem.H:37
virtual void operator++()
Incrementation operator. Cycles to next solver.
Definition CD_RtIteratorImplem.H:72
virtual void reset()
Reset iterator to first solver.
Definition CD_RtIteratorImplem.H:58
virtual int getNumberOfSolvers()
Get number of solvers.
Definition CD_RtIteratorImplem.H:44
virtual bool ok()
Check if we can cycle further through the solvers.
Definition CD_RtIteratorImplem.H:65
RtIterator()=delete
Empty constructor.
virtual RefCountedPtr< RtSpecies > & getSpecies()
Get current species pointed to by the iterator.
Definition CD_RtIteratorImplem.H:86
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26