Appearance
adam_prism_fnl_rk_pic_object
ADAM, PRISM PIC Runge-Kutta integrator, FNL backend.
Source: src/app/prism/fnl/adam_prism_fnl_rk_pic_object.F90
Dependencies
Contents
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
PIC_VARIABLES_NUMBER | integer(kind=I4P) | parameter |
Derived Types
prism_fnl_rk_pic_object
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
alph_gpu | real(kind=R8P) | pointer | SSP RK alpha coefficients on device. |
beta_gpu | real(kind=R8P) | pointer | SSP RK beta coefficients on device. |
q_pic_rk_gpu | real(kind=R8P) | pointer | RK stages [particle, variable, stage]. |
particle_number | integer(kind=I4P) | Total number of particles. | |
nrk | integer(kind=I4P) | Number of stages. |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
destroy | pass(self) | |
initialize | pass(self) | |
initialize_stages | pass(self) | |
compute_stage | pass(self) | |
assign_stage | pass(self) | |
update_q_pic | pass(self) |
Subroutines
destroy
Free device data owned by this object.
fortran
subroutine destroy(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_rk_pic_object) | inout | FNL PIC RK object. |
Call graph
initialize
Initialize device-side PIC RK state.
fortran
subroutine initialize(self, pic, rk_pic)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_rk_pic_object) | inout | FNL PIC RK object. | |
pic | type(prism_pic_object) | in | Host PIC object. | |
rk_pic | type(prism_rk_pic_object) | in | Host PIC RK object. |
Call graph
initialize_stages
Initialize device SSP RK stages for PIC variables.
fortran
subroutine initialize_stages(self, q_pic_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_rk_pic_object) | inout | FNL PIC RK object. | |
q_pic_gpu | real(kind=R8P) | in | PIC variables on device. |
Call graph
compute_stage
Compute one PIC SSP RK stage state on device.
fortran
subroutine compute_stage(self, s, dt)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_rk_pic_object) | inout | FNL PIC RK object. | |
s | integer(kind=I4P) | in | Current stage number. | |
dt | real(kind=R8P) | in | Time step. |
Call graph
assign_stage
Convert one PIC SSP RK stage state into its right-hand side on device.
fortran
subroutine assign_stage(self, s, pic_fields_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_rk_pic_object) | inout | FNL PIC RK object. | |
s | integer(kind=I4P) | in | Current stage number. | |
pic_fields_gpu | real(kind=R8P) | in | Fields at particle locations on device. |
Call graph
update_q_pic
Complete the PIC SSP RK update on device.
fortran
subroutine update_q_pic(self, dt, q_pic_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_rk_pic_object) | inout | FNL PIC RK object. | |
dt | real(kind=R8P) | in | Time step. | |
q_pic_gpu | real(kind=R8P) | inout | PIC variables on device. |
Call graph