File parallel_boundary_op.hxx#

class BoundaryOpPar : public BoundaryOpBase#

Subclassed by BoundaryOpParTemp< BoundaryOpPar_neumann_o2, true >, BoundaryOpParTemp< BoundaryOpPar_neumann_o1, true >, BoundaryOpParTemp< BoundaryOpPar_dirichlet_o1 >, BoundaryOpParTemp< BoundaryOpPar_dirichlet_o2 >, BoundaryOpParTemp< BoundaryOpPar_dirichlet_o3 >, BoundaryOpParTemp< BoundaryOpPar_neumann_o3, true >, BoundaryOpParTemp< T, isNeumann >

Public Functions

BoundaryOpPar() = default#
inline BoundaryOpPar(BoundaryRegionPar *region, std::shared_ptr<FieldGenerator> value)#
inline BoundaryOpPar(BoundaryRegionPar *region, Field3D *value)#
inline BoundaryOpPar(BoundaryRegionPar *region, BoutReal value)#
inline BoundaryOpPar(BoundaryRegionPar *region)#
~BoundaryOpPar() override = default#
virtual BoundaryOpPar *clone(BoundaryRegionPar *region, const std::list<std::string> &args) = 0#
virtual BoundaryOpPar *clone(BoundaryRegionPar *region, Field3D *f) = 0#
inline virtual BoundaryOpPar *clone(BoundaryRegionPar *region, const std::list<std::string> &args, const std::map<std::string, std::string> &keywords)#

Public Members

BoundaryRegionPar *bndry = {nullptr}#

Protected Types

enum class ValueType#

Where to take boundary values from - the generator, field or BoutReal.

Values:

enumerator GEN#
enumerator FIELD#
enumerator REAL#

Protected Functions

BoutReal getValue(const BoundaryRegionParIter &bndry, BoutReal t)#

Protected Attributes

std::shared_ptr<FieldGenerator> gen_values#

Possible ways to get boundary values.

Field3D *field_values = {nullptr}#
BoutReal real_value = {0.}#
const ValueType value_type = {ValueType::REAL}#
template<class T, bool isNeumann = false>
class BoundaryOpParTemp : public BoundaryOpPar#

Public Functions

inline virtual BoundaryOpPar *clone(BoundaryRegionPar *region, const std::list<std::string> &args) override#
inline virtual BoundaryOpPar *clone(BoundaryRegionPar *region, Field3D *f) override#
inline virtual void apply(Field2D &f) final#

Apply a boundary condition on field f.

inline virtual void apply(Field2D &f, BoutReal t) final#
inline virtual void apply(Field3D &f) override#
inline virtual void apply(Field3D &f, BoutReal t) override#
BoundaryOpPar() = default#
inline BoundaryOpPar(BoundaryRegionPar *region, std::shared_ptr<FieldGenerator> value)#
inline BoundaryOpPar(BoundaryRegionPar *region, Field3D *value)#
inline BoundaryOpPar(BoundaryRegionPar *region, BoutReal value)#
inline BoundaryOpPar(BoundaryRegionPar *region)#
BoundaryOpPar *clone(BoundaryRegionPar *region, const std::list<std::string> &args) = 0
BoundaryOpPar *clone(BoundaryRegionPar *region, Field3D *f) = 0
inline BoundaryOpPar *clone(BoundaryRegionPar *region, const std::list<std::string> &args, const std::map<std::string, std::string> &keywords)#
void apply(Field2D &f) = 0

Apply a boundary condition on field f.

inline void apply(Field2D &f, BoutReal t)
void apply(Field3D &f) = 0
inline void apply(Field3D &f, BoutReal t)
inline void apply(Vector2D &f)#
inline void apply(Vector3D &f)#
class BoundaryOpPar_dirichlet_o1 : public BoundaryOpParTemp<BoundaryOpPar_dirichlet_o1>#

Public Static Functions

static inline void apply_stencil(Field3D &f, const BoundaryRegionParIter &pnt, BoutReal value)#
class BoundaryOpPar_dirichlet_o2 : public BoundaryOpParTemp<BoundaryOpPar_dirichlet_o2>#

Public Static Functions

static inline void apply_stencil(Field3D &f, const BoundaryRegionParIter &pnt, BoutReal value)#
class BoundaryOpPar_dirichlet_o3 : public BoundaryOpParTemp<BoundaryOpPar_dirichlet_o3>#

Public Static Functions

static inline void apply_stencil(Field3D &f, const BoundaryRegionParIter &pnt, BoutReal value)#
class BoundaryOpPar_neumann_o1 : public BoundaryOpParTemp<BoundaryOpPar_neumann_o1, true>#

Public Static Functions

static inline void apply_stencil(Field3D &f, const BoundaryRegionParIter &pnt, BoutReal value)#
class BoundaryOpPar_neumann_o2 : public BoundaryOpParTemp<BoundaryOpPar_neumann_o2, true>#

Public Static Functions

static inline void apply_stencil(Field3D &f, const BoundaryRegionParIter &pnt, BoutReal value)#
class BoundaryOpPar_neumann_o3 : public BoundaryOpParTemp<BoundaryOpPar_neumann_o3, true>#

Public Static Functions

static inline void apply_stencil(Field3D &f, const BoundaryRegionParIter &pnt, BoutReal value)#