import argparse import configparser import logging import pathlib import re import matplotlib.pyplot as plt import numpy as np from fluidfoam import readof from scipy import interpolate from .olaflow import OFModel parser = argparse.ArgumentParser( description="Convert swash output to olaFlow input" ) parser.add_argument("-v", "--verbose", action="count", default=0) args = parser.parse_args() logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) log = logging.getLogger("sws_ola") log.info("Starting sws -> olaFlow converter") config = configparser.ConfigParser() config.read("config.ini") sws_out = pathlib.Path(config.get("swash", "npz_out")) sws = np.load(sws_out.joinpath("sws.npz")) x, t = sws["x"], sws["t"] olaflow_root = pathlib.Path(config.get("olaflow", "root")) of_x, of_y, of_z = mesh = readof.readmesh(str(olaflow_root)) watl = interpolate.interp1d(x, sws["watl"][680]) alpha_water = np.where(of_z < watl(of_x), 1, 0) model = OFModel(olaflow_root) model.write_field("alpha.water", alpha_water)