wayXing / RichardPoFlow

Richards equation on porous media

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RichardPoFlow

Richards equation on porous media for underground flow problems.

This project aims to explore uncertainty quantification (UQ) for ground flow problems. The ground flow is modeled based on the Richards equation (h-based) using finite difference method with Picard iteration.


The code provides:

  • Basic Richards equaion solver for 1d/2d/3d problems.
    • Accept Dirichlet and Neumann boundary conditions.
    • Accept user specified non-linear term function
    • Accept random permeability field input
  • Fast optimized (vectorized) code for 1d Richards equation
  • POD based reduced order model for 1d Richards equation
  • DEIM POD based reduced order model for 1d Richards equation
  • log-normal random field generator
  • log-normal random field approximating (dimension reduced) generator using KL theory.
  • a type of porous network generator

The code will provides:

  • Data-driven surrogates for UQ problems
  • Hybrid surrogates for UQ problems

The code Folder:

  • RandomField: functions for generating random fields
  • 3dSolver: functions for 3d Richards equation
  • 1dSloverAndRom: functions for 1d Richards equation and the reduced order model.
  • Archive: code recycle bin just for the author.
  • FasterOperation: Faster Operation library.
  • EasyCode: Intuitive codes for dummy like me (These codes may be computational slow and clumsy. They are not meant for practical use. I, however, believe that going through the inelegant but intuitive code is one of the best way to learn for 'engineering-driven' folks like myself. So I decide to keep them and hop it might be useful for someone someday.)

The code usage:

  1. Run startUp.m to include all function libraries.
  2. Run DEMO files at root for demonstrations.

Most function in subfolder also comes with a test or DEMO file for the purpose of demonstrations.

The code is still under development.

About

Richards equation on porous media

License:GNU Lesser General Public License v3.0


Languages

Language:MATLAB 100.0%