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
26template <class T>
28{
29public:
34 {
35 All,
36 Charged,
37 Negative,
38 Positive,
39 Neutral
40 };
41
45 CdrIterator() = delete;
46
52 CdrIterator(CdrLayout<T>& a_layout, const SpeciesIteration a_mode = SpeciesIteration::All);
53
57 virtual ~CdrIterator();
58
63 virtual int
65
70 virtual int
71 index() const;
72
76 virtual void
77 reset();
78
83 virtual bool
84 ok() const;
85
89 virtual void
90 operator++();
91
96 virtual RefCountedPtr<T>&
97 operator()();
98
104 getSpecies();
105
106protected:
111
116
121
126
131
136};
137
138#include <CD_NamespaceFooter.H>
139
140#include <CD_CdrIteratorImplem.H>
141
142#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:28
virtual void reset()
Reset iterator to the beginning.
Definition CD_CdrIteratorImplem.H:66
Vector< RefCountedPtr< T > > m_solvers
Cdr solvers.
Definition CD_CdrIterator.H:130
bool m_isDefined
Defined or not.
Definition CD_CdrIterator.H:125
Vector< RefCountedPtr< CdrSpecies > > m_species
Cdr species.
Definition CD_CdrIterator.H:135
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:115
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:34
int m_numSolvers
Number of solvers.
Definition CD_CdrIterator.H:120
SpeciesIteration m_mode
Which species to iterate over.
Definition CD_CdrIterator.H:110
virtual ~CdrIterator()
Destructor (does nothing).
Definition CD_CdrIteratorImplem.H:37
virtual int getNumberOfSolvers()
Get number of solvers.
Definition CD_CdrIteratorImplem.H:44
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38