File parallel_boundary_region.hxx#

class BoundaryRegionPar : public BoundaryRegionBase#

Public Functions

inline BoundaryRegionPar(const std::string &name, int dir, Mesh *passmesh)#
inline BoundaryRegionPar(const std::string &name, BndryLoc loc, int dir, Mesh *passmesh)#
inline void add_point(Ind3D ind, BoutReal x, BoutReal y, BoutReal z, BoutReal length, signed char valid)#

Add a point to the boundary.

inline void add_point(int ix, int iy, int iz, BoutReal x, BoutReal y, BoutReal z, BoutReal length, signed char valid)#
inline virtual void first() final#

Move the region iterator to the start.

inline virtual void next() final#

Get the next element in the loop over every element from inside out (in X or Y first)

inline virtual bool isDone() final#

Returns true if outside domain. Can use this with nested nextX, nextY.

inline Ind3D ind() const#
inline BoutReal s_x() const#
inline BoutReal s_y() const#
inline BoutReal s_z() const#
inline BoutReal length() const#
inline signed char valid() const#
inline void setValid(signed char val)#
inline bool contains(const BoundaryRegionPar &bndry) const#
inline BoutReal extrapolate_o1(const Field3D &f) const#
inline BoutReal extrapolate_o2(const Field3D &f) const#
inline void dirichlet_o1(Field3D &f, BoutReal value) const#
inline void dirichlet_o2(Field3D &f, BoutReal value) const#
inline void dirichlet_o3(Field3D &f, BoutReal value) const#
inline void neumann_o1(Field3D &f, BoutReal value) const#
inline void neumann_o2(Field3D &f, BoutReal value) const#
inline void neumann_o3(Field3D &f, BoutReal value) const#

Public Members

const int dir#

Private Types

using IndicesVec = std::vector<Indices>#
using IndicesIter = IndicesVec::iterator#

Private Functions

inline const BoutReal &ynext(const Field3D &f) const#
inline BoutReal &ynext(Field3D &f) const#
inline const BoutReal &yprev(const Field3D &f) const#
inline BoutReal &yprev(Field3D &f) const#

Private Members

IndicesVec bndry_points#

Vector of points in the boundary.

IndicesIter bndry_position#

Current position in the boundary points.

Private Static Functions

static inline Ind3D xyz2ind(int x, int y, int z, Mesh *mesh)#

Private Static Attributes

static constexpr BoutReal small_value = 1e-2#
struct Indices#

Public Members

Ind3D index#
RealPoint intersection#
BoutReal length#
signed char valid#
struct RealPoint#

Public Members

BoutReal s_x#
BoutReal s_y#
BoutReal s_z#
namespace parallel_stencil#

Boundary region for parallel direction. This contains a vector of points that are inside the boundary.

Functions

inline BoutReal pow(BoutReal val, int exp)#
inline BoutReal dirichlet_o1(BoutReal spacing0, BoutReal value0)#
inline BoutReal dirichlet_o2(BoutReal spacing0, BoutReal value0, BoutReal spacing1, BoutReal value1)#
inline BoutReal neumann_o2(BoutReal spacing0, BoutReal value0, BoutReal spacing1, BoutReal value1)#
inline BoutReal dirichlet_o3(BoutReal spacing0, BoutReal value0, BoutReal spacing1, BoutReal value1, BoutReal spacing2, BoutReal value2)#
inline BoutReal neumann_o3(BoutReal spacing0, BoutReal value0, BoutReal spacing1, BoutReal value1, BoutReal spacing2, BoutReal value2)#