39 use,
intrinsic :: iso_c_binding, only : c_associated
41 use json_module,
only : json_file
56 class(
advection_t),
allocatable,
intent(inout) :: this
57 type(json_file),
intent(inout) :: json
58 type(
coef_t),
target :: coef
59 logical :: dealias, found
62 call json_get(json,
'case.numerics.dealias', dealias)
63 call json%get(
'case.numerics.dealiased_polynomial_order', lxd, found)
65 call json_get(json,
'case.numerics.polynomial_order', order)
67 lxd = 3.0_rp / 2.0_rp * (order + 1)
71 if (
allocated(this))
then
82 select type(adv => this)
85 call adv%init(lxd, coef)
87 call adv%init(coef%Xh%lx * 3/2, coef)
Retrieves a parameter by name or throws an error.
Contains the factory routine for advection_t children.
subroutine, public advection_factory(this, json, coef)
A factory for advection_t decendants.
Subroutines to add advection terms to the RHS of a transport equation.
Device abstraction, common interface for various accelerators.
subroutine, public device_free(x_d)
Deallocate memory on the device.
Utilities for retrieving parameters from the case files.
integer, parameter, public rp
Global precision used in computations.
Type encapsulating advection routines with dealiasing.
Type encapsulating advection routines with no dealiasing applied.
Base abstract type for computing the advection operator.
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...