35 use json_utils,
only: json_get, json_get_or_default
36 use utils,
only: neko_error
57 module subroutine advection_adjoint_factory(object, json, coef, ulag, vlag, wlag, &
58 dtlag, tlag, time_scheme, use_dummy, slag)
59 class(advection_adjoint_t),
allocatable,
intent(inout) :: object
60 type(json_file),
intent(inout) :: json
61 type(coef_t),
intent(inout),
target :: coef
62 type(field_series_t),
intent(in),
target :: ulag, vlag, wlag
63 real(kind=rp),
intent(in),
target :: dtlag(10)
64 real(kind=rp),
intent(in),
target :: tlag(10)
65 type(time_scheme_controller_t),
intent(in),
target :: time_scheme
66 logical,
optional,
intent(in) :: use_dummy
67 type(field_series_t),
target,
optional,
intent(in) :: slag
69 logical :: dealias, oifs
70 real(kind=rp) :: ctarget
74 if (
allocated(object))
then
79 if (
present(use_dummy))
then
80 if (use_dummy .eqv. .true.)
then
81 call neko_error(
"Dummy advection is not supported in the adjoint module.")
86 call json_get(json,
'dealias', dealias)
87 call json_get(json,
'polynomial_order', order)
88 call json_get_or_default(json,
'oifs', oifs, .false.)
90 call json_get_or_default(json,
'dealiased_polynomial_order', &
91 lxd, (3 * (order + 1)) / 2)
93 call json_get_or_default(json,
'target_cfl', ctarget, 1.9_rp)
96 call neko_error(
"OIFS advection is not supported in the adjoint module.")
105 select type (adv => object)
107 call adv%init(lxd, coef)
120 end subroutine advection_adjoint_factory
123end submodule advection_adjoint_fctry
Subroutines to add advection terms to the RHS of a transport equation.
Subroutines to add perturbed advection terms to the RHS of a transport equation.
Subroutines to add advection terms to the RHS of a transport equation.
Type encapsulating advection routines with dealiasing.
Type encapsulating advection routines with no dealiasing applied.