39 use json_module,
only : json_file
52 deferred :: recompute_metrics
70 module subroutine advection_factory(object, json, coef, &
71 ulag, vlag, wlag, dtlag, tlag,
time_scheme, use_dummy, slag)
72 class(advection_t),
allocatable,
intent(inout) :: object
73 type(json_file),
intent(inout) :: json
74 type(
coef_t),
intent(inout),
target :: coef
76 real(kind=
rp),
intent(in),
target :: dtlag(10)
77 real(kind=
rp),
intent(in),
target :: tlag(10)
79 logical,
optional,
intent(in) :: use_dummy
81 end subroutine advection_factory
84 public :: advection_factory
99 subroutine compute_adv(this, vx, vy, vz, fx, fy, fz, Xh, coef, n, dt)
100 import :: advection_t
105 class(advection_t),
intent(inout) :: this
106 type(
space_t),
intent(in) :: Xh
107 type(
coef_t),
intent(in) :: coef
108 type(
field_t),
intent(inout) :: vx, vy, vz
109 type(
field_t),
intent(inout) :: fx, fy, fz
110 integer,
intent(in) :: n
111 real(kind=
rp),
intent(in),
optional :: dt
112 end subroutine compute_adv
127 subroutine compute_scalar_adv(this, vx, vy, vz, s, fs, Xh, coef, n, dt)
128 import :: advection_t
133 class(advection_t),
intent(inout) :: this
134 type(
field_t),
intent(inout) :: vx, vy, vz
135 type(
field_t),
intent(inout) :: s
136 type(
field_t),
intent(inout) :: fs
137 type(
space_t),
intent(in) :: Xh
138 type(
coef_t),
intent(in) :: coef
139 integer,
intent(in) :: n
140 real(kind=
rp),
intent(in),
optional :: dt
141 end subroutine compute_scalar_adv
160 subroutine compute_ale_adv(this, vx, vy, vz, wm_x, wm_y, wm_z, &
161 fx, fy, fz, Xh, coef, n, dt)
162 import :: advection_t
167 class(advection_t),
intent(inout) :: this
168 type(
field_t),
intent(inout) :: vx, vy, vz
169 type(
field_t),
intent(inout) :: wm_x, wm_y, wm_z
170 type(
field_t),
intent(inout) :: fx, fy, fz
171 type(
space_t),
intent(in) :: Xh
172 type(
coef_t),
intent(in) :: coef
173 integer,
intent(in) :: n
174 real(kind=
rp),
intent(in),
optional :: dt
175 end subroutine compute_ale_adv
182 subroutine advection_recompute_metrics(this, coef, moving_boundary)
183 import :: advection_t
185 class(advection_t),
intent(inout) :: this
186 type(
coef_t),
intent(in) :: coef
187 logical,
intent(in) :: moving_boundary
188 end subroutine advection_recompute_metrics
193 subroutine advection_free(this)
194 import :: advection_t
195 class(advection_t),
intent(inout) :: this
196 end subroutine advection_free
Update any geometry/metric data inside the advection object. For eg., in ALE, maps the coef_GLL to co...
A factory for advection_t decendants. Both creates and initializes the object.
Add advection operator to the right-hand-side for moving mesh.
Add advection operator to the right-hand-side for a scalar.
Subroutines to add advection terms to the RHS of a transport equation.
Contains the field_serties_t type.
integer, parameter, public rp
Global precision used in computations.
Defines a function space.
Compound scheme for the advection and diffusion operators in a transport equation.
Base class for time integration schemes.
Base abstract type for computing the advection operator.
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
Stores a series (sequence) of fields, logically connected to a base field, and arranged according to ...
The function space for the SEM solution fields.
Implements the logic to compute the time coefficients for the advection and diffusion operators in a ...