#include <VectorField.hpp>
Public Member Functions | |
virtual int | dimension () const =0 |
virtual Vec | vector (Position bfr) const =0 |
![]() | |
template<class T > | |
T * | find (bool setup=true) const |
template<class T > | |
T * | interface (int levels=-999999, bool setup=true) const |
virtual string | itemName () const |
void | setup () |
string | typeAndName () const |
![]() | |
Item (const Item &)=delete | |
virtual | ~Item () |
void | addChild (Item *child) |
const vector< Item * > & | children () const |
virtual void | clearItemListProperty (const PropertyDef *property) |
void | destroyChild (Item *child) |
virtual bool | getBoolProperty (const PropertyDef *property) const |
virtual vector< double > | getDoubleListProperty (const PropertyDef *property) const |
virtual double | getDoubleProperty (const PropertyDef *property) const |
virtual string | getEnumProperty (const PropertyDef *property) const |
virtual int | getIntProperty (const PropertyDef *property) const |
virtual vector< Item * > | getItemListProperty (const PropertyDef *property) const |
virtual Item * | getItemProperty (const PropertyDef *property) const |
virtual string | getStringProperty (const PropertyDef *property) const |
int | getUtilityProperty (string name) const |
virtual void | insertIntoItemListProperty (const PropertyDef *property, int index, Item *item) |
Item & | operator= (const Item &)=delete |
Item * | parent () const |
virtual void | removeFromItemListProperty (const PropertyDef *property, int index) |
virtual void | setBoolProperty (const PropertyDef *property, bool value) |
virtual void | setDoubleListProperty (const PropertyDef *property, vector< double > value) |
virtual void | setDoubleProperty (const PropertyDef *property, double value) |
virtual void | setEnumProperty (const PropertyDef *property, string value) |
virtual void | setIntProperty (const PropertyDef *property, int value) |
virtual void | setItemProperty (const PropertyDef *property, Item *item) |
virtual void | setStringProperty (const PropertyDef *property, string value) |
void | setUtilityProperty (string name, int value) |
virtual string | type () const |
Protected Member Functions | |
VectorField () | |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
Private Types | |
using | BaseType = SimulationItem |
using | ItemType = VectorField |
Friends | |
class | ItemRegistry |
VectorField is an abstract base class for describing vector fields. Specifically, an instance of a VectorField subclass describes a normalized vector field, i.e. a spatial distribution of 3D vector values. The field is normalized so that the maximum length (norm) of the vectors in the field is equal to one. This also implies that the vector components are dimensionless. As a result, vector fields can be used for various purposes, including the specification of magnetic fields and velocity fields.
This base class defines the interface for all subclasses in the hierarchy. It consists of the key vector(Position) function, which returns the value of the vector field at a given position, and the dimension() function, which returns a value indicating the (lack of) spatial symmetry in the field. Each concrete subclass must implement these functions.
|
inlineprotected |
Default constructor for abstract Item subclass VectorField : "a vector field" .
|
pure virtual |
This function returns the dimension of the vector field, which depends on its (lack of) symmetry. A value of 1 means spherical symmetry, 2 means axial symmetry and 3 means none of these symmetries. The function's implementation must be provided in a subclass.
Implemented in CylindricalVectorField, HollowRadialVectorField, OffsetVectorFieldDecorator, RadialVectorField, RotateVectorFieldDecorator, and UnidirectionalVectorField.
This function returns the value of the vector field (a 3D vector with dimensionless components) at the position
Implemented in CylindricalVectorField, HollowRadialVectorField, OffsetVectorFieldDecorator, RadialVectorField, RotateVectorFieldDecorator, and UnidirectionalVectorField.