Source code for hyvr.sim

# -*- coding: utf-8 -*-
""" Hydrogeological Virtual Reality simulation package.

    Hydrogeological virtual reality (HYVR) simulator for object-based modelling
    of sedimentary structures

    :Author: Jeremy P. Bennett, Samuel Scherrer
"""

import os

import hyvr.utils as hu
import hyvr.optimized as ho
import hyvr.input.parameters as hp
from hyvr.postprocess.output import create_outputs
from hyvr.assign_points import assign_points


[docs]def run(inifile, flag_ow=None): """ Runs HyVR based on a given ini-file. Parameters ---------- inifile : path Path to inifile. If ``inifile`` is set to 0, the ini-file for the MADE test case is used. flag_ow : bool Whether to overwrite existing run directories. """ run_settings, model, hydraulics = hp.setup_from_inifile(inifile, flag_ow=flag_ow) for sim in range(1, int(run_settings['numsim'])+1): # Generate facies model.generate_model() assign_points(model) # Generate internal heterogeneity if model.generate_hydraulics is True: model.generate_hydraulic_parameters(hydraulics) # plots, only for development purposes # from hyvr.postprocess.plotting import cross_section_pcolor # cross_section_pcolor(model, 'k_iso', log=True) # cross_section_pcolor(model, 'facies') # cross_section_pcolor(model, 'strata') # cross_section_pcolor(model, 'dip') # cross_section_pcolor(model, 'azim') # Save data if run_settings['numsim'] > 1: realdir = run_settings['rundir'] / 'real_{:03d}'.format(sim) else: realdir = run_settings['rundir'] realdir.mkdir(parents=True, exist_ok=True) create_outputs(model, realdir, run_settings["runname"], run_settings['outputs']) if inifile == 0: # this is just the testcase, so we remove the output import shutil runpath = run_settings['rundir'] if runpath.exists(): shutil.rmtree(runpath)