File parallel_boundary_op.hxx#

class BoundaryOpPar : public BoundaryOpBase#

Subclassed by BoundaryOpParTemp< BoundaryOpPar_dirichlet >, BoundaryOpParTemp< BoundaryOpPar_neumann >, BoundaryOpParTemp< BoundaryOpPar_neumann_c2_simple >, BoundaryOpParTemp< BoundaryOpPar_dirichlet_interp >, BoundaryOpParTemp< BoundaryOpPar_dirichlet_O3 >, BoundaryOpParTemp< T >

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 BoundaryRegionPar &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>
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#
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 : public BoundaryOpParTemp<BoundaryOpPar_dirichlet>#

Public Functions

virtual void apply(Field3D &f, BoutReal t) override#
inline void apply(Field2D &f) final#
inline void apply(Field2D &f, BoutReal t) final#
inline void apply(Field3D &f) override#
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_O3 : public BoundaryOpParTemp<BoundaryOpPar_dirichlet_O3>#

Public Functions

virtual void apply(Field3D &f, BoutReal t) override#
inline void apply(Field2D &f) final#
inline void apply(Field2D &f, BoutReal t) final#
inline void apply(Field3D &f) override#
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_interp : public BoundaryOpParTemp<BoundaryOpPar_dirichlet_interp>#

Public Functions

virtual void apply(Field3D &f, BoutReal t) override#
inline void apply(Field2D &f) final#
inline void apply(Field2D &f, BoutReal t) final#
inline void apply(Field3D &f) override#
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_neumann : public BoundaryOpParTemp<BoundaryOpPar_neumann>#

Public Functions

virtual void apply(Field3D &f, BoutReal t) override#
inline void apply(Field2D &f) final#
inline void apply(Field2D &f, BoutReal t) final#
inline void apply(Field3D &f) override#
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_neumann_c2_simple : public BoundaryOpParTemp<BoundaryOpPar_neumann_c2_simple>#

Public Functions

virtual void apply(Field3D &f, BoutReal t) override#
inline void apply(Field2D &f) final#
inline void apply(Field2D &f, BoutReal t) final#
inline void apply(Field3D &f) override#
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)#