Navigation

Main Page
Download
Support
Installation
Tutorial
Examples
Reference Manual
   Version 1.0.6dev
      Class Index
      File List
   Version 1.0.6
   Version 1.0.5new_solver
   Version 1.0.5dev
   Version 1.0.5b
   Version 1.0.4dev
   Version 1.0.4
Publications


Hosted by Get Ion Beam Simulator at SourceForge.net. Fast, secure and Free Open Source software downloads
AxisymmetricVectorField Class Reference

Axisymmetric magnetic field based on on-axis data. More...

#include <axisymmetricvectorfield.hpp>

Inheritance diagram for AxisymmetricVectorField:
VectorField Field

Public Member Functions

 AxisymmetricVectorField (geom_mode_e geom_mode, const std::vector< double > &z, const std::vector< double > &Bz)
 Constructor. More...
 
 AxisymmetricVectorField (geom_mode_e geom_mode, double origo, double h, const std::vector< double > &Bz, uint32_t order=6)
 Constructor. More...
 
 AxisymmetricVectorField (const AxisymmetricVectorField &f)
 Copy constructor. More...
 
virtual ~AxisymmetricVectorField ()
 Virtual destructor. More...
 
virtual const Vec3D operator() (const Vec3D &x) const
 Operator for getting field value at x. More...
 
AxisymmetricVectorFieldoperator= (const AxisymmetricVectorField &f)
 Copy assignment. More...
 
- Public Member Functions inherited from VectorField
virtual ~VectorField ()
 Virtual destructor. More...
 
void get_minmax (const Mesh &mesh, double &min, double &max) const
 Search minimum and maximum vector length values of vector field at mesh nodes. More...
 
void get_minmax (const Mesh &mesh, Vec3D &min, Vec3D &max) const
 Search minimum and maximum for each vector component at mesh nodes. More...
 
- Public Member Functions inherited from Field
virtual ~Field ()
 Virtual destructor. More...
 

Detailed Description

Axisymmetric magnetic field based on on-axis data.

The magnetic field is constructed using cubic spline interpolation of user given data on axis and the expansion of the field off-axis with

\begin{eqnarray*} B_z(r,z) &=& B_z(0,z) - \frac{r^2}{4} B_z''(0,z) \\ B_r(r,z) &=& -\frac{r}{2} B_z'(0,z) \end{eqnarray*}

where the third and higher derivatives have been truncated (see J. Rodney, M. Vaughan, "Representation of Axisymmetric Magnetic Fields in Computer Programs", IEEE Transactions on electron devices 19, 144 (1972) for more details).

Constructor & Destructor Documentation

◆ AxisymmetricVectorField() [1/3]

AxisymmetricVectorField::AxisymmetricVectorField ( geom_mode_e  geom_mode,
const std::vector< double > &  z,
const std::vector< double > &  Bz 
)

Constructor.

Constructor for axisymmetric magnetic field based on an array of magnetic field data on the symmetry axis. If geom_mode is MODE_CYL the symmetry axis is x. If geom_mode is MODE_3D, the symmetry axis is z. Other geometry modes are not supported.

The magnetic field is constructed using cubic spline interpolation of user given data on axis and the expansion of the field off-axis with

\begin{eqnarray*} B_z(r,z) &=& B_z(0,z) - \frac{r^2}{4} B_z''(0,z) \\ B_r(r,z) &=& -\frac{r}{2} B_z'(0,z), \end{eqnarray*}

where the third and higher derivatives have been truncated.

The magnetic field outside the defined z is zero. No extrapolation is done.

◆ AxisymmetricVectorField() [2/3]

AxisymmetricVectorField::AxisymmetricVectorField ( geom_mode_e  geom_mode,
double  origo,
double  h,
const std::vector< double > &  Bz,
uint32_t  order = 6 
)

Constructor.

Constructor for axisymmetric magnetic field based on an array of magnetic field data on the symmetry axis. If geom_mode is MODE_CYL the symmetry axis is x. If geom_mode is MODE_3D, the symmetry axis is z. Other geometry modes are not supported.

The magnetic field is constructed using linear interpolation and finite difference derivatives up to 6th order for the Bz data on axis and the expansion of the field off-axis with

\begin{eqnarray*} B_z(r,z) &=& B_z(0,z) - \frac{r^2}{4} B_z''(0,z) + \frac{r^4}{64} B_z^{(iv)}(0,z) - \frac{r^6}{2304} B_z^{(vi)}(0,z) \\ B_r(r,z) &=& -\frac{r}{2} B_z'(0,z) + \frac{r^3}{16} B_z''' - \frac{r^5}{384} B_z^{(v)}, \end{eqnarray*}

The order used in evaluation is defined by parameter order, which defaults to the maximum allowed order of 6.

The magnetic field outside the defined z is extrapolated.

◆ AxisymmetricVectorField() [3/3]

AxisymmetricVectorField::AxisymmetricVectorField ( const AxisymmetricVectorField f)

Copy constructor.

◆ ~AxisymmetricVectorField()

AxisymmetricVectorField::~AxisymmetricVectorField ( )
virtual

Virtual destructor.

Member Function Documentation

◆ operator()()

const Vec3D AxisymmetricVectorField::operator() ( const Vec3D x) const
virtual

Operator for getting field value at x.

Implements VectorField.

◆ operator=()

AxisymmetricVectorField & AxisymmetricVectorField::operator= ( const AxisymmetricVectorField f)

Copy assignment.


The documentation for this class was generated from the following files:


Reference manual for Ion Beam Simulator 1.0.6dev
Generated by Doxygen 1.9.1 on Thu Sep 11 2025 09:37:24.