Appearance
adam_prism_fnl_pic_object
ADAM, PRISM Particle-in-Cell definition, FNL backend.
Source: src/app/prism/fnl/adam_prism_fnl_pic_object.F90
Dependencies
Contents
- prism_fnl_pic_object
- particle_cartesian_grid_index_interface_dev
- particle_weighting_interface_dev
- current_weighting_interface_dev
- field_weighting_interface_dev
- destroy
- copy_cpu_gpu
- copy_gpu_cpu
- copy_q_pic_gpu_cpu
- initialize
- particle_cartesian_grid_index_dev_impl
- NGP_charge_weighting_dev
- CIC_charge_weighting_dev
- TSC_charge_weighting_dev
- cubic_charge_weighting_dev
- quartic_charge_weighting_dev
- quintic_charge_weighting_dev
- Gaussian_charge_weighting_dev
- NGP_current_weighting_dev
- CIC_current_weighting_dev
- TSC_current_weighting_dev
- cubic_current_weighting_dev
- quartic_current_weighting_dev
- quintic_current_weighting_dev
- Gaussian_current_weighting_dev
- zeroD_field_weighting_dev
- oneD_field_weighting_dev
- twoD_field_weighting_dev
- threeD_field_weighting_dev
- fourD_field_weighting_dev
- fiveD_field_weighting_dev
- Gaussian_field_weighting_dev
- deposit_bspline_charge_dev
- deposit_gaussian_charge_dev
- deposit_bspline_current_dev
- deposit_gaussian_current_dev
- gather_bspline_fields_dev
- gather_gaussian_fields_dev
- set_bspline_stencil_dev
- bspline_weight_dev
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
PIC_VARIABLES_NUMBER | integer(kind=I4P) | parameter | |
PIC_FIELDS_NUMBER | integer(kind=I4P) | parameter | |
PIC_NEIGHBOURS_NUMBER | integer(kind=I4P) | parameter |
Derived Types
prism_fnl_pic_object
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
q_pic_gpu | real(kind=R8P) | pointer | PIC variables on device [particle, variable]. |
pic_fields_gpu | real(kind=R8P) | pointer | Fields at particle locations on device [particle, field]. |
neighbour_list_gpu | integer(kind=I4P) | pointer | Particle-cell map on device [particle, entry]. |
db2_q_pic | integer(kind=I4P) | Device bounds for q_pic_gpu. | |
hb2_q_pic | integer(kind=I4P) | Host bounds for q_pic. | |
db2_pic_fields | integer(kind=I4P) | Device bounds for pic_fields_gpu. | |
hb2_pic_fields | integer(kind=I4P) | Host bounds for pic_fields. | |
db2_neighbour_list | integer(kind=I4P) | Device bounds for neighbour_list_gpu. | |
hb2_neighbour_list | integer(kind=I4P) | Host bounds for neighbour_list. | |
buf_q_pic_R8P | real(kind=R8P) | allocatable | Host buffer with device layout for q_pic copies. |
buf_pic_fields_R8P | real(kind=R8P) | allocatable | Host buffer with device layout for pic_fields copies. |
buf_neighbour_list_I4P | integer(kind=I4P) | allocatable | Host buffer with device layout for neighbour_list copies. |
sigma | real(kind=R8P) | Standard deviation for Gaussian weighting. | |
cutoff_sigma | real(kind=R8P) | Gaussian cutoff radius in sigma units. | |
particle_number | integer(kind=I4P) | Total number of particles. | |
n_ions | integer(kind=I4P) | Total ions number. | |
n_electrons | integer(kind=I4P) | Total electrons number. | |
n_neutrals | integer(kind=I4P) | Total neutrals number. | |
particle_cartesian_grid_index_dev | procedure(particle_cartesian_grid_index_interface_dev) | pass(self), pointer | |
particle_weighting_dev | procedure(particle_weighting_interface_dev) | pass(self), pointer | |
current_weighting_dev | procedure(current_weighting_interface_dev) | pass(self), pointer | |
field_weighting_dev | procedure(field_weighting_interface_dev) | pass(self), pointer |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
copy_cpu_gpu | pass(self) | |
copy_gpu_cpu | pass(self) | |
copy_q_pic_gpu_cpu | pass(self) | |
destroy | pass(self) | |
initialize | pass(self) | |
particle_cartesian_grid_index_dev_impl | pass(self) | |
NGP_charge_weighting_dev | pass(self) | |
CIC_charge_weighting_dev | pass(self) | |
TSC_charge_weighting_dev | pass(self) | |
cubic_charge_weighting_dev | pass(self) | |
quartic_charge_weighting_dev | pass(self) | |
quintic_charge_weighting_dev | pass(self) | |
Gaussian_charge_weighting_dev | pass(self) | |
NGP_current_weighting_dev | pass(self) | |
CIC_current_weighting_dev | pass(self) | |
TSC_current_weighting_dev | pass(self) | |
cubic_current_weighting_dev | pass(self) | |
quartic_current_weighting_dev | pass(self) | |
quintic_current_weighting_dev | pass(self) | |
Gaussian_current_weighting_dev | pass(self) | |
zeroD_field_weighting_dev | pass(self) | |
oneD_field_weighting_dev | pass(self) | |
twoD_field_weighting_dev | pass(self) | |
threeD_field_weighting_dev | pass(self) | |
fourD_field_weighting_dev | pass(self) | |
fiveD_field_weighting_dev | pass(self) | |
Gaussian_field_weighting_dev | pass(self) |
Interfaces
particle_cartesian_grid_index_interface_dev
particle_weighting_interface_dev
current_weighting_interface_dev
field_weighting_interface_dev
Subroutines
destroy
Free device and host staging data owned by this object.
fortran
subroutine destroy(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. |
Call graph
copy_cpu_gpu
Copy PIC data from CPU to GPU.
fortran
subroutine copy_cpu_gpu(self, pic, q_pic, pic_fields, verbose)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. | |
pic | class(prism_pic_object) | in | PIC object on host. | |
q_pic | real(kind=R8P) | in | target | PIC variables on host. |
pic_fields | real(kind=R8P) | in | target | Fields at particle locations on host. |
verbose | logical | in | optional | Trigger verbose output. |
Call graph
copy_gpu_cpu
Copy PIC data from GPU to CPU.
fortran
subroutine copy_gpu_cpu(self, pic, q_pic, pic_fields, verbose)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. | |
pic | class(prism_pic_object) | inout | PIC object on host. | |
q_pic | real(kind=R8P) | inout | target | PIC variables on host. |
pic_fields | real(kind=R8P) | inout | target | Fields at particle locations on host. |
verbose | logical | in | optional | Trigger verbose output. |
Call graph
copy_q_pic_gpu_cpu
Copy only PIC particle state from GPU to CPU.
fortran
subroutine copy_q_pic_gpu_cpu(self, q_pic, verbose)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. | |
q_pic | real(kind=R8P) | inout | target | PIC variables on host. |
verbose | logical | in | optional | Trigger verbose output. |
Call graph
initialize
Initialize PIC device mirrors and dispatch hooks.
fortran
subroutine initialize(self, pic, q_pic, pic_fields)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. | |
pic | type(prism_pic_object) | in | PIC object on host. | |
q_pic | real(kind=R8P) | in | target | PIC variables on host. |
pic_fields | real(kind=R8P) | in | target | Fields at particle locations on host. |
Call graph
particle_cartesian_grid_index_dev_impl
Compute the grid index corresponding to a particle position. Good for cartesian grids only.
fortran
subroutine particle_cartesian_grid_index_dev_impl(self, field_fnl, field, grid, q_pic_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. | |
field_fnl | type(field_fnl_object) | in | Device field helper. | |
field | type(field_object) | in | Host field helper. | |
grid | type(grid_object) | in | Host grid helper. | |
q_pic_gpu | real(kind=R8P) | in | PIC variables on device. |
NGP_charge_weighting_dev
Nearest Grid Point weighting of particle charge density to the grid.
fortran
subroutine NGP_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | PIC object on device. | |
field_fnl | type(field_fnl_object) | in | Device field helper. | |
field | type(field_object) | in | Host field helper. | |
grid | type(grid_object) | in | Host grid helper. | |
q_gpu | real(kind=R8P) | inout | Field variables on device. | |
q_pic_gpu | real(kind=R8P) | in | PIC variables on device. | |
nv | integer(kind=I4P) | in | Charge variable index. |
Call graph
CIC_charge_weighting_dev
Cloud-in-Cell weighting of particle charge density to the grid.
fortran
subroutine CIC_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
TSC_charge_weighting_dev
Triangular-Shaped-Cloud weighting of particle charge density to the grid.
fortran
subroutine TSC_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
cubic_charge_weighting_dev
Cubic B-spline weighting of particle charge density to the grid.
fortran
subroutine cubic_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
quartic_charge_weighting_dev
Quartic B-spline weighting of particle charge density to the grid.
fortran
subroutine quartic_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
quintic_charge_weighting_dev
Quintic B-spline weighting of particle charge density to the grid.
fortran
subroutine quintic_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
Gaussian_charge_weighting_dev
Gaussian weighting of particle charge density to the grid.
fortran
subroutine Gaussian_charge_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
NGP_current_weighting_dev
Nearest Grid Point weighting of particle current density to the grid.
fortran
subroutine NGP_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
CIC_current_weighting_dev
Cloud-in-Cell weighting of particle current density to the grid.
fortran
subroutine CIC_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
TSC_current_weighting_dev
Triangular-Shaped-Cloud weighting of particle current density to the grid.
fortran
subroutine TSC_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
cubic_current_weighting_dev
Cubic B-spline weighting of particle current density to the grid.
fortran
subroutine cubic_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
quartic_current_weighting_dev
Quartic B-spline weighting of particle current density to the grid.
fortran
subroutine quartic_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
quintic_current_weighting_dev
Quintic B-spline weighting of particle current density to the grid.
fortran
subroutine quintic_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
Gaussian_current_weighting_dev
Gaussian weighting of particle current density to the grid.
fortran
subroutine Gaussian_current_weighting_dev(self, field_fnl, field, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
zeroD_field_weighting_dev
Zeroth-order spatial interpolation of cell-centered fields to particle locations.
fortran
subroutine zeroD_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
oneD_field_weighting_dev
First-order spatial interpolation of cell-centered fields to particle locations.
fortran
subroutine oneD_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
twoD_field_weighting_dev
Second-order spatial interpolation of cell-centered fields to particle locations.
fortran
subroutine twoD_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
threeD_field_weighting_dev
Third-order spatial interpolation of cell-centered fields to particle locations.
fortran
subroutine threeD_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
fourD_field_weighting_dev
Fourth-order spatial interpolation of cell-centered fields to particle locations.
fortran
subroutine fourD_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
fiveD_field_weighting_dev
Fifth-order spatial interpolation of cell-centered fields to particle locations.
fortran
subroutine fiveD_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
Gaussian_field_weighting_dev
Gaussian interpolation of cell-centered fields to particle locations.
fortran
subroutine Gaussian_field_weighting_dev(self, field_fnl, field, grid, pic_fields_gpu, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | inout | ||
field_fnl | type(field_fnl_object) | in | ||
field | type(field_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
deposit_bspline_charge_dev
Deposit particle charge density with centered cardinal B-splines.
fortran
subroutine deposit_bspline_charge_dev(self, field_fnl, grid, q_gpu, q_pic_gpu, nv, order)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | in | ||
field_fnl | type(field_fnl_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in | ||
order | integer(kind=I4P) | in |
Call graph
deposit_gaussian_charge_dev
Deposit particle charge density with Gaussian support.
fortran
subroutine deposit_gaussian_charge_dev(self, field_fnl, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | in | ||
field_fnl | type(field_fnl_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
deposit_bspline_current_dev
Deposit particle current density with centered cardinal B-splines.
fortran
subroutine deposit_bspline_current_dev(self, field_fnl, grid, q_gpu, q_pic_gpu, nv, order)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | in | ||
field_fnl | type(field_fnl_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in | ||
order | integer(kind=I4P) | in |
Call graph
deposit_gaussian_current_dev
Deposit particle current density with Gaussian support.
fortran
subroutine deposit_gaussian_current_dev(self, field_fnl, grid, q_gpu, q_pic_gpu, nv)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | in | ||
field_fnl | type(field_fnl_object) | in | ||
grid | type(grid_object) | in | ||
q_gpu | real(kind=R8P) | inout | ||
q_pic_gpu | real(kind=R8P) | in | ||
nv | integer(kind=I4P) | in |
Call graph
gather_bspline_fields_dev
Gather cell-centered fields at particle locations with centered cardinal B-splines.
fortran
subroutine gather_bspline_fields_dev(self, field_fnl, grid, pic_fields_gpu, q_gpu, q_pic_gpu, order)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | in | ||
field_fnl | type(field_fnl_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in | ||
order | integer(kind=I4P) | in |
Call graph
gather_gaussian_fields_dev
Gather cell-centered fields at particle locations with Gaussian support.
fortran
subroutine gather_gaussian_fields_dev(self, field_fnl, grid, pic_fields_gpu, q_gpu, q_pic_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pic_object) | in | ||
field_fnl | type(field_fnl_object) | in | ||
grid | type(grid_object) | in | ||
pic_fields_gpu | real(kind=R8P) | inout | ||
q_gpu | real(kind=R8P) | in | ||
q_pic_gpu | real(kind=R8P) | in |
Call graph
set_bspline_stencil_dev
Compute the one-dimensional B-spline stencil.
Attributes: pure
fortran
subroutine set_bspline_stencil_dev(order, x_p, x_c, i_p, i_min, i_max)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
order | integer(kind=I4P) | in | ||
x_p | real(kind=R8P) | in | ||
x_c | real(kind=R8P) | in | ||
i_p | integer(kind=I4P) | in | ||
i_min | integer(kind=I4P) | out | ||
i_max | integer(kind=I4P) | out |
Call graph
Functions
bspline_weight_dev
Return the centered cardinal B-spline weight.
Attributes: pure
Returns: real(kind=R8P)
fortran
function bspline_weight_dev(order, r) result(weight)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
order | integer(kind=I4P) | in | ||
r | real(kind=R8P) | in |
Call graph