13#ifndef CD_ITOITERATORIMPLEM_H
14#define CD_ITOITERATORIMPLEM_H
21#include <CD_NamespaceHeader.H>
26 CH_TIME(
"ItoIterator<T>::ItoIterator<T>");
30 m_numSolvers = m_solvers.size();
40 CH_TIME(
"ItoIterator<T>::~ItoIterator<T>");
47 CH_assert(m_isDefined);
56 CH_assert(m_isDefined);
65 CH_assert(m_isDefined);
74 return (m_isolver < m_numSolvers);
81 CH_assert(m_isDefined);
83 if (m_mode == SpeciesIteration::All) {
89 for (
int isolver = m_isolver; this->ok(); ++isolver) {
90 const RefCountedPtr<ItoSpecies>& species = m_species[isolver];
92 if (m_mode == SpeciesIteration::Charged) {
93 if (species->getChargeNumber() != 0) {
99 else if (m_mode == SpeciesIteration::Negative) {
100 if (species->getChargeNumber() < 0) {
106 else if (m_mode == SpeciesIteration::Positive) {
107 if (species->getChargeNumber() > 0) {
113 else if (m_mode == SpeciesIteration::Neutral) {
114 if (species->getChargeNumber() == 0) {
128 CH_assert(m_isDefined);
129 CH_assert(m_isolver < m_numSolvers);
131 return m_solvers[m_isolver];
135RefCountedPtr<ItoSpecies>&
138 CH_assert(m_isDefined);
139 CH_assert(m_isolver < m_numSolvers);
141 return m_species[m_isolver];
144#include <CD_NamespaceFooter.H>
Declaration of an iterator class for ItoLayout.
"Iterator" class for going through solvers in an ItoLayout.
Definition CD_ItoIterator.H:26
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 int index() const
Get current solver number.
Definition CD_ItoIteratorImplem.H:54
virtual RefCountedPtr< ItoSpecies > & getSpecies()
Get current species.
Definition CD_ItoIteratorImplem.H:136
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
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
virtual Vector< RefCountedPtr< ItoSpecies > > & getSpecies()
Get species.
Definition CD_ItoLayoutImplem.H:356
virtual Vector< RefCountedPtr< T > > & getSolvers()
Get solvers all solvers.
Definition CD_ItoLayoutImplem.H:349