Skip to content

adam_prism_fnl_object

ADAM, PRISM (Plasma Research usIng Simulation Methods) equations system class definition, GPU (FNL) backend.

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

Dependencies

Contents

Derived Types

prism_fnl_object

PRISM equations system class definition, GPU (FNL) backend.

Inheritance

Extends: prism_common_object

Components

NameTypeAttributesDescription
iotype(io_object)IO handler.
adamtype(adam_object)ADAM.
amrtype(amr_object)AMR marker handler.
slicestype(slices_object)Slices handler.
blanesmoantype(blanesmoan_object)Blanes-Moan integrator.
cfmtype(cfm_object)Commutator-Free Magnus integrator.
leapfrogtype(leapfrog_object)Leapfrog integrator.
flailtype(flail_object)Linear algebra methods handler.
fdv_schemecharacter(len=:)allocatableFDV scheme, fd/fv.
fdv_orderinteger(kind=I4P)Order of finite difference/volume schemes, general order.
fdv_half_stencilinteger(kind=I4P)Half stencil length of finite difference/volume schemes.
fdv_half_stencilsinteger(kind=I4P)Half stencil length of fdv schemes for each derivative up to 6.
ngcinteger(kind=I4P)pointerNumber of ghost cells.
niinteger(kind=I4P)pointerNumber of cells in i direction.
njinteger(kind=I4P)pointerNumber of cells in j direction.
nkinteger(kind=I4P)pointerNumber of cells in k direction.
nbinteger(kind=I4P)pointerTotal blocks number for MPI.
blocks_numberinteger(kind=I4P)pointerActual blocks number.
nvinteger(kind=I4P)pointerNumber of variables in q vector.
compute_block_total_variationprocedure(compute_block_total_variation_interface)pass(self), pointerCompute TV.
compute_curlprocedure(compute_curl_interface)pass(self), pointerCompute curl.
compute_derivative1procedure(compute_derivative1_interface)pass(self), pointerCompute deriv1.
compute_derivative2procedure(compute_derivative2_interface)pass(self), pointerCompute deriv2.
compute_derivative4procedure(compute_derivative4_interface)pass(self), pointerCompute deriv4.
compute_divergenceprocedure(compute_divergence_interface)pass(self), pointerCompute dive.
compute_gradientprocedure(compute_gradient_interface)pass(self), pointerCompute grad.
compute_laplacianprocedure(compute_laplacian_interface)pass(self), pointerCompute laplac.
nv_cinteger(kind=I4P)pointerNumber of conservative variables in q vector.
nv_sinteger(kind=I4P)pointerNumber of source variables in q vector.
nv_clinteger(kind=I4P)pointerNumber of divergence cleaning variables in q vector.
qreal(kind=R8P)allocatableConservative cell centered variables.
dqreal(kind=R8P)allocatableResiduals right hand side.
q_picreal(kind=R8P)allocatablePIC variables.
pic_fieldsreal(kind=R8P)allocatableFields value at particle locations.
curlreal(kind=R8P)allocatableCurl fields.
divergencereal(kind=R8P)allocatableDivergence fields.
q_nametype(string)allocatableFields names [1:nv].
dq_nametype(string)allocatableResiduals names [1:nv].
q_pic_nametype(string)allocatablePIC Fields names.
curl_nametype(string)allocatableCurl fields names.
div_nametype(string)allocatableDivergence fields names.
energy_Dreal(kind=R8P)allocatableEnergy of field D, time history.
energy_Breal(kind=R8P)allocatableEnergy of field B, time history.
coil_powerreal(kind=R8P)allocatablePower of coils, time history.
Poynting_fluxreal(kind=R8P)allocatableTotal Poynting flux from boundary, time history.
rms_energy_error_Dreal(kind=R8P)RMS energy error of D field.
rms_energy_error_Breal(kind=R8P)RMS energy error of B field.
max_divergence_Dreal(kind=R8P)Maximum of divergence of D field.
max_divergence_Breal(kind=R8P)Maximum of divergence of B field.
max_divergence_Jreal(kind=R8P)Maximum of divergence of J field.
q_gpureal(kind=R8P)pointerField cell centered variables.
dq_gpureal(kind=R8P)pointerResiduals right hand side.
flxyz_c_gpureal(kind=R8P)pointerFluxes at cell center with +/- decomposition for all directions.
flx_f_gpureal(kind=R8P)pointerFluxes along x at cell face.
fly_f_gpureal(kind=R8P)pointerFluxes along y at cell face.
flz_f_gpureal(kind=R8P)pointerFluxes along z at cell face.
curl_gpureal(kind=R8P)pointerCurl fields.
divergence_gpureal(kind=R8P)pointerDivergence fields.
db5integer(kind=I4P)Device data bounds (rank 5): bb(1,:)=lower, bb(2,:)=upper.
hb5integer(kind=I4P)Host buffer data bounds (rank 5): bb(1,:)=lower, bb(2,:)=upper.
buf_5D_R8Preal(kind=R8P)allocatableBuffer (host memory, device shape), rank 5, R8P.
compute_curl_devprocedure(compute_curl_interface_dev)pass(self), pointerCompute curl.
compute_derivative1_devprocedure(compute_derivative1_interface_dev)pass(self), pointerCompute derivative1.
compute_derivative2_devprocedure(compute_derivative2_interface_dev)pass(self), pointerCompute derivative2.
compute_derivative4_devprocedure(compute_derivative4_interface_dev)pass(self), pointerCompute derivative4.
compute_divergence_devprocedure(compute_divergence_interface_dev)pass(self), pointerCompute divergence.
compute_gradient_devprocedure(compute_gradient_interface_dev)pass(self), pointerCompute gradient.
compute_laplacian_devprocedure(compute_laplacian_interface_dev)pass(self), pointerCompute laplacian.
compute_residuals_devprocedure(compute_residuals_interface_dev)pass(self), pointerCompute residuals.
integrate_devprocedure(integrate_interface_dev)pass(self), pointerIntegrate, time operator.

Type-Bound Procedures

NameAttributesDescription
load_fdv_from_filepass(self)Load FDV config from file.
close_block_xh5fnopassClose XH5F file block.
close_file_xh5fnopassClose XH5F file.
open_block_xh5fpass(self)Open block file XH5F.
open_file_xh5fpass(self)Open file XH5F.
save_q_xh5fpass(self)Save in XH5F (XDMF/HDF5) format.
allocate_commonpass(self)Allocate common data.
compute_auxiliary_fieldspass(self)Compute auxiliary fields.
initializepass(self)Initialize the equation common data.
save_energy_errorpass(self)Save energy error history.
save_energy_historypass(self)Save energy history.
save_divergence_historypass(self)Save divergence history.
save_restart_filespass(self)Save restart files.
save_xh5fpass(self)Save simulation data in XH5F format.
initialize_coilspass(self)Initialize coils.
set_rectangular_coil_xpass(self)Subroutine to set a rectangular coil source with +-x normal
set_rectangular_coil_ypass(self)Subroutine to set a rectangular coil source with +-y normal
set_rectangular_coil_zpass(self)Subroutine to set a rectangular coil source with +-z normal
set_circular_coil_xpass(self)Subroutine to set a circular coil source with +-x normal
set_circular_coil_ypass(self)Subroutine to set a circular coil source with +-y normal
set_circular_coil_zpass(self)Subroutine to set a circular coil source with +-z normal
set_solenoid_xpass(self)Subroutine to set a solenoid source with +-x normal
set_solenoid_ypass(self)Subroutine to set a solenoid source with +-y normal
set_solenoid_zpass(self)Subroutine to set a solenoid source with +-z normal
allocate_gpupass(self)Allocate GPU data.
copy_cpu_gpupass(self)Copy data from CPU to GPU.
copy_gpu_cpupass(self)Copy data from GPU to CPU.
initialize_prismpass(self)Initialize PRISM equation.
load_restart_filespass(self)Load restart files.
save_residualspass(self)Save residuals history.
save_simulation_datapass(self)Save all simulation data.
apply_fwl_correctionpass(self)Apply fWLayer correction (if present)
compute_coils_currentpass(self)Compute current coils sources.
set_boundary_conditionspass(self)Set boundary conditions of equation.
set_initial_conditionspass(self)Set initial conditions of equation.
update_ghostpass(self)Update ghost cells and set boundary conditions.
update_rk_ghostpass(self)Update RK stage ghost cells.
compute_curl_fd_devpass(self)Compute curl of vector field by finite difference.
compute_curl_fv_devpass(self)Compute curl of vector field by finite volume.
compute_derivative1_fd_devpass(self)Compute derivative1 of scalar fields, finite difference schemes.
compute_derivative1_fv_devpass(self)Compute derivative1 of scalar fields, finite volume schemes.
compute_derivative2_fd_devpass(self)Compute derivative2 of scalar fields, finite difference schemes.
compute_derivative2_fv_devpass(self)Compute derivative2 of scalar fields, finite volume schemes.
compute_derivative4_fd_devpass(self)Compute derivative4 of scalar fields, finite difference schemes.
compute_divergence_fd_devpass(self)Compute divergence of vector field by finite difference.
compute_divergence_fv_devpass(self)Compute divergence of vector field by finite volume.
compute_gradient_fd_devpass(self)Compute gradient of scalar field, finite difference schemes.
compute_gradient_fv_devpass(self)Compute gradient of scalar field, finite volume schemes.
compute_laplacian_fd_devpass(self)Compute laplacian of scalar field, finite difference schemes.
compute_laplacian_fv_devpass(self)Compute laplacian of scalar field, finite volume schemes.
compute_residuals_fd_centered_devpass(self)Compute residuals, centered finite difference schemes.
integrate_blanesmoan_devpass(self)Blanes and Moan scheme.
integrate_cfm_devpass(self)Commutator-Free Magnus scheme.
integrate_leapfrog_devpass(self)Leapfrog scheme.
integrate_rk_ls_devpass(self)RK classical low storage schemes.
integrate_rk_ssp_devpass(self)SSP RK schemes.
integrate_rk_yoshida_devpass(self)Yoshida schemes.
compute_dtpass(self)Compute time step.
compute_energypass(self)Compute energy.
compute_energy_errorpass(self)Compute energy error.
compute_max_divergencepass(self)Compute divergence of D, B and J fields for diagnostics.
impose_ct_correctionpass(self)Impose Constrained Transport correction on q(ivar:ivar+2).
impose_div_freepass(self)Impose divergence-free property.
simulatepass(self)Perform the simulation.

Interfaces

compute_curl_interface_dev

compute_derivative1_interface_dev

compute_derivative2_interface_dev

compute_derivative4_interface_dev

compute_divergence_interface_dev

compute_gradient_interface_dev

compute_laplacian_interface_dev

compute_residuals_interface_dev

integrate_interface_dev

Subroutines

allocate_gpu

Allocate GPU data.

fortran
subroutine allocate_gpu(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

copy_cpu_gpu

Copy data from CPU to GPU.

fortran
subroutine copy_cpu_gpu(self, verbose)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
verboselogicalinoptionalTrigger verbose output.

Call graph

copy_gpu_cpu

Copy data from GPU to CPU.

fortran
subroutine copy_gpu_cpu(self, compute_copy_q_aux, copy_phi, verbose)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
compute_copy_q_auxlogicalinoptionalFlag to compute auxiliary variables.
copy_philogicalinoptionalCopy also phi.
verboselogicalinoptionalTrigger verbose output.

Call graph

initialize_prism

Initialize PRISM equation.

fortran
subroutine initialize_prism(self, filename)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
filenamecharacter(len=*)inInput file name.

Call graph

load_restart_files

Save restart files.

fortran
subroutine load_restart_files(self, t, time)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
tinteger(kind=I4P)outTime iteration.
timereal(kind=R8P)outTime.

Call graph

save_residuals

Save residuals history.

fortran
subroutine save_residuals(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

save_simulation_data

Save all simulation data.

fortran
subroutine save_simulation_data(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

apply_fwl_correction

Apply correction if a fWL is present.

fortran
subroutine apply_fwl_correction(self, q_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
q_gpureal(kind=R8P)inoutConservative variables.

Call graph

compute_coils_current

Compute current coils sources.

fortran
subroutine compute_coils_current(self, q_gpu, gamm)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
q_gpureal(kind=R8P)inoutConservative variables.
gammreal(kind=R8P)inoptionalRK coefficient.

Call graph

set_boundary_conditions

Set boundary conditions of equation.

fortran
subroutine set_boundary_conditions(self, q_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
q_gpureal(kind=R8P)inoutConservative variables.

Call graph

set_initial_conditions

Set initial conditions of field.

fortran
subroutine set_initial_conditions(self, is_restart)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
is_restartlogicalinBranching sentinel for restart/non restart path.

Call graph

update_ghost

Update ghost cells. If not specified all steps are perfermod, syncronous computation

fortran
subroutine update_ghost(self, q_gpu, step, s)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
q_gpureal(kind=R8P)inoutConservative variables.
stepinteger(kind=I4P)inoptionalStep to be perfordmed in asyncronous comp.
sinteger(kind=I4P)inoptionalStage counter.

Call graph

update_rk_ghost

Update RK ghost cells.

fortran
subroutine update_rk_ghost(self, dt, phi_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutRK object.
dtreal(kind=R8P)inCurrent time step.
phi_gpureal(kind=R8P)inoptionalIB distance.

compute_curl_fd_dev

Compute curl of vector fields, div(q(ivar:ivar+2), using finite difference schemes.

fortran
subroutine compute_curl_fd_dev(self, ivar, q_gpu, curl_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
curl_gpureal(kind=R8P)inoutCurl.

Call graph

compute_curl_fv_dev

Compute curl of vector fields, div(q(ivar:ivar+2), using finite volume schemes.

fortran
subroutine compute_curl_fv_dev(self, ivar, q_gpu, curl_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
curl_gpureal(kind=R8P)inoutCurl.

compute_derivative1_fd_dev

Compute derivative1 of scalar fields, dq(ivar)/ds, using finite difference schemes.

fortran
subroutine compute_derivative1_fd_dev(self, dir, ivar, q_gpu, dq_ds_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
dirinteger(kind=I4P)inDirection, 1=X, 2=Y, 3=Z.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
dq_ds_gpureal(kind=R8P)inoutDerivative1, dq/ds.

compute_derivative1_fv_dev

Compute derivative1 of scalar fields, dq(ivar)/ds, using finite volume schemes.

fortran
subroutine compute_derivative1_fv_dev(self, dir, ivar, q_gpu, dq_ds_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
dirinteger(kind=I4P)inDirection, 1=X, 2=Y, 3=Z.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
dq_ds_gpureal(kind=R8P)inoutDerivative1, dq/ds.

compute_derivative2_fd_dev

Compute derivative2 of scalar fields, d2q(ivar)/ds2, using finite difference schemes.

fortran
subroutine compute_derivative2_fd_dev(self, dir, ivar, q_gpu, d2q_ds2_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
dirinteger(kind=I4P)inDirection, 1=X, 2=Y, 3=Z.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
d2q_ds2_gpureal(kind=R8P)inoutDerivative2, d2q/ds2.

compute_derivative2_fv_dev

Compute derivative2 of scalar fields, d2q(ivar)/ds2, using finite volume schemes.

fortran
subroutine compute_derivative2_fv_dev(self, dir, ivar, q_gpu, d2q_ds2_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
dirinteger(kind=I4P)inDirection, 1=X, 2=Y, 3=Z.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
d2q_ds2_gpureal(kind=R8P)inoutDerivative2, d2q/ds2.

compute_derivative4_fd_dev

Compute derivative4 of scalar fields, d4q(ivar)/ds4, using finite difference schemes.

fortran
subroutine compute_derivative4_fd_dev(self, dir, ivar, q_gpu, d4q_ds4_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
dirinteger(kind=I4P)inDirection, 1=X, 2=Y, 3=Z.
ivarinteger(kind=I4P)inStart index of variable of q.
q_gpureal(kind=R8P)inField variables.
d4q_ds4_gpureal(kind=R8P)inoutDerivative4, d4q/ds4.

compute_divergence_fd_dev

Compute divergence of vector fields, div(q(ivar:ivar+2), using finite difference schemes. Directly computes divergence from transposed GPU layout (b,i,j,k,v).

fortran
subroutine compute_divergence_fd_dev(self, ivar, ovar, q_gpu, divergence_gpu, maxdiv)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inStart index of field of q.
ovarinteger(kind=I4P)inOutput index in div.
q_gpureal(kind=R8P)inField variables.
divergence_gpureal(kind=R8P)inoutDivergence.
maxdivreal(kind=R8P)outoptionalMax divergence, for checking.

Call graph

compute_divergence_fv_dev

Compute divergence of vector fields, div(q(ivar:ivar+2), using finite volume schemes. Directly computes divergence from transposed GPU layout (b,i,j,k,v).

fortran
subroutine compute_divergence_fv_dev(self, ivar, ovar, q_gpu, divergence_gpu, maxdiv)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inStart index of field of q.
ovarinteger(kind=I4P)inOutput index in divergence.
q_gpureal(kind=R8P)inField variables.
divergence_gpureal(kind=R8P)inoutDivergence.
maxdivreal(kind=R8P)outoptionalMax divergence, for checking.

compute_gradient_fd_dev

Compute gradient of scalar variable q(ivar), finite difference schemes.

fortran
subroutine compute_gradient_fd_dev(self, ivar, q_gpu, gradient_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inIndex of scalar var of q.
q_gpureal(kind=R8P)inField variables.
gradient_gpureal(kind=R8P)inoutGradient.

compute_gradient_fv_dev

Compute gradient of scalar variable q(ivar), finite volume schemes.

fortran
subroutine compute_gradient_fv_dev(self, ivar, q_gpu, gradient_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inIndex of scalar var of q.
q_gpureal(kind=R8P)inField variables.
gradient_gpureal(kind=R8P)inoutGradient.

compute_laplacian_fd_dev

Compute laplacian of scalar variable q(ivar), finite difference schemes.

fortran
subroutine compute_laplacian_fd_dev(self, ivar, q_gpu, laplacian_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inIndex of scalar variable of q.
q_gpureal(kind=R8P)inField variables.
laplacian_gpureal(kind=R8P)inoutGradient.

compute_laplacian_fv_dev

Compute laplacian of scalar variable q(ivar), finite volume schemes.

fortran
subroutine compute_laplacian_fv_dev(self, ivar, q_gpu, laplacian_gpu)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inThe equation.
ivarinteger(kind=I4P)inIndex of scalar variable of q.
q_gpureal(kind=R8P)inField variables.
laplacian_gpureal(kind=R8P)inoutGradient.

compute_residuals_fd_centered_dev

Compute residuals of equation, space operator, centered finite difference schemes.

fortran
subroutine compute_residuals_fd_centered_dev(self, q_gpu, dq_gpu, s)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
q_gpureal(kind=R8P)inoutConservative variables.
dq_gpureal(kind=R8P)inoutResiduals.
sinteger(kind=I4P)inoptionalStage counter.

Call graph

integrate_blanesmoan_dev

Integrate equation, time operator, Blanes and Moan scheme.

fortran
subroutine integrate_blanesmoan_dev(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

integrate_cfm_dev

Integrate equation, time operator, Commutator-Free Magnus integrator.

fortran
subroutine integrate_cfm_dev(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

integrate_leapfrog_dev

Integrate equation, time operator, leapfrog scheme.

fortran
subroutine integrate_leapfrog_dev(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

integrate_leapfrog_pic

Integrate equation, time operator, leapfrog scheme.

fortran
subroutine integrate_leapfrog_pic(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

integrate_rk_ls_dev

Integrate equation, time operator, RK classical low storage schemes. Low storage RK working on q_rk(:,:,:,:,:,1)/q as stages, update q in place.

fortran
subroutine integrate_rk_ls_dev(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

integrate_rk_ssp_dev

Integrate equation, time operator, SSP RK schemes. SSP RK working on q_rk as stages.

fortran
subroutine integrate_rk_ssp_dev(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

integrate_rk_yoshida_dev

Integrate equation, time operator, Yoshida RK scheme.

fortran
subroutine integrate_rk_yoshida_dev(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

simulate

Perform the simulation.

fortran
subroutine simulate(self, filename)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
filenamecharacter(len=*)inInput file name.

Call graph

compute_dt

Compute maximum time step accordingly to CFL stabilty criterion.

fortran
subroutine compute_dt(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

compute_energy

Compute energy.

fortran
subroutine compute_energy(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

compute_energy_error

Compute energy error.

fortran
subroutine compute_energy_error(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

compute_max_divergence

Compute maximum divergence.

fortran
subroutine compute_max_divergence(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph

impose_ct_correction

Impose Constrained Transport Correction on vectorial variable q(ivar:ivar+2). Note that self%divergence memory is used as buffer, be carefull.

fortran
subroutine impose_ct_correction(self, ivar)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.
ivarinteger(kind=I4P)inVariable (start) index in q.

Call graph

impose_div_free

Impose divergence-free property.

fortran
subroutine impose_div_free(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_object)inoutThe equation.

Call graph