IPM_ACCURACY - The dataset used for instantaneous profile method (IPM) accuracy analysys
收藏资源简介:
IPM_ACCURACY The dataset used for instantaneous profile method (IPM) accuracy analysis presented in the publication: Kozyra Maciej, Lamorski Krzysztof, Sławiński Cezary, “The accuracy of the instantaneous profile method for axis-translation-enforced desaturation experiments”, 2026, Measurement, 262, 120048, doi: 10.1016/j.measurement.2025.120048 Batch simulation framework for evaluating the accuracy of the vssFoam solver (an OpenFOAM-based Richards equation solver: https://github.com/klamorski/vss) across different hydraulic-conductivity model configurations. Simulation parameters are drawn from a PostgreSQL database and each case is executed automatically on a compute cluster. Directory Structure IPM_ACCURACY/ └── simulations/ ├── const_film/ # Capillary + film flow (constant film model) ├── inc_25_film/ # Capillary + film flow (inc_25 film model) └── inc_50_film/ # Capillary flow only (no film flow) Each subdirectory under simulations/ contains: Path Description ipm_sim_film/ OpenFOAM case template (mesh, initial/boundary conditions, solver settings) run_work.php PHP worker script — fetches a pending case from the database, injects soil parameters into the template, runs the simulation, and stores results run_in_background.sh Launches N parallel run_work.php workers on the current host output/ Completed simulation results (one subdirectory per case) Simulation Workflow Parameter selection — run_work.php connects to PostgreSQL and atomically claims the next unprocessed row from the public.gshp (or public.gshp_tmp) table using SELECT … FOR UPDATE. Case preparation — The template directory (ipm_sim_film/) is copied to a temporary working directory. Placeholders in constant/transportProperties are replaced with the case-specific van Genuchten parameters: AAA_ALPHA → α (van Genuchten) AAA_N → n (van Genuchten) AAA_TH_S → θs (saturated water content) AAA_TH_R → θr (residual water content) AAA_KSAT → Ksat (saturated hydraulic conductivity) Simulation execution — run.sh runs the OpenFOAM pipeline: blockMesh → setExprFields → soilFoam. Result collection — Probe time-series data and the mass-balance log are copied to the output/ directory. Status update — The database record is marked as completed (status 2) or failed (status 3). OpenFOAM Case Template (ipm_sim_film/) Domain: 1 mm × 50 mm × 1 mm column (1 × 90 × 1 cells), representing a 1-D vertical soil profile. Simulation duration: 8 days (endTime = 691200 s), with adaptive time-stepping via deltaTSchedule. Solver: vssFoam with the van Genuchten (vg) soil-water retention curve model. Initial condition: Hydrostatic pressure head h = −y (set via setExprFieldsDict). Probed fields: h, Theta, K, Cv, gradHy, hTotal, fluxWaterY at 31 uniformly-spaced points along the column height. Scenario Differences Scenario Film Flow const_film Enabled (film_flow true) inc_25_film Enabled (film_flow true) inc_50_film Disabled (film_flow false) Output Format Each completed case produces a subdirectory under output/ (e.g., const_film_10000657229/) containing: h, Theta, K, Cv, gradHy, hTotal, fluxWaterY — OpenFOAM probe time-series files (tab-separated, one column per probe point). mass_balance_check.log (or .csv) — Timestep-level mass-balance error diagnostics. Currently 467 cases have been completed in each of the three scenarios. SI units are used in calculations — i.e. h is expressed in [m], Θ is expressed in [m3/m3] and time in [s]. Usage Running Simulations Edit run_work.php and provide the database connection parameters ($host, $dbname, $user, $password). Launch parallel workers: # Start 4 workers in the background bash run_in_background.sh 4 Logs are written to calculation_logs/. Prerequisites OpenFOAM with the soilFoam solver and libsoilFoam.so library installed. PHP with the pdo_pgsql extension. PostgreSQL database with the public.gshp table populated with simulation parameters.



