PARTICLES Derived Type

type, public :: PARTICLES


Inherits

type~~particles~~InheritsGraph type~particles PARTICLES C_PTR C_PTR type~particles->C_PTR hint

Inherited by

type~~particles~~InheritedByGraph type~particles PARTICLES type~species SPECIES type~species->type~particles vars

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: X

Cartesian coordinates of the electrons' position. dim(X) = (3,SPECIES::ppp).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: V

Cartesian components of the electrons' velocity. dim(V) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: Rgc

Cartesian coordinates of the electrons' guiding-center position.

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: Y

Coordinates of the electrons' position in cylindrical or toroidal coordinates.

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: Y0

Placeholder coordinates of the electrons' position in cylindrical coordinates for GC orbit model.

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: V0

Placeholder of the electrons' parallel momentum for the GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: E

Cartesian components of the electric field felt by each electron. dim(E) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: B

Cartesian components of the magnetic field felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: PSI_P
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: BR

Cartesian components of the gradient of the R-component of the magnetic field felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: BPHI

Cartesian components of the gradient of the PHI-component of the magnetic field felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: BZ

Cartesian components of the gradient of the Z-component of the magnetic field felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: gradB

Cylindrical components of the gradient of magnitude of magnetic field felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: curlb

Cylindrical components of the curl of the magnetic field unit vector felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: RHS

RHS of equations of motion for GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: k1

Cash-Karp Runge-Kutta coefficient for GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: k2

Cash-Karp Runge-Kutta coefficient for GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: k3

Cash-Karp Runge-Kutta coefficient for GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: k4

Cash-Karp Runge-Kutta coefficient for GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: k5

Cash-Karp Runge-Kutta coefficient for GC orbit model

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: k6

Cash-Karp Runge-Kutta coefficient for GC orbit model

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: ne

Electron density seen by each electron. dim(ne) = (1,SPECIES::ppp).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nimp
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: ni
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Te

Electron temperature seen by each electron. dim(Te) = (1,SPECIES::ppp).

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Zeff

Zeff seen by each electron. dim(Zeff) = (1,SPECIES::ppp).

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: g

Instantaneous relativistic factor of each electron in the simulation.

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: eta

Instantaneous pitch angle of each electron in the simulation.

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: mu

Magnetic moment of each electron in the simulation.

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Prad

Instantaneous radiated power by each electron in the simulation.

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Pin

Instantaneous input power of each electron due to the electric field acceleration.

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: flagCon

Flag for each particle to decide whether it is contained

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: flagCol

Flag for each particle to decide whether it is part of the high energy population

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: flagRE

Flag for each particle to decide whether it is initialized

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: AUX

An auxiliary scalar variable for each electron.

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: wt

Weight of each electron. This is used when sampling weighted PDFs and in the synthetic camera diagnostic.

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: initLCFS
type(C_PTR), public, DIMENSION(:), ALLOCATABLE:: hint

Hint for M3D_C1 interpolation.

logical, public :: cart

Source Code

  TYPE, PUBLIC :: PARTICLES
     !! @note Derived type containing all the electrons' variables
     !!in the simulation. @endnote


     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: X 
     !! Cartesian coordinates of the electrons' position.
     !! dim(X) = (3,SPECIES::ppp).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: V 
     !! Cartesian components of the electrons' velocity. dim(V) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: Rgc 
     !! Cartesian coordinates of the electrons' guiding-center position.
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: Y 
     !! Coordinates of the electrons' position in cylindrical or toroidal
     !! coordinates.
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: Y0 
     !! Placeholder coordinates of the electrons' position in cylindrical
     !! coordinates for GC orbit model.
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: V0 
     !! Placeholder of the electrons' parallel momentum for the GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: E 
     !! Cartesian components of the electric field felt by each electron.
     !! dim(E) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: B 
     !! Cartesian components of the magnetic field felt by each electron.
     !! dim(B) = dim(X).
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: PSI_P 
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: BR 
     !! Cartesian components of the gradient of the R-component of the
     !! magnetic field felt by each electron. dim(B) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: BPHI 
     !! Cartesian components of the gradient of the PHI-component of the
     !! magnetic field felt by each electron. dim(B) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: BZ 
     !! Cartesian components of the gradient of the Z-component of the
     !! magnetic field felt by each electron. dim(B) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: gradB 
     !! Cylindrical components of the gradient of magnitude of magnetic
     !! field felt by each electron. dim(B) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: curlb 
     !! Cylindrical components of the curl of the magnetic field unit
     !! vector felt by each electron. dim(B) = dim(X).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: RHS
     !! RHS of equations of motion for GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: k1
     !! Cash-Karp Runge-Kutta coefficient for GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: k2
     !! Cash-Karp Runge-Kutta coefficient for GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: k3
     !! Cash-Karp Runge-Kutta coefficient for GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: k4
     !! Cash-Karp Runge-Kutta coefficient for GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: k5
     !! Cash-Karp Runge-Kutta coefficient for GC orbit model
     REAL(rp), DIMENSION(:,:), ALLOCATABLE      :: k6
     !! Cash-Karp Runge-Kutta coefficient for GC orbit model
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: ne 
     !! Electron density seen by each electron. dim(ne) = (1,SPECIES::ppp).
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: nimp
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: ni 
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: Te 
     !! Electron temperature seen by each electron. dim(Te) = (1,SPECIES::ppp).
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: Zeff 
     !! Zeff seen by each electron. dim(Zeff) = (1,SPECIES::ppp).
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: g 
     !! Instantaneous relativistic \(\gamma = 1/\sqrt{1 - v^2/c^2}\) factor
     !! of each electron in the simulation.
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: eta 
     !! Instantaneous pitch angle of each electron in the simulation.
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: mu 
     !! Magnetic moment of each electron in the simulation.
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: Prad 
     !! Instantaneous radiated power by each electron in the simulation.
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: Pin 
     !! Instantaneous input power of each electron due to the electric
     !! field acceleration.
     INTEGER(is), DIMENSION(:), ALLOCATABLE 	:: flagCon
     !! Flag for each particle to decide whether it is contained
     INTEGER(is), DIMENSION(:), ALLOCATABLE 	:: flagCol
     !! Flag for each particle to decide whether it is part of the high
     !! energy population
     INTEGER(is), DIMENSION(:), ALLOCATABLE 	:: flagRE 
     !! Flag for each particle to decide whether it is initialized
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: AUX 
     !! An auxiliary scalar variable for each electron.
     REAL(rp), DIMENSION(:), ALLOCATABLE 	:: wt 
     !! Weight of each electron. This is used when sampling weighted
     !! PDFs and in the synthetic camera diagnostic.
     INTEGER(is), DIMENSION(:), ALLOCATABLE 	:: initLCFS
#ifdef FIO
     TYPE(C_PTR), DIMENSION(:), ALLOCATABLE :: hint
     !! Hint for M3D_C1 interpolation.
#endif
     LOGICAL                                :: cart
  END TYPE PARTICLES