Skip to content

adam_prism_fnl_leapfrog_pic_object

ADAM, PRISM PIC leapfrog integrator, FNL backend.

Source: src/app/prism/fnl/adam_prism_fnl_leapfrog_pic_object.F90

Dependencies

Contents

Variables

NameTypeAttributesDescription
PIC_VARIABLES_NUMBERinteger(kind=I4P)parameter

Derived Types

prism_fnl_leapfrog_pic_object

Components

NameTypeAttributesDescription
q_pic_old_gpureal(kind=R8P)pointerLeapfrog history [particle, variable, step].
buf_q_pic_old_R8Preal(kind=R8P)allocatableHost buffer with device layout for q_pic_old copies.
nureal(kind=R8P)RAW filter coefficient.
alphareal(kind=R8P)RAW-Williams coefficient.
is_filteredlogicalEnable RAW filter.
particle_numberinteger(kind=I4P)Total number of particles.

Type-Bound Procedures

NameAttributesDescription
copy_cpu_gpupass(self)
copy_gpu_cpupass(self)
destroypass(self)
initializepass(self)
assign_steppass(self)
prime_steppass(self)
integratepass(self)

Subroutines

destroy

Free device and host staging data owned by this object.

fortran
subroutine destroy(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.

Call graph

initialize

Initialize device-side PIC leapfrog state.

fortran
subroutine initialize(self, pic, leapfrog_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.
pictype(prism_pic_object)inHost PIC object.
leapfrog_pictype(prism_leapfrog_pic_object)inHost PIC leapfrog object.

Call graph

copy_cpu_gpu

Copy host leapfrog PIC history to the device mirror.

fortran
subroutine copy_cpu_gpu(self, q_pic_old, verbose)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.
q_pic_oldreal(kind=R8P)intargetHost leapfrog history.
verboselogicalinoptionalTrigger verbose output.

Call graph

copy_gpu_cpu

Copy device leapfrog PIC history back to the host mirror.

fortran
subroutine copy_gpu_cpu(self, q_pic_old, verbose)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.
q_pic_oldreal(kind=R8P)inouttargetHost leapfrog history.
verboselogicalinoptionalTrigger verbose output.

Call graph

assign_step

Store one PIC state in the device leapfrog history buffer.

fortran
subroutine assign_step(self, s, q_pic_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.
sinteger(kind=I4P)inLeapfrog history slot.
q_pic_gpureal(kind=R8P)inPIC variables on device.

Call graph

prime_step

Perform the explicit Euler priming step for PIC leapfrog on device.

fortran
subroutine prime_step(self, dt, q_pic_gpu, pic_fields_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.
dtreal(kind=R8P)inTime step.
q_pic_gpureal(kind=R8P)inoutPIC variables on device.
pic_fields_gpureal(kind=R8P)inFields at particle locations on device.

integrate

Integrate PIC particles with leapfrog on device.

fortran
subroutine integrate(self, dt, q_pic_gpu, pic_fields_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_leapfrog_pic_object)inoutFNL PIC leapfrog object.
dtreal(kind=R8P)inTime step.
q_pic_gpureal(kind=R8P)inoutPIC variables on device.
pic_fields_gpureal(kind=R8P)inFields at particle locations on device.

Call graph