Appearance
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
- prism_fnl_object
- 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
- allocate_gpu
- copy_cpu_gpu
- copy_gpu_cpu
- initialize
- load_restart_files
- save_residuals
- save_simulation_data
- apply_fwl_correction
- compute_coils_current
- set_boundary_conditions
- set_initial_conditions
- update_ghost
- update_rk_ghost
- compute_curl_fd_dev
- compute_curl_fv_dev
- compute_derivative1_fd_dev
- compute_derivative1_fv_dev
- compute_derivative2_fd_dev
- compute_derivative2_fv_dev
- compute_derivative4_fd_dev
- compute_divergence_fd_dev
- compute_divergence_fv_dev
- compute_gradient_fd_dev
- compute_gradient_fv_dev
- compute_laplacian_fd_dev
- compute_laplacian_fv_dev
- compute_residuals_fd_centered_dev
- integrate_blanesmoan_dev
- integrate_cfm_dev
- integrate_leapfrog_dev
- integrate_leapfrog_pic
- integrate_rk_ls_dev
- integrate_rk_ssp_dev
- integrate_rk_yoshida_dev
- simulate
- compute_auxiliary_fields
- compute_dt
- compute_energy
- compute_energy_error
- impose_ct_correction
- impose_div_free
Derived Types
prism_fnl_object
PRISM equations system class definition, GPU (FNL) backend.
Extends: prism_common_object
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
mpih_gpu | type(mpih_object) | MPI handler, FNL backend. | |
field_gpu | type(field_fnl_object) | The field, FNL backend. | |
ib_gpu | type(ib_fnl_object) | IB handler, FNL backend. | |
rk_gpu | type(rk_fnl_object) | RK integrator, FNL backend. | |
weno_gpu | type(weno_fnl_object) | WENO reconstructor, FNL backend. | |
coil_gpu | type(prism_fnl_coil_object) | Coil handler. | |
fwlayer_gpu | type(prism_fnl_fwlayer_object) | fWLayer handler. | |
q_gpu | real(kind=R8P) | pointer | Field cell centered variables. |
dq_gpu | real(kind=R8P) | pointer | Residuals right hand side. |
flxyz_c_gpu | real(kind=R8P) | pointer | Fluxes at cell center with +/- decomposition for all directions. |
flx_f_gpu | real(kind=R8P) | pointer | Fluxes along x at cell face. |
fly_f_gpu | real(kind=R8P) | pointer | Fluxes along y at cell face. |
flz_f_gpu | real(kind=R8P) | pointer | Fluxes along z at cell face. |
curl_gpu | real(kind=R8P) | pointer | Curl fields. |
divergence_gpu | real(kind=R8P) | pointer | Divergence fields. |
qsx_x | real(kind=R8P) | allocatable | X component of vector field over the x stencil. |
qsx_y | real(kind=R8P) | allocatable | Y component of vector field over the x stencil. |
qsx_z | real(kind=R8P) | allocatable | Z component of vector field over the x stencil. |
qsy_x | real(kind=R8P) | allocatable | X component of vector field over the y stencil. |
qsy_Y | real(kind=R8P) | allocatable | Y component of vector field over the y stencil. |
qsy_z | real(kind=R8P) | allocatable | Z component of vector field over the y stencil. |
qsz_x | real(kind=R8P) | allocatable | X component of vector field over the z stencil. |
qsz_y | real(kind=R8P) | allocatable | Y component of vector field over the z stencil. |
qsz_z | real(kind=R8P) | allocatable | Z component of vector field over the z stencil. |
compute_curl_dev | procedure(compute_curl_interface_dev) | pass(self), pointer | Compute curl. |
compute_derivative1_dev | procedure(compute_derivative1_interface_dev) | pass(self), pointer | Compute derivative1. |
compute_derivative2_dev | procedure(compute_derivative2_interface_dev) | pass(self), pointer | Compute derivative2. |
compute_derivative4_dev | procedure(compute_derivative4_interface_dev) | pass(self), pointer | Compute derivative4. |
compute_divergence_dev | procedure(compute_divergence_interface_dev) | pass(self), pointer | Compute divergence. |
compute_gradient_dev | procedure(compute_gradient_interface_dev) | pass(self), pointer | Compute gradient. |
compute_laplacian_dev | procedure(compute_laplacian_interface_dev) | pass(self), pointer | Compute laplacian. |
compute_residuals_dev | procedure(compute_residuals_interface_dev) | pass(self), pointer | Compute residuals. |
integrate_dev | procedure(integrate_interface_dev) | pass(self), pointer | Integrate, time operator. |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
allocate_gpu | pass(self) | Allocate GPU data. |
copy_cpu_gpu | pass(self) | Copy data from CPU to GPU. |
copy_gpu_cpu | pass(self) | Copy data from GPU to CPU. |
initialize | pass(self) | Initialize the equation. |
load_restart_files | pass(self) | Load restart files. |
save_residuals | pass(self) | Save residuals history. |
save_simulation_data | pass(self) | Save all simulation data. |
apply_fwl_correction | pass(self) | Apply fWLayer correction (if present) |
compute_coils_current | pass(self) | Compute current coils sources. |
set_boundary_conditions | pass(self) | Set boundary conditions of equation. |
set_initial_conditions | pass(self) | Set initial conditions of equation. |
update_ghost | pass(self) | Update ghost cells and set boundary conditions. |
update_rk_ghost | pass(self) | Update RK stage ghost cells. |
compute_curl_fd_dev | pass(self) | Compute curl of vector field by finite difference. |
compute_curl_fv_dev | pass(self) | Compute curl of vector field by finite volume. |
compute_derivative1_fd_dev | pass(self) | Compute derivative1 of scalar fields, finite difference schemes. |
compute_derivative1_fv_dev | pass(self) | Compute derivative1 of scalar fields, finite volume schemes. |
compute_derivative2_fd_dev | pass(self) | Compute derivative2 of scalar fields, finite difference schemes. |
compute_derivative2_fv_dev | pass(self) | Compute derivative2 of scalar fields, finite volume schemes. |
compute_derivative4_fd_dev | pass(self) | Compute derivative4 of scalar fields, finite difference schemes. |
compute_divergence_fd_dev | pass(self) | Compute divergence of vector field by finite difference. |
compute_divergence_fv_dev | pass(self) | Compute divergence of vector field by finite volume. |
compute_gradient_fd_dev | pass(self) | Compute gradient of scalar field, finite difference schemes. |
compute_gradient_fv_dev | pass(self) | Compute gradient of scalar field, finite volume schemes. |
compute_laplacian_fd_dev | pass(self) | Compute laplacian of scalar field, finite difference schemes. |
compute_laplacian_fv_dev | pass(self) | Compute laplacian of scalar field, finite volume schemes. |
compute_residuals_fd_centered_dev | pass(self) | Compute residuals, centered finite difference schemes. |
integrate_blanesmoan_dev | pass(self) | Blanes and Moan scheme. |
integrate_cfm_dev | pass(self) | Commutator-Free Magnus scheme. |
integrate_leapfrog_dev | pass(self) | Leapfrog scheme. |
integrate_rk_ls_dev | pass(self) | RK classical low storage schemes. |
integrate_rk_ssp_dev | pass(self) | SSP RK schemes. |
integrate_rk_yoshida_dev | pass(self) | Yoshida schemes. |
compute_auxiliary_fields | pass(self) | Compute auxiliary fields. |
compute_dt | pass(self) | Compute time step. |
compute_energy | pass(self) | Compute energy. |
compute_energy_error | pass(self) | Compute energy error. |
impose_ct_correction | pass(self) | Impose Constrained Transport correction on q(ivar:ivar+2). |
impose_div_free | pass(self) | Impose divergence-free property. |
simulate | pass(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
copy_cpu_gpu
Copy data from CPU to GPU.
fortran
subroutine copy_cpu_gpu(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
copy_gpu_cpu
Copy data from GPU to CPU.
fortran
subroutine copy_gpu_cpu(self, compute_copy_q_aux, copy_phi)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
compute_copy_q_aux | logical | in | optional | Flag to compute auxiliary variables. |
copy_phi | logical | in | optional | Copy also phi. |
Call graph
initialize
Initialize the equation.
fortran
subroutine initialize(self, filename)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
filename | character(len=*) | in | Input file name. |
Call graph
load_restart_files
Save restart files.
fortran
subroutine load_restart_files(self, t, time)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
t | integer(kind=I4P) | out | Time iteration. | |
time | real(kind=R8P) | out | Time. |
Call graph
save_residuals
Save residuals history.
fortran
subroutine save_residuals(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
save_simulation_data
Save all simulation data.
fortran
subroutine save_simulation_data(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
apply_fwl_correction
Apply correction if a fWL is present.
fortran
subroutine apply_fwl_correction(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
compute_coils_current
Compute current coils sources.
fortran
subroutine compute_coils_current(self, gamma)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
gamma | real(kind=R8P) | in | optional | RK coefficient. |
Call graph
set_boundary_conditions
Set boundary conditions of equation.
fortran
subroutine set_boundary_conditions(self, q_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
q_gpu | real(kind=R8P) | inout | Conservative variables. |
Call graph
set_initial_conditions
Set initial conditions of field.
fortran
subroutine set_initial_conditions(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
q_gpu | real(kind=R8P) | inout | Conservative variables. | |
step | integer(kind=I4P) | in | optional | Step to be perfordmed in asyncronous comp. |
s | integer(kind=I4P) | in | optional | Stage counter. |
Call graph
update_rk_ghost
Update RK ghost cells.
fortran
subroutine update_rk_ghost(self, dt, phi_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | RK object. | |
dt | real(kind=R8P) | in | Current time step. | |
phi_gpu | real(kind=R8P) | in | optional | IB distance. |
Call graph
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
curl_gpu | real(kind=R8P) | inout | Curl. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
curl_gpu | real(kind=R8P) | inout | Curl. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
dir | integer(kind=I4P) | in | Direction, 1=X, 2=Y, 3=Z. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
dq_ds_gpu | real(kind=R8P) | inout | Derivative1, 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
dir | integer(kind=I4P) | in | Direction, 1=X, 2=Y, 3=Z. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
dq_ds_gpu | real(kind=R8P) | inout | Derivative1, 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
dir | integer(kind=I4P) | in | Direction, 1=X, 2=Y, 3=Z. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
d2q_ds2_gpu | real(kind=R8P) | inout | Derivative2, 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
dir | integer(kind=I4P) | in | Direction, 1=X, 2=Y, 3=Z. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
d2q_ds2_gpu | real(kind=R8P) | inout | Derivative2, 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
dir | integer(kind=I4P) | in | Direction, 1=X, 2=Y, 3=Z. | |
ivar | integer(kind=I4P) | in | Start index of variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
d4q_ds4_gpu | real(kind=R8P) | inout | Derivative4, 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)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Start index of field of q. | |
ovar | integer(kind=I4P) | in | Output index in divergence. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
divergence_gpu | real(kind=R8P) | inout | Divergence. |
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)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Start index of field of q. | |
ovar | integer(kind=I4P) | in | Output index in divergence. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
divergence_gpu | real(kind=R8P) | inout | Divergence. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Index of scalar var of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
gradient_gpu | real(kind=R8P) | inout | Gradient. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Index of scalar var of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
gradient_gpu | real(kind=R8P) | inout | Gradient. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Index of scalar variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
laplacian_gpu | real(kind=R8P) | inout | Gradient. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | in | The equation. | |
ivar | integer(kind=I4P) | in | Index of scalar variable of q. | |
q_gpu | real(kind=R8P) | in | Field variables. | |
laplacian_gpu | real(kind=R8P) | inout | Gradient. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
q_gpu | real(kind=R8P) | inout | Conservative variables. | |
dq_gpu | real(kind=R8P) | inout | Residuals. | |
s | integer(kind=I4P) | in | optional | Stage counter. |
Call graph
integrate_blanesmoan_dev
Integrate equation, time operator, Blanes and Moan scheme.
fortran
subroutine integrate_blanesmoan_dev(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
integrate_cfm_dev
Integrate equation, time operator, Commutator-Free Magnus integrator.
fortran
subroutine integrate_cfm_dev(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
integrate_leapfrog_dev
Integrate equation, time operator, leapfrog scheme.
fortran
subroutine integrate_leapfrog_dev(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
integrate_leapfrog_pic
Integrate equation, time operator, leapfrog scheme.
fortran
subroutine integrate_leapfrog_pic(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
integrate_rk_yoshida_dev
Integrate equation, time operator, Yoshida RK scheme.
fortran
subroutine integrate_rk_yoshida_dev(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
simulate
Perform the simulation.
fortran
subroutine simulate(self, filename)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
filename | character(len=*) | in | Input file name. |
Call graph
compute_auxiliary_fields
Compute auxiliary fields.
fortran
subroutine compute_auxiliary_fields(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
compute_dt
Compute maximum time step accordingly to CFL stabilty criterion.
fortran
subroutine compute_dt(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
compute_energy
Compute energy.
fortran
subroutine compute_energy(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph
compute_energy_error
Compute energy error.
fortran
subroutine compute_energy_error(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. | |
ivar | integer(kind=I4P) | in | Variable (start) index in q. |
Call graph
impose_div_free
Impose divergence-free property.
fortran
subroutine impose_div_free(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_object) | inout | The equation. |
Call graph