37 use json_utils,
only: json_get, json_get_or_default
38 use utils,
only: neko_error
59 module subroutine advection_adjoint_factory(object, json, coef, ulag, vlag, wlag, &
60 dtlag, tlag, time_scheme, use_dummy, slag)
61 class(advection_adjoint_t),
allocatable,
intent(inout) :: object
62 type(json_file),
intent(inout) :: json
63 type(coef_t),
intent(inout),
target :: coef
64 type(field_series_t),
intent(in),
target :: ulag, vlag, wlag
65 real(kind=rp),
intent(in),
target :: dtlag(10)
66 real(kind=rp),
intent(in),
target :: tlag(10)
67 type(time_scheme_controller_t),
intent(in),
target :: time_scheme
68 logical,
optional,
intent(in) :: use_dummy
69 type(field_series_t),
target,
optional,
intent(in) :: slag
71 logical :: dealias, oifs
72 real(kind=rp) :: ctarget
76 if (
allocated(object))
then
81 if (
present(use_dummy))
then
82 if (use_dummy .eqv. .true.)
then
83 call neko_error(
"Dummy advection is not supported in the adjoint module.")
88 call json_get(json,
'dealias', dealias)
89 call json_get(json,
'polynomial_order', order)
90 call json_get_or_default(json,
'oifs', oifs, .false.)
92 call json_get_or_default(json,
'dealiased_polynomial_order', &
93 lxd, (3 * (order + 1)) / 2)
95 call json_get_or_default(json,
'target_cfl', ctarget, 1.9_rp)
98 call neko_error(
"OIFS advection is not supported in the adjoint module.")
107 select type (adv => object)
109 call adv%init(lxd, coef)
122 end subroutine advection_adjoint_factory
125end 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.