![]() |
ORB5
v4.9.4
|
Particle-to-fields and fields-to-particle operations. More...
Data Types | |
interface | deposition |
Functions/Subroutines | |
subroutine, public | init_module (nidbas_, ns_, nchi_, nphi_, iz_offset_, ds_, dchi_, dphi_, xmin_, nl_gradgyr_, nsel_depos_, nsel_get_field_, nbin_x_, nbin_y_, nbin_z_, color_nbin_x_, color_nbin_y_) |
Initialize module variables. More... | |
subroutine | init_deposition_by_part |
Initialization routine for deposition by particle. More... | |
subroutine | init_deposition_by_cell |
Initialization routine for deposition by cell. More... | |
subroutine | init_deposition_by_color |
Initialization routine for deposition using the color scheme algorithm. More... | |
subroutine | init_deposition_by_color_buf |
Initialization routine for deposition using the buffered color scheme algorithm. More... | |
subroutine | deposition_r8 (np, x, y, z, w, rhs, nl_depos, displs, first) |
Deposit some marker attribute to field with the proper splines order. More... | |
subroutine | deposition_r4 (np, x, y, z, w, rhs, nl_depos, displs, first) |
Deposit some marker attribute to field with the proper splines order (r4) More... | |
subroutine | nullify_rhs_omp (ithread) |
Set rhs_omp to 0. More... | |
subroutine | nullify_rhs (rhs) |
Set rhs to 0. More... | |
subroutine | reduction_threads (rhs) |
Sum up OpenMP threads rhs replications. More... | |
subroutine, public | get_field (pot_coef, np, x, y, z, displs, pot, dpot_dx, dpot_dy, dpot_dz) |
Compute field and/or its gradient at marker positions with the proper spline order. More... | |
pure real function, dimension(0:1) | splines_bas1 (x) |
Evaluate linear B-splines at point x in interval [0, 1]. More... | |
pure real function, dimension(0:2) | splines_bas2 (x) |
Evaluate quadratic B-splines at point x in interval [0, 1]. More... | |
pure real function, dimension(0:3) | splines_bas3 (x) |
Evaluate cubic B-splines at point x in interval [0, 1]. More... | |
pure real function, dimension(0:1) | grad_splines_bas1 (x) |
Evaluate linear B-spline gradients at point x in interval [0, 1]. More... | |
pure real function, dimension(0:2) | grad_splines_bas2 (x) |
Evaluate quadratic B-spline gradients at point x in interval [0, 1]. More... | |
pure real function, dimension(0:3) | grad_splines_bas3 (x) |
Evaluate cubic B-spline gradients at point x in interval [0, 1]. More... | |
Variables | |
integer, save | nidbas |
Spline order. More... | |
integer, save | nx |
Number of radial intervals. More... | |
integer, save | ny |
Number of poloidal intervals. More... | |
integer, save | nz |
Number of local toroidal intervals. More... | |
integer, save | iz_offset |
Starting toroidal interval. More... | |
real, save | dx_inv |
Inverse radial mesh size. More... | |
real, save | dy_inv |
Inverse poloidal mesh size. More... | |
real, save | dz_inv |
Inverse toroidal mesh size. More... | |
real, save | xmin |
Inner boundary position. More... | |
logical, save | nl_gradgyr |
Take gradient of gyroaverage potential instead of gyroaverage gradient of potential. More... | |
integer, save | nsel_depos |
Deposition method. More... | |
integer, save | nsel_get_field |
Get field method. More... | |
integer, save | nbin_x |
Number of radial bins. More... | |
integer, save | nbin_y |
Number of poloidal bins. More... | |
integer, save | nbin_z |
Number of local toroidal bins. More... | |
integer, save | color_nbin_x |
Number of radial bins for color scheme. More... | |
integer, save | color_nbin_y |
Number of poloidal bins for color scheme. More... | |
real, dimension(:,:,:,:), allocatable, save | rhs_omp |
Working array for deposition (field replicated among OpenMP threads) More... | |
integer, dimension(:,:), allocatable, save | bin_array |
Array containing the index of the particles in a bucket. More... | |
real, dimension(:,:,:), allocatable, save | color_buffer |
Buffer used for the buffered version of color scheme. More... | |
integer, save | number_of_bins_per_bucket |
integer, save | number_of_buckets |
Number of bins per bucket and total # of buckets. More... | |
integer, save | nbin_x_avg |
integer, save | nbin_y_avg |
Number of sorting bins in each color bucket. More... | |
logical, save | use_vectorized = .false. |
Flag to use the vectorized version. More... | |
integer, save | grid_cells_in_x_color_bucket |
Number of grid cell per bucket in s. More... | |
integer, save | grid_cells_in_y_color_bucket |
Number of grid cell per bucket in chi. More... | |
integer, save | k_start |
integer, save | k_end |
Indexes of the local subdomain. More... | |
Particle-to-fields and fields-to-particle operations.
In this module,
|
private |
Deposit some marker attribute to field with the proper splines order (r4)
[in] | np | Number of markers |
[in] | x | Marker radial positions |
[in] | y | Marker poloidal positions |
[in] | z | Marker toroidal positions |
[in] | w | Marker attribute to be deposited |
[out] | rhs | Resulting field |
[in] | nl_depos | Flags to deposit markers or not |
[in] | first | Flags to deposit markers or not |
[in] | displs | Displacements to access markers in specific bin |
|
private |
Deposit some marker attribute to field with the proper splines order.
[in] | np | Number of markers |
[in] | x | Marker radial positions |
[in] | y | Marker poloidal positions |
[in] | z | Marker toroidal positions |
[in] | w | Marker attribute to be deposited |
[out] | rhs | Resulting field |
[in] | nl_depos | Flags to deposit markers or not |
[in] | displs | Displacements to access markers in specific bin |
[in] | first | Flag to indicate first deposition iteration |
subroutine, public part_fields::get_field | ( | real, dimension(0:nx+nidbas-1, 0:ny+nidbas-1, 0:nz+nidbas-1), intent(in) | pot_coef, |
integer, intent(in) | np, | ||
real, dimension(np), intent(in) | x, | ||
real, dimension(np), intent(in) | y, | ||
real, dimension(np), intent(in) | z, | ||
integer, dimension(:), intent(in), optional | displs, | ||
real, dimension(np), intent(out), optional | pot, | ||
real, dimension(np), intent(out), optional | dpot_dx, | ||
real, dimension(np), intent(out), optional | dpot_dy, | ||
real, dimension(np), intent(out), optional | dpot_dz | ||
) |
Compute field and/or its gradient at marker positions with the proper spline order.
[in] | pot_coef | Field B-spline coefficients |
[in] | np | Number of markers |
[in] | x | Marker radial positions |
[in] | y | Marker poloidal positions |
[in] | z | Marker toroidal positions |
[in] | displs | Displacements to access markers in specific bin |
[out] | pot | Potential at marker positions |
[out] | dpot_dx | Radial derivative of potential |
[out] | dpot_dy | Poloidal derivative of potential |
[out] | dpot_dz | Toroidal derivative of potential |
|
private |
Evaluate linear B-spline gradients at point x in interval [0, 1].
|
private |
Evaluate quadratic B-spline gradients at point x in interval [0, 1].
|
private |
Evaluate cubic B-spline gradients at point x in interval [0, 1].
|
private |
Initialization routine for deposition by cell.
|
private |
Initialization routine for deposition using the color scheme algorithm.
|
private |
Initialization routine for deposition using the buffered color scheme algorithm.
|
private |
Initialization routine for deposition by particle.
subroutine, public part_fields::init_module | ( | integer, intent(in) | nidbas_, |
integer, intent(in) | ns_, | ||
integer, intent(in) | nchi_, | ||
integer, intent(in) | nphi_, | ||
integer, intent(in) | iz_offset_, | ||
real, intent(in) | ds_, | ||
real, intent(in) | dchi_, | ||
real, intent(in) | dphi_, | ||
real, intent(in) | xmin_, | ||
logical, intent(in) | nl_gradgyr_, | ||
integer, intent(in) | nsel_depos_, | ||
integer, intent(in) | nsel_get_field_, | ||
integer, intent(in) | nbin_x_, | ||
integer, intent(in) | nbin_y_, | ||
integer, intent(in) | nbin_z_, | ||
integer, intent(in) | color_nbin_x_, | ||
integer, intent(in) | color_nbin_y_ | ||
) |
Initialize module variables.
|
private |
Set rhs to 0.
|
private |
Set rhs_omp to 0.
[in] | ithread | OpenMP thread ID |
|
private |
Sum up OpenMP threads rhs replications.
[out] | rhs | Resulting field |
|
private |
Evaluate linear B-splines at point x in interval [0, 1].
|
private |
Evaluate quadratic B-splines at point x in interval [0, 1].
|
private |
Evaluate cubic B-splines at point x in interval [0, 1].
|
private |
Array containing the index of the particles in a bucket.
|
private |
Buffer used for the buffered version of color scheme.
|
private |
Number of radial bins for color scheme.
|
private |
Number of poloidal bins for color scheme.
|
private |
Inverse radial mesh size.
|
private |
Inverse poloidal mesh size.
|
private |
Inverse toroidal mesh size.
|
private |
Number of grid cell per bucket in s.
|
private |
Number of grid cell per bucket in chi.
|
private |
Starting toroidal interval.
|
private |
Indexes of the local subdomain.
|
private |
|
private |
Number of radial bins.
|
private |
|
private |
Number of poloidal bins.
|
private |
Number of sorting bins in each color bucket.
|
private |
Number of local toroidal bins.
|
private |
Spline order.
|
private |
Take gradient of gyroaverage potential instead of gyroaverage gradient of potential.
|
private |
Deposition method.
|
private |
Get field method.
|
private |
|
private |
Number of bins per bucket and total # of buckets.
|
private |
Number of radial intervals.
|
private |
Number of poloidal intervals.
|
private |
Number of local toroidal intervals.
|
private |
Working array for deposition (field replicated among OpenMP threads)
|
private |
Flag to use the vectorized version.
|
private |
Inner boundary position.