Add parameterization for the effective hydrodynamic dispersion tensor
Description
Implement a parameterization that can represent the variability of the effective hydrodynamic dispersion tensor.
In here we have to distinguish several parameters. The most relevant to highlight is the effective hydrodynamic dispersion tensor D_\text{hd}^\text{eff}(\theta_w,\text{Pe}_\mu)\in\mathbb{R}^{d\times d}
, however, it may depend on others. It is easier to explain the several options with examples for each parameter (assume that simulation is in 2D):
\text{Pe}_\mu
Microscopic Péclet For now, we only calculate the microscopic Péclet number because is the one needed for several of the parameterizations of D_\text{hd}^\text{eff}
. Moreover, it is always written. Hence, any parameterization will always need the characteristic length of the pore space char_length
and the molecular diffusion mol_diff
:
\text{Pe}_\mu(x)=\frac{\ell\|j_w(x)\|}{D_m \theta_w}
volumes:
sand:
index: 0
solute:
type: #...
parameters:
char_length: 1.5E-11
mol_diff: 2.E-9
#...
#...
D_\text{hd}^\text{eff}
Constant effective hydrodynamic dispersion In this case no parameterization is needed at all, the values of the tensor are given explicitly:
D_\text{hd}^\text{eff}= \begin{bmatrix} 2\cdot 10^{-8} & 0.0 \\ 0.0 & 2\cdot 10^{-8} \\ \end{bmatrix}
volumes:
sand:
index: 0
solute:
type: const
parameters:
#...
hydrodynamic_disp_00: 2.E-8
hydrodynamic_disp_11: 2.E-8
hydrodynamic_disp_10: 0
hydrodynamic_disp_01: 0
#...
D_\text{hd}^\text{eff}
Experimental hydrodynamic dispersion In this case, the D_\text{hd}^\text{eff}
is calculated from formulas obtained by experimental evidence. So far, I have implemented the power function described by Roth.
D_\text{hd}^\text{eff}=I\, D_m\gamma \text{Pe}_\mu^\alpha
volumes:
sand:
index: 0
solute:
type: stohr
parameters:
char_length: 1.5E-11
mol_diff: 2.E-9
gamma_st: 0.8
alpha_st: 1.17
#...
Superposition
Another option is to combine the effective hydromechanic dispersion
D_\text{hm}^\text{eff}
with the effective diffusion D_\text{m}^\text{eff}
. In such case D_\text{hm}^\text{eff}
and D_\text{m}^\text{eff}
are further parametrized.
D_\text{hd}^\text{eff}=D_\text{hm}^\text{eff}+I\,D_\text{m}^\text{eff}
volumes:
sand:
index: 0
solute:
type: superposition
eff_diff:
type: # ...
eff_hydromechanic_disp:
type: # ...
parameters:
# ...
#...
D_\text{m}^\text{eff}
Constant effective molecular diffusion As for the other constant values:
D_\text{m}^\text{eff}=2\cdot 10^{-8}
volumes:
sand:
index: 0
solute:
type: superposition
eff_diff:
type: const
eff_hydromechanic_disp:
type: # ...
parameters:
eff_diff: 2.E-8
# ...
#...
D_\text{m}^\text{eff}
Milligton-Quirk effective diffusion When using superposition
it is possible to use two Milligton-Quirk for the effective diffusion parameterization:
D_\text{m}^\text{eff}=\frac{\theta_w^{7/3} D_m}{\phi^2}\qquad \text{case 1}
D_\text{m}^\text{eff}=\frac{\theta_w D_m}{\phi^{2/3}}\qquad \text{case 2}
volumes:
sand:
index: 0
solute:
type: superposition
eff_diff:
type: milligton_quirk_1 # or milligton_quirk_2
eff_hydromechanic_disp:
type: # ...
parameters:
# ...
phi: 0.34
#...
D_\text{hm}^\text{eff}
Constant effective hydromechanic dispersion As for the other constant values:
D_\text{hm}^\text{eff}= \begin{bmatrix} 2\cdot 10^{-8} & 0.0 \\ 0.0 & 2\cdot 10^{-8} \\ \end{bmatrix}
volumes:
sand:
index: 0
solute:
type: superposition
eff_diff:
type: const
eff_hydromechanic_disp:
type: # ...
parameters:
# ...
eff_hydromechanic_disp_00: 2.E-8
eff_hydromechanic_disp_11: 2.E-8
eff_hydromechanic_disp_10: 0
eff_hydromechanic_disp_01: 0
#...
D_\text{hd}^\text{eff}
Effective isotropic mechanical dispersion When using superposition
it is possible to calculate the isotropic hydromechanics dispersion. In theory, the dispersivity parameters \lambda_l, \lambda_t
may be as well parametrized, however, for now we have only them as constant values:
{D_\text{hm}^\text{eff}}_{ij}=[\lambda_l-\lambda_t]\frac{v_iv_j}{|v|}+\lambda_t|v|\delta_{ij} \quad \text{where} \quad v=\frac{j_w}{\theta_w}
volumes:
sand:
index: 0
solute:
type: superposition
eff_diff:
type: # ...
eff_hydromechanic_disp:
type: isotropic
long_disp:
type: const
trans_disp:
type: const
parameters:
# ...
lambda_t: 0.0025
lambda_l: 0.025
#...
Full example parameterization: Superposition + Millington-Quirk-2 + Isotropic hydromechanic dispersion
{D_\text{hd}^\text{eff}}_{ij}=\frac{\theta_w D_m}{\phi^{2/3}}+[\lambda_l-\lambda_t]\frac{v_iv_j}{|v|}+\lambda_t|v|\delta_{ij}
volumes:
sand:
index: 0
solute:
type: superposition
eff_diff:
type: milligton_quirk_2
eff_hydromechanic_disp:
type: isotropic
long_disp:
type: const
trans_disp:
type: const
parameters:
char_length: 1.5E-11
mol_diff: 2.E-9
phi: 0.34
lambda_t: 0.0025
lambda_l: 0.025
#...
Proposal
Implement a parameterization class that can handle the combination of cases directed before.
How to test the implementation?
...
Related issues
See #...