Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
D
dorie
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 31
    • Issues 31
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 9
    • Merge Requests 9
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
  • dorie
  • dorie
  • Issues
  • #142

Closed
Open
Opened Feb 05, 2019 by Santiago Ospina De Los Ríos@sospinarMaintainer

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):

Microscopic Péclet \text{Pe}_\mu

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
      #...
#...

Constant effective hydrodynamic dispersion D_\text{hd}^\text{eff}

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
#...

Experimental hydrodynamic dispersion D_\text{hd}^\text{eff}

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:
      # ...
#...

Constant effective molecular diffusion D_\text{m}^\text{eff}

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
      # ...
#...

Milligton-Quirk effective diffusion D_\text{m}^\text{eff}

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
#...

Constant effective hydromechanic dispersion D_\text{hm}^\text{eff}

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
#...

Effective isotropic mechanical dispersion D_\text{hd}^\text{eff}

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 #...

Edited Feb 05, 2019 by Santiago Ospina De Los Ríos
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Solute Transport Feature
Milestone
Solute Transport Feature
Assign milestone
Time tracking
None
Due date
None
Reference: dorie/dorie#142