Git Product home page Git Product logo

vpaem's Introduction

VPAEM logo

VPAEM (Vertical Plane Analytic Element Model)

The Vertical Plane Analytic Element Model (VPAEM) is an analytic element method (AEM) program for modelling groundwater flow in the vertical plane. The program includes multiple groundwater features, e.g. fractures, cavities and inhomogeneities. The program is written in C++ and run through a MATLAB script.

The program uses analytic elements, see Strack (1989, 2003, 2017, 2018) and Toller (2021), and include:

  • constant pressure elements
  • inhomogeneities
  • drainging fracutres
  • blocking fractures
  • wells

This program has been developed using MATLAB and Microsoft Visual Stuido; only the .m-, .cpp- and .exe-files are included in the repository. The program use the Eigen library (Guennebaud & Jacob, 2010).

Instructions

The plots are generated using the MATLAB program run_VPAEM.m. The script automatically calls the C++ program which solves the system and feeds the solution back to MATLAB which plots the results. The data is saved as data_files\simulation_[date]_[version].mat.

To run a model:

  1. Open run_VPAEM.m in MATLAB
  2. Insert your input data in the editor
  3. Run the program
  4. The progress is printed in the command window
  5. The flow net and pressure contours are plotted automatically

Input Data

This list contains all the definitions of the input data defined in run_VPAEM.m.

Global Properties

  • W_uni uniform flow rate (complex)
  • k hydraulic conductivity of continuum (double)
  • rho density of groundwtaer (double)
  • g acceleration due to gravity (double)
  • h reference elevation (double)
  • zref coordinates for reference point (complex)
  • fi0 hydraulic head at reference point (double)

Blocking Fractures

  • z1a start coordinates for blocking fractures (complex vector)
  • z2a end coordinates for blocking fractures (complex vector)
  • ka hydraulic conductivity for blocking fractures (double vector)
  • ba fracture width for blocking fractures (double vector)

Draining Fracutres

  • z1b start coordinates for draining fractures (complex vector)
  • z2b end coordinates for draining fractures (complex vector)
  • kb hydraulic conductivity for draining fractures (double vector)
  • bb fracture width for draining fractures (double vector)

Constant Pressure Elements

  • z1c start coordinates for constant pressure elements (complex vector)
  • z2c end coordinates for constant pressure elements (complex vector)

Inhomogeneities

  • z1d start coordinates for inhomogeneity elements (complex vector)
  • z2d end coordinates for inhomogeneity elements (complex vector)
  • kd hydraulic conductivity for inhomogeneity elements (double vector)

Wells

  • zw coordinates for wells (complex vector)
  • Qw discharges for wells (double vector)
  • rw radii of wells (double vector)

Solver and Ploting Properties

  • ma number of coefficients for blocking fractures (integer)
  • mfara number of far-field correction coefficients for blocking fractures (integer)
  • mb number of coefficients for draining fractures (integer)
  • mfarb number of far-field correction coefficients for draining fractures (integer)
  • mc number of coefficients for constant pressure elements (integer)
  • mfarc number of far-field correction coefficients for constant pressure elements (integer)
  • md number of coefficients for inhomogeneity elements (integer)
  • mfard number of far-field correction coefficients for inhomogeneity elements (integer)
  • Nc number of integral points for constant pressure elements (integer)
  • N multiplier for number of solution points for blocking fractures, draining fractures and inhomogeneity elements (double)
  • xfrom starting value for x-axis (double)
  • xto end value for the x-axis (double)
  • yfrom starting value for the y-axis (double)
  • yto end value for the y-axis (double)
  • Nx number of grid points in the x-diraction (integer)
  • Ny number of grid points in the y-direction (integer)
  • lvs number of contour levels

External Functions

The following functions are necissary for the plotting scheme in MATLAB:

  • creat_figure.m creat the figure window
  • Plot_line.m plots a line from z1 to z2
  • Plot_cricle.m plots a circle
  • Contour_flow_net.m contours the flow net
  • Phi_from_fi.m computes the discharge potiential

Author

VPAEM is developed by:
Erik ร….L. Toller
Department of Earth Sciences,
Uppsala University, Uppsala, Sweden
ORCID 0000-0002-7793-3998

License

VPAEM is licensed under the MIT license (see LICENSE.md).

References

Guennebaud, G., Jacob, B., et al. (2010). Eigen v3. http://eigen.tuxfamily.org.

Strack, O. D. L. (1989). Groundwater mechanics. Englewood Cliffs, NJ: Prentice hall.

Strack, O. D. L. (2003). Theory and applications of the analytic element method. Reviews of Geophysics, 41(2).

Strack, O. D. (2017). Analytical Groundwater Mechanics. New York, NY: Cambridge University Press.

Strack, O. D. L. (2018). Limitless analytic elements. Water Resources Research, 54(2), 1174-1190.

Toller, E. A. L. (2021). An Analytic Element Model for Intersecting Fractures in Groundwater Flow. Manuscript submitted to: Water Resources Research

vpaem's People

Contributors

eriktoller avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.