Skip to content

adam_field_gmp_object

ADAM, field class definition, GMP backend.

Source: src/lib/gmp/adam_field_gmp_object.F90

Dependencies

Contents

Derived Types

field_gmp_object

Field class, GMP backend.

Components

NameTypeAttributesDescription
mpihtype(mpih_gmp_object)pointerMPI handler.
mapstype(maps_gmp_object)Maps handler.
fieldtype(field_object)pointerThe field.
q_treal(kind=R8P)allocatableTransposed cell centered variables on CPU.
q_gpureal(kind=R8P)pointerField cell centered variables.
q_t_gpureal(kind=R8P)pointerTransposed cell centered variables on GPU.
fec_1_6_array_gpuinteger(kind=I4P)pointerMapping fec1-26 to fec1-6 for boundaries (GPU).
x_cell_gpureal(kind=R8P)pointerCells x coordinates on GPU.
y_cell_gpureal(kind=R8P)pointerCells y coordinates on GPU.
z_cell_gpureal(kind=R8P)pointerCells z coordinates on GPU.
dxyz_gpureal(kind=R8P)pointerDelta cells GPU.

Type-Bound Procedures

NameAttributesDescription
compute_q_gradientpass(self)Compute maximum gradient module of q element of a block.
copy_cpu_gpupass(self)Copy data from (field_object) CPU to (field_gmp_object) GPU.
copy_transpose_cpu_gpupass(self)Transpose data from GPU to CPU.
copy_transpose_gpu_cpupass(self)Transpose data from GPU to CPU.
initializepass(self)Initialize field.
update_ghost_localpass(self)Update ghosts locally.
update_ghost_mpipass(self)Update ghosts MPI.

Subroutines

compute_q_gradient

Compute gradient (module) over q elements.

fortran
subroutine compute_q_gradient(self, b, ivar, q_gpu, gradient)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inThe field.
binteger(kind=I4P)inBlock index.
ivarinteger(kind=I4P)inIndex of q variable.
q_gpureal(kind=R8P)inField component to which apply gradient.
gradientreal(kind=R8P)outMaximum gradient of q(ivar).

Call graph

copy_cpu_gpu

Copy data from (field_object) CPU to (field_gmp_object) GPU.

fortran
subroutine copy_cpu_gpu(self, verbose)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inoutThe field.
verboselogicalinoptionalFlag to activate verbose mode.

Call graph

copy_transpose_cpu_gpu

Copy transposed data from CPU to GPU. This routine is called by equation typically passing either q_gpu or q_aux_gpu.

fortran
subroutine copy_transpose_cpu_gpu(self, nv, q_cpu, q_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inoutThe equation.
nvinteger(kind=I4P)inNumber of varibales.
q_cpureal(kind=R8P)inConservative variables on CPU.
q_gpureal(kind=R8P)outConservative variables on GPU.

Call graph

copy_transpose_gpu_cpu

Copy transposed data from GPU to CPU. This routine is called by equation typically passing either q_gpu or q_aux_gpu.

fortran
subroutine copy_transpose_gpu_cpu(self, nv, q_gpu, q_cpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inoutThe equation.
nvinteger(kind=I4P)inNumber of varibales.
q_gpureal(kind=R8P)inConservative variables on GPU.
q_cpureal(kind=R8P)inoutConservative variables on CPU.

Call graph

initialize

Initialize field.

fortran
subroutine initialize(self, mpih, field, nv_aux, verbose)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inoutThe field.
mpihtype(mpih_gmp_object)intargetMPI handler, GMP backend.
fieldtype(field_object)intargetField variable array.
nv_auxinteger(kind=I4P)inoptionalNumber of auxiliary variables.
verboselogicalinoptionalFlag to activate verbose mode.

Call graph

update_ghost_local

Update (local) ghost cells.

fortran
subroutine update_ghost_local(self, q_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inThe field.
q_gpureal(kind=R8P)inoutField component to be updated.

Call graph

update_ghost_mpi

Update ghost cells within other processes.

fortran
subroutine update_ghost_mpi(self, q_gpu, step)

Arguments

NameTypeIntentAttributesDescription
selfclass(field_gmp_object)inoutThe field.
q_gpureal(kind=R8P)inoutField component to be updated.
stepinteger(kind=I4P)inoptionalStep to be perfordmed in asyncronous comp.

Call graph