The code was developed as part of PhD research at the centre for hydrogeology and geothermics of the University of Neuchatel.
Thesis summary
Caves are important since they are preferential paths for groundwater flow. Knowledge of caves or karst is essential for proper management of water resources, but the exploration of caves is a major challenge. An alternative to study caves and their structure is to simulate the processes related to cave growth. The motivation of this thesis is to study large karst networks in the region of Tulum, Mexico. The objective of the study is to understand how and why the cave systems formed in this region. The first step was to do a review of the information available on the study area. During field work in the study area we observed the propagation of the sea tidal wave into the karst network. This observation lead to question what would be the effect of tidal induced water exchange between caves and surrounding limestone. A conceptual model and a numerical model were developed to quantify dissolution in these conditions. Results show that water exchange can lead to significant mineral dissolution, or cave growth. This dissolution process is additional to dissolution occurring at cave wall surface, therefore the superposition of both dissolution process may explain the fast paced cave growth rate needed to explain the large karst networks in the area. Additionally, a numerical model framework was developed to simulate the development of fractures into conduit networks. The simulation of development of synthetic networks can provide insight on the development of real caves.
http://doc.rero.ch/record/305441
IFM plug-in to modify porosity, conductivity and storage based on a reaction declared in the FEFLOW reaction kinetics editor, it works on 2D and 3D models.
00_porosity_evolution_plug-in.pdf
01_porosity_frked.cpp
02_porosity_frked.dll
Quick "01_porosity_frked.cpp" description:
lines / content
1 - 112 / lines generated by FEFLOW when plug-in is created.
28-44 / plug-in callbacks: Serialize (stored data at the end of FEM file), OnEditDocument (input window), PostTimeStep (calculations)
117-148 / variable declaration. it is no the optimal way to do it this way but it works.
150-201 / serialize: all variables from the plug-in window in FEFLOW GUI are stored at the end of FEM file and recovered when the FEM is open.
203-362 / plug-in input window
371-571 / dissolution rate and porosity calculations
412-420 / the plug-in does not makes calculations on all simulation time-steps (too slow). this IF allows to decide if porosity is updated based on the time-step "g3_deltat_double"
431-481 / FOR loop to visit all elements in FEM and make a mass transport species average from nodes. reaction rate is estimated and porosity upgraded.
488-588 / based on new porosity, K, Ss and molecular diffusion (?) are calculated
508 - 516 / molecular diffusion (?) these lines are specific for karst growth and tidal pumping (thesis chapter 5). comment this lines for other problems.
IFM plug-in to modify porosity, conductivity and specific storage. The plug-in uses as input solute transport data generated by plug-in pichem. pichem : https://www.mikepoweredbydhi.com/download/mike-2017/pichem-plugin?ref=%7B48049242-9F00-48BE-82FA-7D0C1820F7A8%7D
03_porosity_pichem.cpp
04_porosity_pichem.dll
Export to TXT selected nodal data from transient simulations at selected times by the user.
05_export_permeable_mc_porosityPlug-in1.cpp
06_export_permeable_mc_porosityPlug-in1.dll
07_manual_export_node_data_IFM.pdf
Some bash files to control FEFLOW in command line. The commands are explained here http://www.feflow.info/html/help/default.htm?turl=HTMLDocuments%2Fpackage%2Fcommand_line_mode.htm
08_parallel.sh - a bash loop that launches x number of FEFLOW runs, with y number of simultaneous FEFLOW runs.
09_single_core.sh - a bash loop to run x number of FEFLOW command line runs, one FEFLOW run at a time.
In Windows it's done with Visual Studio 2013. On linux with gcc and a makefile.
10_linux_compilation.pdf - how to compile IFM plug-ins in Linux