![]() |
MODFLOW 6
version 6.7.0.dev3
USGS Modular Hydrologic Model
|
Total Variation Diminishing (TVD) interpolation scheme. More...
Private Member Functions | |
procedure | compute |
procedure | set_field |
final | destructor |
procedure, private | limiter |
procedure, private | compute_node_distance |
type(utvdschemetype) function | constructor (dis, fmi, gradient) |
Private Attributes | |
class(disbasetype), pointer | dis |
type(tspfmitype), pointer | fmi |
class(igradienttype), pointer | gradient |
real(dp), dimension(:), pointer | phi |
type(localcellextrematype), allocatable | min_max_phi |
integer(i4b) | limiter_id = 2 |
real(dp), dimension(:, :), allocatable | cached_node_distance |
This class implements a high-resolution, TVD interpolation scheme for use in transport modeling. It extends a generic interpolation scheme interface and supports multiple TVD limiters (van Leer, Koren, Superbee, van Albada, etc.) for controlling numerical diffusion and oscillations. The default limiter is van Leer, but others can be selected by changing the limiter_id
member.
The scheme uses a combination of low-order upwind and high-order limited terms to compute face concentrations. The high-order term is constructed using a gradient-based virtual node value, following the approach described by Darwish et al. An additional TVD clamp is applied to the virtual node value to enforce TVD compliance, especially on grids where the original method may not guarantee monotonicity.
limiter_id
member (default is van Leer).find_local_extrema
finds the minimum and maximum values among the current cell and its neighbors, which is used to enforce the TVD condition.compute
method calculates the face coefficients for the transport equation. Definition at line 37 of file UTVDScheme.f90.
|
private |
Definition at line 48 of file UTVDScheme.f90.
|
private |
|
private |
|
finalprivate |
|
private |
Definition at line 52 of file UTVDScheme.f90.
|
private |
Definition at line 49 of file UTVDScheme.f90.
|
private |
Definition at line 46 of file UTVDScheme.f90.
|
private |
Definition at line 39 of file UTVDScheme.f90.
|
private |
Definition at line 40 of file UTVDScheme.f90.
|
private |
Definition at line 41 of file UTVDScheme.f90.
|
private |
Definition at line 45 of file UTVDScheme.f90.
|
private |
Definition at line 44 of file UTVDScheme.f90.
|
private |
Definition at line 43 of file UTVDScheme.f90.