File boundary_iterator.hxx#

class BoundaryRegionIter#

Subclassed by BoundaryRegionIterY

Public Functions

inline BoundaryRegionIter(int x, int y, int bx, int by, Mesh *mesh)#
inline bool operator!=(const BoundaryRegionIter &rhs) const#
inline Ind3D ind() const#
inline BoundaryRegionIter &operator++()#
virtual void _next() = 0#
inline BoundaryRegionIter &operator*()#
inline void dirichlet_o2(Field3D &f, BoutReal value) const#
inline BoutReal extrapolate_grad_o2(const Field3D &f) const#
inline BoutReal extrapolate_sheath_o2(const Field3D &f) const#
inline BoutReal extrapolate_next_o2(const Field3D &f) const#
inline BoutReal extrapolate_next_o2(const std::function<BoutReal(int yoffset, Ind3D ind)> &f) const#
inline BoutReal interpolate_sheath_o2(const Field3D &f) const#
inline BoutReal interpolate_sheath_o2(const std::function<BoutReal(int yoffset, Ind3D ind)> &f) const#
inline BoutReal extrapolate_sheath_o2(const std::function<BoutReal(int yoffset, Ind3D ind)> &f) const#
inline BoutReal extrapolate_sheath_free(const Field3D &f, SheathLimitMode mode) const#
inline void set_free(Field3D &f, SheathLimitMode mode) const#
inline void limitFree(Field3D &f) const#
inline bool is_lower() const#
inline void neumann_o1(Field3D &f, BoutReal grad) const#
inline void neumann_o2(Field3D &f, BoutReal grad) const#
inline void limit_at_least(Field3D &f, BoutReal value) const#
inline BoutReal &ynext(Field3D &f) const#
inline const BoutReal &ynext(const Field3D &f) const#
inline BoutReal &yprev(Field3D &f) const#
inline const BoutReal &yprev(const Field3D &f) const#
inline BoutReal &ythis(Field3D &f) const#
inline const BoutReal &ythis(const Field3D &f) const#
inline void setYPrevIfValid(Field3D &f, BoutReal val) const#
inline void setAll(Field3D &f, const BoutReal val) const#
virtual ~BoundaryRegionIter() = default#

Public Members

const int dir#

Public Static Functions

static inline int abs_offset()#

Protected Attributes

int z = {0}#
int x#
int y#
const int bx#
const int by#

Private Functions

inline int nx() const#
inline int ny() const#
inline int nz() const#
inline Ind3D xyz2ind(int x, int y, int z) const#

Private Members

Mesh *localmesh#
class BoundaryRegionIterY : public BoundaryRegionIter#

Public Functions

inline BoundaryRegionIterY(RangeIterator r, int y, int dir, bool is_end, Mesh *mesh)#
inline bool operator!=(const BoundaryRegionIterY &rhs)#
inline virtual void _next() override#

Private Members

RangeIterator r#
bool is_end#
class NewBoundaryRegionY#

Public Functions

inline NewBoundaryRegionY(Mesh *mesh, bool lower, RangeIterator r)#
inline BoundaryRegionIterY begin(bool begin = true)#
inline BoundaryRegionIterY end()#

Private Members

Mesh *mesh#
bool lower#
RangeIterator r#