chombo-discharge
Loading...
Searching...
No Matches
CD_CdrIterator.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_CDRITERATOR_H
14#define CD_CDRITERATOR_H
15
16// Our includes
17#include <CD_CdrLayout.H>
18#include <CD_NamespaceHeader.H>
19
27template <class T>
29{
30public:
35 {
36 All,
37 Charged,
38 Negative,
39 Positive,
40 Neutral
41 };
42
46 CdrIterator() = delete;
47
53 CdrIterator(CdrLayout<T>& a_layout, const SpeciesIteration a_mode = SpeciesIteration::All);
54
58 virtual ~CdrIterator();
59
64 virtual int
66
71 virtual int
72 index() const;
73
77 virtual void
78 reset();
79
84 virtual bool
85 ok() const;
86
90 virtual void
91 operator++();
92
97 virtual RefCountedPtr<T>&
98 operator()();
99
104 virtual RefCountedPtr<CdrSpecies>&
105 getSpecies();
106
107protected:
112
117
122
127
131 Vector<RefCountedPtr<T>> m_solvers;
132
136 Vector<RefCountedPtr<CdrSpecies>> m_species;
137};
138
139#include <CD_NamespaceFooter.H>
140
141#include <CD_CdrIteratorImplem.H>
142
143#endif
Implementation of CdrIterator.H.
Declaration of a class that holds a set of CdrSolvers (to cut down on typing).
Iterator class for CdrLayout. This allows iteration through solvers (or subsets of solvers).
Definition CD_CdrIterator.H:29
virtual void reset()
Reset iterator to the beginning.
Definition CD_CdrIteratorImplem.H:66
Vector< RefCountedPtr< T > > m_solvers
Cdr solvers.
Definition CD_CdrIterator.H:131
bool m_isDefined
Defined or not.
Definition CD_CdrIterator.H:126
Vector< RefCountedPtr< CdrSpecies > > m_species
Cdr species.
Definition CD_CdrIterator.H:136
virtual bool ok() const
Check if the iterator is valid.
Definition CD_CdrIteratorImplem.H:77
virtual int index() const
Get current solver number (i.e. index in CdrLayouts solvers).
Definition CD_CdrIteratorImplem.H:55
virtual RefCountedPtr< CdrSpecies > & getSpecies()
Return the current species.
Definition CD_CdrIteratorImplem.H:145
virtual RefCountedPtr< T > & operator()()
Return the current solver.
Definition CD_CdrIteratorImplem.H:133
int m_isolver
Current solver index.
Definition CD_CdrIterator.H:116
virtual void operator++()
Increment the iterator. Behavior depends on iteration mode.
Definition CD_CdrIteratorImplem.H:88
CdrIterator()=delete
Disallowed weak construction. Always use the full constructor.
SpeciesIteration
Enum class for iterating through subsets of species.
Definition CD_CdrIterator.H:35
int m_numSolvers
Number of solvers.
Definition CD_CdrIterator.H:121
SpeciesIteration m_mode
Which species to iterate over.
Definition CD_CdrIterator.H:111
virtual ~CdrIterator()
Destructor (does nothing).
Definition CD_CdrIteratorImplem.H:37
virtual int getNumberOfSolvers()
Get number of solvers.
Definition CD_CdrIteratorImplem.H:44
Class for holding a set of CdrSolvers.
Definition CD_CdrLayout.H:40