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
types.hpp File Reference

Base types. More...

Go to the source code of this file.

Macros

#define PARTICLE_T   0
 Keyword for accessing particle time. More...
 
#define PARTICLE_X   1
 Keyword for accessing particle position in x-direction. More...
 
#define PARTICLE_VX   2
 Keyword for accessing particle velocity in x-direction. More...
 
#define PARTICLE_Y   3
 Keyword for accessing particle position in y-direction. More...
 
#define PARTICLE_VY   4
 Keyword for accessing particle velocity in y-direction. More...
 
#define PARTICLE_R   3
 Keyword for accessing particle position in r-direction. More...
 
#define PARTICLE_VR   4
 Keyword for accessing particle velocity in r-direction. More...
 
#define PARTICLE_W   5
 Keyword for accessing particle angular velocity. More...
 
#define PARTICLE_Z   5
 Keyword for accessing particle position in z-direction. More...
 
#define PARTICLE_VZ   6
 Keyword for accessing particle velocity in z-direction. More...
 

Typedefs

typedef field_type_e field_diag_type_e
 Field diagnostic type. More...
 

Enumerations

enum  geom_mode_e { MODE_1D = 0 , MODE_2D , MODE_CYL , MODE_3D }
 Geometry mode enum. More...
 
enum  field_extrpl_e {
  FIELD_EXTRAPOLATE = 0 , FIELD_MIRROR , FIELD_ANTIMIRROR , FIELD_SYMMETRIC_POTENTIAL ,
  FIELD_ZERO , FIELD_NAN
}
 Field extrapolation mode. More...
 
enum  field_type_e {
  FIELD_NONE = 0 , FIELD_EPOT , FIELD_SCHARGE , FIELD_TRAJDENS ,
  FIELD_EFIELD , FIELD_EFIELD_X , FIELD_EFIELD_Y , FIELD_EFIELD_Z ,
  FIELD_BFIELD , FIELD_BFIELD_X , FIELD_BFIELD_Y , FIELD_BFIELD_Z
}
 Field type. More...
 
enum  bound_e { BOUND_DIRICHLET = 0 , BOUND_NEUMANN }
 Boundary type. More...
 
enum  trajectory_interpolation_e { TRAJECTORY_INTERPOLATION_POLYNOMIAL = 0 , TRAJECTORY_INTERPOLATION_LINEAR }
 Trajectory interpolation type. More...
 
enum  scharge_deposition_e { SCHARGE_DEPOSITION_PIC = 0 , SCHARGE_DEPOSITION_LINEAR }
 Space charge depostition type. More...
 
enum  coordinate_axis_e { AXIS_X = 0 , AXIS_Y , AXIS_R , AXIS_Z }
 Coordinate axis identifier. More...
 
enum  trajectory_diagnostic_e {
  DIAG_NONE = 0 , DIAG_T , DIAG_X , DIAG_VX ,
  DIAG_Y , DIAG_R , DIAG_VY , DIAG_VR ,
  DIAG_W , DIAG_VTHETA , DIAG_Z , DIAG_VZ ,
  DIAG_O , DIAG_VO , DIAG_P , DIAG_VP ,
  DIAG_Q , DIAG_VQ , DIAG_XP , DIAG_YP ,
  DIAG_RP , DIAG_AP , DIAG_ZP , DIAG_OP ,
  DIAG_PP , DIAG_CURR , DIAG_EK , DIAG_QM ,
  DIAG_CHARGE , DIAG_MASS , DIAG_NO
}
 Type of diagnostic for trajectories. More...
 

Variables

const char * coordinate_axis_string []
 String describing axis names without unit. More...
 
const char * coordinate_axis_string_with_unit []
 String describing axis names with unit. More...
 
const char * trajectory_diagnostic_string []
 String describing diagnostic without unit. More...
 
const char * trajectory_diagnostic_string_with_unit []
 String describing diagnostic with unit. More...
 
const char * trajectory_diagnostic_string_unit []
 String for separate diagnostic unit. More...
 

Detailed Description

Base types.

Macro Definition Documentation

◆ PARTICLE_R

#define PARTICLE_R   3

Keyword for accessing particle position in r-direction.

◆ PARTICLE_T

#define PARTICLE_T   0

Keyword for accessing particle time.

◆ PARTICLE_VR

#define PARTICLE_VR   4

Keyword for accessing particle velocity in r-direction.

◆ PARTICLE_VX

#define PARTICLE_VX   2

Keyword for accessing particle velocity in x-direction.

◆ PARTICLE_VY

#define PARTICLE_VY   4

Keyword for accessing particle velocity in y-direction.

◆ PARTICLE_VZ

#define PARTICLE_VZ   6

Keyword for accessing particle velocity in z-direction.

◆ PARTICLE_W

#define PARTICLE_W   5

Keyword for accessing particle angular velocity.

◆ PARTICLE_X

#define PARTICLE_X   1

Keyword for accessing particle position in x-direction.

◆ PARTICLE_Y

#define PARTICLE_Y   3

Keyword for accessing particle position in y-direction.

◆ PARTICLE_Z

#define PARTICLE_Z   5

Keyword for accessing particle position in z-direction.

Typedef Documentation

◆ field_diag_type_e

Field diagnostic type.

Deprecated:
Provided for compatibility only. Replaced by multipurpose field type selector field_type_e.

Enumeration Type Documentation

◆ bound_e

enum bound_e

Boundary type.

Boundary conditions for solids and simulation box boundaries. See class Bound for more information.

Enumerator
BOUND_DIRICHLET 

Dirichlet boundary condition.

BOUND_NEUMANN 

Neumann (or natural) boundary condition.

◆ coordinate_axis_e

Coordinate axis identifier.

Enumerator
AXIS_X 

X axis.

AXIS_Y 

Y axis.

AXIS_R 

R axis.

AXIS_Z 

Z axis.

◆ field_extrpl_e

Field extrapolation mode.

This parameter is used to control the behaviour of the field evaluators outside the defined area. The field value can be extrapolated from the closest defined points (FIELD_EXTRAPOLATE), the field can be mirrored as F(x) = F(-x) (FIELD_MIRROR) anti-mirrored as F_x(x,y,z) = -F_x(-x,y,z) (FIELD_ANTIMIRROR), the field evaluator can simply return zero (FIELD_ZERO) or the field evaluator can return not-a-number, NaN (FIELD_NAN ). FIELD_SYMMETRIC_POTENTIAL is a special extrapolation mode for use in EpotEfield.

Enumerator
FIELD_EXTRAPOLATE 

Extrapolate field outside boundary.

FIELD_MIRROR 

Mirror field on boundary like f(x) = f(-x)

FIELD_ANTIMIRROR 

Mirror field on boundary like f(x) = -f(-x)

FIELD_SYMMETRIC_POTENTIAL 

Mirror field on boundary like f(x) = -f(-x) and enforce zero field at the boundary.

FIELD_ZERO 

Return zero outside boundary.

FIELD_NAN 

Return not-a-number outside boundary.

◆ field_type_e

Field type.

Indicator for field type.

Enumerator
FIELD_NONE 

Dummy field.

FIELD_EPOT 

Electric potential field.

FIELD_SCHARGE 

Space charge density field.

FIELD_TRAJDENS 

Trajectory density field.

FIELD_EFIELD 

Electric vector field.

FIELD_EFIELD_X 

Scalar field containing X component of electric vector field.

FIELD_EFIELD_Y 

Scalar field containing Y component of electric vector field.

FIELD_EFIELD_Z 

Scalar field containing Z component of electric vector field.

FIELD_BFIELD 

Magnetic vector field.

FIELD_BFIELD_X 

Scalar field containing X component of magnetic vector field.

FIELD_BFIELD_Y 

Scalar field containing Y component of magnetic vector field.

FIELD_BFIELD_Z 

Scalar field containing Z component of magnetic vector field.

◆ geom_mode_e

Geometry mode enum.

Simulation geometry can be either 1D (MODE_1D), planar 2D (MODE_2D), planar 3D (MODE_3D) or it can be defined as cylindrical symmetrical 2D with coordinates x and r (MODE_CYL).

The geometry mode selects the active axes for calculation and fields. For MODE_1D only x-axis (axis 0) is active. For MODE_2D the x- and y-axes are active (axes 0 and 1). For MODE_CYL the x- and r-axes are active (axes 0 and 1). For MODE_3D the x- and y- and z-axes are active (axes 0, 1 and 2).

Enumerator
MODE_1D 

1D geometry

MODE_2D 

2D geometry

MODE_CYL 

Cylindrically symmetric geometry.

MODE_3D 

3D geometry

◆ scharge_deposition_e

Space charge depostition type.

Enumerator
SCHARGE_DEPOSITION_PIC 

Particle-in-cell type deposition to neighbouring nodes in each cell.

SCHARGE_DEPOSITION_LINEAR 

Deposition to nodes as a linear function of distance to closet trajectory segment.

◆ trajectory_diagnostic_e

Type of diagnostic for trajectories.

O-, P- and Q-axes are diagnostic axes defined by user.

Enumerator
DIAG_NONE 

Dummy diagnostic. Does nothing.

DIAG_T 

Time (s)

DIAG_X 

X-axis position (m)

DIAG_VX 

X-axis velocity (m/s)

DIAG_Y 

Y-axis position (m)

DIAG_R 

Radial position (m)

DIAG_VY 

Y-axis velocity (m/s)

DIAG_VR 

Radial velocity (m/s)

DIAG_W 

Angular velocity (rad/s)

DIAG_VTHETA 

Tangential velocity (m/s)

DIAG_Z 

Z-axis position (m)

DIAG_VZ 

Z-axis velocity (m/s)

DIAG_O 

O-axis position (m)

DIAG_VO 

O-axis velocity (m/s)

DIAG_P 

P-axis position (m)

DIAG_VP 

P-axis velocity (m/s)

DIAG_Q 

Q-axis position (m)

DIAG_VQ 

Q-axis velocity (m/s)

DIAG_XP 

$v_x/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_YP 

$v_y/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_RP 

$v_r/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_AP 

$v_{\theta}/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_ZP 

$v_z/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_OP 

$v_o/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_PP 

$v_p/v_q$, where direction q is normal to diagnostic plane (rad)

DIAG_CURR 

Current (I)

DIAG_EK 

Kinetic energy (eV)

DIAG_QM 

Charge per mass (e/u)

DIAG_CHARGE 

Particle charge (e)

DIAG_MASS 

Particle mass (u)

DIAG_NO 

Particle index number. Useful for debugging.

◆ trajectory_interpolation_e

Trajectory interpolation type.

Enumerator
TRAJECTORY_INTERPOLATION_POLYNOMIAL 

Polynomial interpolation.

TRAJECTORY_INTERPOLATION_LINEAR 

Linear interpolation.

Variable Documentation

◆ coordinate_axis_string

const char* coordinate_axis_string[]
extern

String describing axis names without unit.

Contains strings: "x", "y", "r" and "z".

◆ coordinate_axis_string_with_unit

const char* coordinate_axis_string_with_unit[]
extern

String describing axis names with unit.

Contains strings: "x (m)", "y (m)", "r (m)" and "z (m)".

◆ trajectory_diagnostic_string

const char* trajectory_diagnostic_string[]
extern

String describing diagnostic without unit.

Contains strings: "none", "t", "x", "v_x", "y", ... Greek letters are typed with LaTeX notation for correct output in plots.

◆ trajectory_diagnostic_string_unit

const char* trajectory_diagnostic_string_unit[]
extern

String for separate diagnostic unit.

Contains strings: "", "s", "m", "m/2", "m", ... Greek letters are typed with LaTeX notation for correct output in plots.

◆ trajectory_diagnostic_string_with_unit

const char* trajectory_diagnostic_string_with_unit[]
extern

String describing diagnostic with unit.

Contains strings: "none ()", "t (s)", "x (m)", "v_x (m/2)", "y (m)", ... Greek letters are typed with LaTeX notation for correct output in plots.


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