chombo-discharge
Loading...
Searching...
No Matches
CD_ItoIterator.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_ITOITERATOR_H
14#define CD_ITOITERATOR_H
15
16#include <CD_ItoLayout.H>
17#include <CD_NamespaceHeader.H>
18
24template <class T>
26{
27public:
32 {
33 All,
34 Charged,
35 Negative,
36 Positive,
37 Neutral
38 };
39
43 ItoIterator() = delete;
44
51 ItoIterator(ItoLayout<T>& a_layout, const SpeciesIteration a_mode = SpeciesIteration::All);
52
56 virtual ~ItoIterator();
57
62 virtual int
64
69 virtual int
70 index() const;
71
75 virtual void
76 reset();
77
82 virtual bool
83 ok();
84
88 virtual void
89 operator++();
90
95 virtual RefCountedPtr<T>&
96 operator()();
97
102 virtual RefCountedPtr<ItoSpecies>&
103 getSpecies();
104
105protected:
110
115
120
125
129 Vector<RefCountedPtr<T>> m_solvers;
130
134 Vector<RefCountedPtr<ItoSpecies>> m_species;
135};
136
137#include <CD_NamespaceFooter.H>
138
139#include <CD_ItoIteratorImplem.H>
140
141#endif
Implementation of CD_ItoIterator.H.
Declaration of a class that holds a set of ItoSolvers.
"Iterator" class for going through solvers in an ItoLayout.
Definition CD_ItoIterator.H:26
int m_numSolvers
Number of solvers.
Definition CD_ItoIterator.H:119
virtual void operator++()
Increment. This is different for different iteration modes.
Definition CD_ItoIteratorImplem.H:79
virtual bool ok()
Ok or not.
Definition CD_ItoIteratorImplem.H:72
virtual RefCountedPtr< T > & operator()()
Get current solver.
Definition CD_ItoIteratorImplem.H:126
virtual ~ItoIterator()
Destructor (does nothing)
Definition CD_ItoIteratorImplem.H:38
virtual int index() const
Get current solver number.
Definition CD_ItoIteratorImplem.H:54
virtual RefCountedPtr< ItoSpecies > & getSpecies()
Get current species.
Definition CD_ItoIteratorImplem.H:136
Vector< RefCountedPtr< ItoSpecies > > m_species
Solver species.
Definition CD_ItoIterator.H:134
bool m_isDefined
Defined or not.
Definition CD_ItoIterator.H:124
Vector< RefCountedPtr< T > > m_solvers
Solvers.
Definition CD_ItoIterator.H:129
int m_isolver
Current solver pointed to by the iterator.
Definition CD_ItoIterator.H:114
virtual void reset()
Reset iterator to the first solver.
Definition CD_ItoIteratorImplem.H:63
virtual int getNumberOfSolvers()
Get number of solvers.
Definition CD_ItoIteratorImplem.H:45
ItoIterator()=delete
Disallowed constructor – use the full constructor.
SpeciesIteration m_mode
Which species to iterate over.
Definition CD_ItoIterator.H:109
SpeciesIteration
Enum which specifies which species to iterate through.
Definition CD_ItoIterator.H:32
Class for holding a set of ItoSolvers.
Definition CD_ItoLayout.H:32