From 23cb4f46a7dd4afec5743a55aa564d93f2481550 Mon Sep 17 00:00:00 2001 From: Michael Zingale Date: Fri, 6 Sep 2024 11:51:23 -0400 Subject: [PATCH] get rid of command_line_params (#257) we don't need a separate RuntimeParameters method to parse a string, instead we can just do this in pyro_sim.py and then use the existing set_val method from a dict. This also allows us to simplify the confusing Pyro() interface. --- presentations/pyro_intro.ipynb | 4 +- pyro/pyro_sim.py | 22 ++-- pyro/solver-test.ipynb | 62 +++++------ pyro/solver_test_swe.ipynb | 179 +++++++++++++++++++++++------- pyro/util/runparams.py | 30 ----- pyro/util/tests/test_runparams.py | 7 +- 6 files changed, 184 insertions(+), 120 deletions(-) diff --git a/presentations/pyro_intro.ipynb b/presentations/pyro_intro.ipynb index 1b23f474d..558b5cec2 100644 --- a/presentations/pyro_intro.ipynb +++ b/presentations/pyro_intro.ipynb @@ -354,8 +354,8 @@ "from pyro import Pyro\n", "pyro_sim = Pyro(\"advection\")\n", "pyro_sim.initialize_problem(\"tophat\",\n", - " other_commands=[\"mesh.nx=8\", \"mesh.ny=8\",\n", - " \"vis.dovis=0\"])\n", + " inputs_dict={\"mesh.nx\": 8,\n", + " \"mesh.ny\": 8})\n", "pyro_sim.run_sim()" ] }, diff --git a/pyro/pyro_sim.py b/pyro/pyro_sim.py index 48724bcfe..a31086f92 100755 --- a/pyro/pyro_sim.py +++ b/pyro/pyro_sim.py @@ -9,7 +9,8 @@ import pyro.util.io_pyro as io import pyro.util.profile_pyro as profile -from pyro.util import compare, msg, runparams +from pyro.util import compare, msg +from pyro.util.runparams import RuntimeParameters, _get_val valid_solvers = ["advection", "advection_nonuniform", @@ -71,7 +72,7 @@ def __init__(self, solver_name, *, from_commandline=False): # ------------------------------------------------------------------------- # parameter defaults - self.rp = runparams.RuntimeParameters() + self.rp = RuntimeParameters() self.rp.load_params(self.pyro_home + "_defaults") self.rp.load_params(self.pyro_home + self.solver_name + "/_defaults") @@ -79,8 +80,7 @@ def __init__(self, solver_name, *, from_commandline=False): self.is_initialized = False - def initialize_problem(self, problem_name, *, inputs_file=None, inputs_dict=None, - other_commands=None): + def initialize_problem(self, problem_name, *, inputs_file=None, inputs_dict=None): """ Initialize the specific problem @@ -92,8 +92,6 @@ def initialize_problem(self, problem_name, *, inputs_file=None, inputs_dict=None Filename containing problem's runtime parameters inputs_dict : dict Dictionary containing extra runtime parameters - other_commands : str - Other command line parameter options """ # pylint: disable=attribute-defined-outside-init @@ -126,10 +124,6 @@ def initialize_problem(self, problem_name, *, inputs_file=None, inputs_dict=None for k, v in inputs_dict.items(): self.rp.set_param(k, v) - # and any commandline overrides - if other_commands is not None: - self.rp.command_line_params(other_commands) - # write out the inputs.auto self.rp.print_paramfile() @@ -399,9 +393,15 @@ def main(): else: pyro = Pyro(args.solver[0], from_commandline=True) + other = {} + for param_string in args.other: + k, v = param_string.split("=") + other[k] = _get_val(v) + + print(other) pyro.initialize_problem(problem_name=args.problem[0], inputs_file=args.param[0], - other_commands=args.other) + inputs_dict=other) pyro.run_sim() diff --git a/pyro/solver-test.ipynb b/pyro/solver-test.ipynb index 627ce86dc..0f86fd501 100644 --- a/pyro/solver-test.ipynb +++ b/pyro/solver-test.ipynb @@ -34,12 +34,12 @@ "solver = \"advection\"\n", "problem_name = \"smooth\"\n", "param_file = \"inputs.smooth\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\":1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "tags": [ "nbval-ignore-output" @@ -68,14 +68,14 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -121,7 +121,7 @@ "solver = \"advection_nonuniform\"\n", "problem_name = \"slotted\"\n", "param_file = \"inputs.slotted\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { @@ -162,7 +162,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -213,7 +213,7 @@ "solver = \"advection_fv4\"\n", "problem_name = \"smooth\"\n", "param_file = \"inputs.smooth\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { @@ -247,7 +247,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -298,7 +298,7 @@ "solver = \"advection_rk\"\n", "problem_name = \"tophat\"\n", "param_file = \"inputs.tophat\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { @@ -332,7 +332,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -376,19 +376,19 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "solver = \"compressible\"\n", "problem_name = \"rt\"\n", "param_file = \"inputs.rt\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=24\", \"driver.verbose=0\", \"compressible.riemann=CGF\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 24, \"compressible.riemann\": \"CGF\"}" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": { "tags": [ "nbval-ignore-output" @@ -425,14 +425,14 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -485,19 +485,19 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "solver = \"compressible_fv4\"\n", "problem_name = \"kh\"\n", "param_file = \"inputs.kh\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\", \"driver.verbose=0\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 21, "metadata": { "tags": [ "nbval-ignore-output" @@ -526,14 +526,14 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -570,14 +570,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "solver = \"compressible_rk\"\n", "problem_name = \"quad\"\n", "param_file = \"inputs.quad\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=16\", \"mesh.ny=16\", \"driver.verbose=0\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 16, \"mesh.ny\": 16}" ] }, { @@ -611,7 +611,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -670,7 +670,7 @@ "solver = \"compressible_sdc\"\n", "problem_name = \"sod\"\n", "param_file = \"inputs.sod.y\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=4\", \"mesh.ny=16\", \"driver.verbose=0\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 4, \"mesh.ny\": 16}" ] }, { @@ -715,7 +715,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -774,7 +774,7 @@ "solver = \"diffusion\"\n", "problem_name = \"gaussian\"\n", "param_file = \"inputs.gaussian\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=16\", \"mesh.ny=16\", \"driver.verbose=0\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 16, \"mesh.ny\": 16}" ] }, { @@ -818,7 +818,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -877,7 +877,7 @@ "solver = \"incompressible\"\n", "problem_name = \"shear\"\n", "param_file = \"inputs.shear\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\", \"driver.verbose=0\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { @@ -921,7 +921,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] @@ -972,7 +972,7 @@ "solver = \"lm_atm\"\n", "problem_name = \"bubble\"\n", "param_file = \"inputs.bubble\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=16\", \"mesh.ny=16\", \"driver.verbose=0\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 16, \"mesh.ny\": 16}" ] }, { @@ -1006,7 +1006,7 @@ ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", "pyro_sim.run_sim()\n", "pyro_sim.sim.dovis()" ] diff --git a/pyro/solver_test_swe.ipynb b/pyro/solver_test_swe.ipynb index 388e82e00..b7e31e7ce 100644 --- a/pyro/solver_test_swe.ipynb +++ b/pyro/solver_test_swe.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -19,18 +19,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "problem_name = \"acoustic_pulse\"\n", "param_file = \"inputs.acoustic_pulse\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 20, "metadata": { "tags": [ "nbval-ignore-output" @@ -38,23 +38,35 @@ }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/raid/zingale/development/pyro2/pyro/swe/interface.py:197: NumbaPerformanceWarning: np.dot() is faster on contiguous arrays, called on (Array(float64, 1, 'C', False, aligned=True), Array(float64, 1, 'A', False, aligned=True))\n", - " sum_l = np.dot(betal, rvec[:, m])\n" - ] + "data": { + "image/png": "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nISnnnpK2LVrl2rdmDFjhD59+qjV37lzp9CjRw/ByclJ8PPzE1asWGHS/m7duiXMmTNHuHXrltm+g6W09r6+//77AgDhyJEjGn2NjY0VpFKp8I9//EPsbmpo7cf1Ti3R1x9++EHAn88cqi1jxowRBB1xeCdtyZggCMKWLVuErl27Co6OjkK3bt2EnJwci32Hu/G/sSA89thjWv+73r20bdvW6H/4TO1rSkqKAED46aeftK739/cXQkNDTfpexuLfgDpL/FtrTIzr268gCIJSqRTmzJkjeHh4CM7OzsJzzz0nHDt2zKzfvTnsap4xsm61tbXw9fXFgAEDsGXLFlX5u+++i/feew8ZGRn429/+JmofiezV4sWL8c4772DixIno1q2bxvrq6mq8//77iIuLw9q1ay3ShxdeeAGHDh3C77//rrHuypUraN++PaZMmYJPP/3UIvsnai67GcBP1s/FxQVvvPEG3n//ffznP/9Bt27dsG7dOrz33nt4++23mYgRiWjs2LGYNWsWZDIZEhISNNYvWbIEADBhwgSt29fW1mLfvn2IiorSuv4f//gH+vXrh7Zt2+rsw5EjRxAcHKx1XVFREQDoXE8kJrsZwE+2ISEhAffddx8WLlyIHTt2YOLEiYiOjsYHH3wgdteI7FrHjh0xZMgQfPnll2oT4jbJysrC448/rnro4m5r167F4MGD8dlnn2msW7VqFYYOHYr169fr3H95eTl+++03hISEaF1fXFwMMBmjVorJGFmV9u3b429/+xu+/PJLDB8+HD179sT69etFnyOGiP686nXlyhWNFzgfPHgQx48fx/jx43Vum5SUhISEBLz++utYtWqVqvyTTz5BfHw8UlJS9F79NpRsFRUVQS6XIyAgoBnfjMiyeJuSrM6rr76KDz/8EPfffz+++eYbs71yh4juTUREBHx8fJCZmYmRI0eqyrOysiCXyxEbG6t3+48//hhyuRzx8fG4desWbt26heTkZMybNw+zZ8/Wu+2RI0cAQO+Vse7du+t8iwORmPhXSValtrYWr7/+OnB7QPCNGzdUs8UTkbgcHBwwbtw4zJ07FxcuXICvry9u3LiBTZs2Yfjw4WjXrp3BNt5//33I5XLVuLMPP/wQ06dPN7hdcXEx2rdvDz8/P411v//+O86fP49BgwY185sRWRZvU5LVaGhowPDhw/HTTz9h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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", - "pyro_sim.run_sim()" + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", + "pyro_sim.run_sim()\n", + "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -78,7 +90,7 @@ } ], "source": [ - "p = pyro_sim.sim.cc_data.get_var(\"height\")\n", + "p = pyro_sim.get_var(\"height\")\n", "p.pretty_print(show_ghost=False)" ] }, @@ -91,18 +103,18 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "problem_name = \"advect\"\n", "param_file = \"inputs.advect\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\", \"swe.riemann=HLLC\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8, \"swe.riemann\": \"HLLC\"}" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 23, "metadata": { "tags": [ "nbval-ignore-output" @@ -116,17 +128,37 @@ "\n", " \n" ] + }, + { + "data": { + "image/png": "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AOjRoweCgoJw7Ngxre2PHz+u1VNkjiNHjmDYsGGYMGECXnnlFZ31+/fv1/p/8sknn2DJkiXYt28fbrzxRouORUREJA1LRkxPnTpV3H333aKsrEz88ssvQqVS2WRkdvOj6OvWrROlpaUiJSVFdOrUSfz444+abebMmSPi4+M1n5sfg58xY4YoLS0V69at03kM/quvvhKurq7i1VdfFUePHhWvvvqqwcfgjR37H//4h9i1a5f44YcfxLZt20RoaKh47LHHtM7hzTffFF5eXmLLli3ixIkT4qWXXhJKpVKcPHlSs83p06dFSUmJWLBggejcubMoKSkRJSUl4uLFi0IIIb7//nvRrVs38dRTT4nKykrNUl1dbfC7c/anwIiIiKzBogTo2LFjYsCAAaJDhw42fQxeCCFWrlwpQkNDhYeHh7jrrrvEnj17tNZPmDBBDB48WKts9+7dIiIiQnh4eIgePXqI7OxsnXq3bNkievXqJdzd3UXv3r1FXl6excdevny5uOmmm4S7u7sICQkRL730kqivr9epJyMjQ9x0002iY8eOIjo6WuuxTmFgagEAYteuXUIIIebPn693fWhoqMHvjQkQERGRaXwXGBEREUmH7wIjIiIi6TABIiIiIukwASIiIiLpMAEiIiIi6TABIiIiIukwASIiIiLpMAEiIiIi6TABIiIiIukwASIiIiLpMAEiIiIi6TABIiIiIun8P04gWvj4h9DxAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", - "pyro_sim.run_sim()" + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", + "pyro_sim.run_sim()\n", + "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -150,7 +182,7 @@ } ], "source": [ - "p = pyro_sim.sim.cc_data.get_var(\"x-momentum\")\n", + "p = pyro_sim.get_var(\"x-momentum\")\n", "p.pretty_print(show_ghost=False)" ] }, @@ -163,18 +195,18 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "problem_name = \"dam\"\n", "param_file = \"inputs.dam.x\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=16\", \"mesh.ny=4\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 16, \"mesh.ny\": 4}" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 26, "metadata": { "tags": [ "nbval-ignore-output" @@ -190,17 +222,37 @@ " this output to the exact solution.\n", " \n" ] + }, + { + "data": { + "image/png": "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yRIYDAZMmjQJU6ZMQXV1tdX6VVVVmDp1KiZNmgSDwYDnnnsO8+fPR15enrFOaWkpkpOTkZKSgkOHDiElJQUPP/ww9u/f78aRERERkbdQCCGEXAefMGECxo8fj7Vr1xrLbr31VsyYMQOrVq2yqP+73/0Ou3btwtGjR41lqampOHToEEpLSwEAycnJaGpqwieffGKsc++992LIkCHYsmVLj+JqamqCTqfD+eOR8B8s+8U3InKypFDLrzwhor6vXbRhNz5CY2Mj/P39ndav3Z+Gc5bW1laUl5cjMzPTpDwxMRElJSVW25SWliIxMdGkLCkpCbm5uWhra4NarUZpaSnS09Mt6rz66qs2Y2lpaUFLS4txu7GxEQDQdKHTobERkWdrF/wdSyJv1I4fHtvOvg4kW7JUV1eHjo4OBAUFmZQHBQWhtrbWapva2lqr9dvb21FXV4eQkBCbdWz1CQCrVq1CVlaWRXn4+G/tHBUR9Q0n5Q6AiFyovr4eOp3Oaf3Jlix1USgUJttCCIuy7uqbl9vb5+LFi5GRkWHcbmhoQHh4OKqrq516ssl+TU1NuPHGG3H69GmnXlIlx3A+PAfnwnNwLjxHY2Mjhg8fjqFDhzq1X9mSpcDAQPj4+Fhc8Tl37pzFlaEuwcHBVuurVCoEBARI1rHVJwD4+vrC19fXolyn0/GO7yH8/f05Fx6E8+E5OBeeg3PhOZRK5643lm31skajgV6vR2FhoUl5YWEhEhISrLaJj4+3qF9QUICYmBio1WrJOrb6JCIiIpIi69twGRkZSElJQUxMDOLj4/HWW2+huroaqampwJW3x86ePYt3330XuPLJtzfeeAMZGRmYM2cOSktLkZuba/Ipt7S0NNx111146aWXMH36dHz00Uf4/PPPsXfvXtnGSURERH2XrMlScnIy6uvrsWLFCtTU1GD06NHIz89HeHg4AKCmpsbkO5ciIiKQn5+P9PR0rFmzBqGhocjOzsbMmTONdRISErB161YsXboUzz//PG666SZs27YNEyZM6HFcvr6+WLZsmdW35si9OBeehfPhOTgXnoNz4TlcNReyfs8SERERkafjNy4SERERSWCyRERERCSByRIRERGRBCZLRERERBKYLBERERFJYLJEREREJIHJEhEREZEEJktEREREEpgsEREREUlgskREREQkgckSERERkQQmS0REREQS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Sgoefvhh7N+/340jIyIiIm+hEEIIuQ4+YcIEjB8/HmvXrjWW3XrrrZgxYwZWrVplUf93v/sddu3ahaNHjxrLUlNTcejQIZSWlgIAkpOT0dTUhE8++cRY595778WQIUOwZcuWHsXV1NQEnU6HH2M6VAp1L0dJRNb43DZKtmPnF26T7dgAkBRq+ZUrRNR77aINu/ERGhsb4e/v77R+7f40nLO0traivLwcmZmZJuWJiYkoKSmx2qa0tBSJiYkmZUlJScjNzUVbWxvUajVKS0uRnp5uUefVV1+1GUtLSwtaWlqM242NjQCAdrQBsqWSRN5NdLT0oJZrNDV3ynZsXHlCJyLna8cPjy1nXweSLVmqq6tDR0cHgoKCTMqDgoJQW1trtU1tba3V+u3t7airq0NISIjNOrb6BIBVq1YhKyvLonwv8u0cFRH12NEe1HGRIbfId+wfnJQ7ACKvVl9fD51O57T+ZEuWuigUCpNtIYRFWXf1zcvt7XPx4sXIyMgwbjc0NCA8PBzV1dVOPdlkv6amJtx44404ffq0Uy+pkmM4H56Dc+E5OBeeo7GxEcOHD8fQoUOd2q9syVJgYCB8fHwsrvicO3fO4spQl+DgYKv1VSoVAgICJOvY6hMAfH194evra1Gu0+l4x/cQ/v7+nAsPwvnwHJwLz8G58BxKpXM/vybbp+E0Gg30ej0KCwtNygsLC5GQkGC1TXx8vEX9goICxMTEQK1WS9ax1ScRERGRFFnfhsvIyEBKSgpiYmIQHx+Pt956C9XV1UhNTQWuvD129uxZvPvuu8CVT7698cYbyMjIwJw5c1BaWorc3FyTT7mlpaXhrrvuwksvvYTp06fjo48+wueff469e/fKNk4iIiLqu2RNlpKTk1FfX48VK1agpqYGo0ePRn5+PsLDwwEANTU1Jt+5FBERgfz8fKSnp2PNmjUIDQ1FdnY2Zs6caayTkJCArVu3YunSpXj++edx0003Ydu2bZgwYUKP4/L19cWyZcusvjVH7sW58CycD8/BufAcnAvP4aq5kPV7loiIiIg8new/d0JERETkyZgsEREREUlgskREREQkgckSERERkQQmS0REREQSmCwRERERSWCyRERERCSByRIRERGRBCZLRERERBKYLBERERFJYLJEREREJIHJEhEREZEEJktEREREEpgsEREREUlgskREXm/lypVQ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oiIxcuRI8fTTT8s4Cu9g71xs3LhRqFQqkZOTI7755huxd+9eERMTI2JjY2UchXdobm4WBoNBGAwGAUC88sorwmAwGL/GwVWv3/0yWRJCiDVr1ojw8HCh0WjE+PHjRVFRkXHfrFmzxOTJk03q7969W4wbN05oNBoxYsQIsXbtWhmi9k72zMXkyZMFAIvbrFmzZIreu9j7uLgWkyXns3c+jh49Ku655x7h5+cnwsLCREZGhrh48aIMkXsfe+ciOztbREdHCz8/PxESEiIef/xxcebMGRki9y5ffPGF5GuAq16/FYLXBImIiIhs6ndrloiIiIjswWSJiIiISAKTJSIiIiIJTJaIiIiIJDBZIiIiIpLAZImIiIhIApMlIiIiIglMloiIiIgkMFkiIiIiksBkiYiIiEgCkyUi6hf+85//IDg4GCtXrjSW7d+/HxqNBgUFBbLGRkSejb8NR0T9Rn5+PmbMmIGSkhJERUVh3LhxuO+++/Dqq6/KHRoReTAmS0TUr/zP//wPPv/8c9x55504dOgQvvrqK2i1WrnDIiIPxmSJiPqVS5cuYfTo0Th9+jTKyspwxx13yB0SEXk4rlkion7l5MmT+O6779DZ2YlTp07JHQ4R9QG8skRE/UZraytiY2MxduxYREVF4ZVXXsHhw4cRFBQkd2hE5MGYLBFRv/Hb3/4WO3bswKFDhzBo0CD85Cc/weDBg/H3v/9d7tCIyIPxbTgi6hd2796NV199Fe+99x78/f2hVCrx3nvvYe/evVi7dq3c4RGRB+OVJSIiIiIJvLJEREREJIHJEhEREZEEJktEREREEpgsEREREUlgskREREQkgckSERERkQQmS0REREQSmCwRERERSWCyRERERCSByRIRERGRBCZLRERERBKYLBERERFJYLJEREREJIHJEhEREZEEJktEREREEpgsEREREUlwabL04x//GAsWLHDlIZyquroa999/PwYOHIjAwEDMnz8fra2tkm1aWlrwm9/8BoGBgRg4cCAeeOABnDlzxqTO+fPnkZKSAp1OB51Oh5SUFDQ0NNh17MuXL2P27Nm4/fbboVKpMGPGDCePnoiIiKzhlaUrOjo6cN999+G///0v9u7di61btyIvLw//7//9P8l2CxYswM6dO7F161bs3bsXFy5cwLRp09DR0WGs89hjj6GiogKffvopPv30U1RUVCAlJcWuY3d0dMDPzw/z58/HPffc46KzQERERBaEi8yaNUsAMLlVVVW56nC9lp+fL5RKpTh79qyxbMuWLcLX11c0NjZabdPQ0CDUarXYunWrsezs2bNCqVSKTz/9VAghRGVlpQAgvvzyS2Od0tJSAUD861//cujYs2bNEtOnT3fSyImIiEiKy64svfbaa4iPj8ecOXNQU1ODmpoa3HjjjVbrpqamYtCgQZK36upqV4UKACgtLcXo0aMRGhpqLEtKSkJLSwvKy8uttikvL0dbWxsSExONZaGhoRg9ejRKSkqM/ep0OkyYMMFYJy4uDjqdzqSOvccmIiIi91C5qmOdTgeNRoMBAwYgODhYsu6KFSuwcOFCyTrXJhKuUFtbi6CgIJOyIUOGQKPRoLa21mYbjUaDIUOGmJQHBQUZ29TW1mLYsGEWbYcNG2ZSx95jExERkXu4LFmyx7Bhw6wmFO6mUCgsyoQQVsulmLfpSb/OOjYRERE5l0cs8PaEt+GCg4MtruKcP38ebW1tFld9rm3T2tqK8+fPm5SfO3fO2CY4OBj//ve/Ldr+5z//Malj77GJiIjIPVyaLGk0GpNPhdmyYsUKVFRUSN5c/TZcfHw8vv76a9TU1BjLCgoK4OvrC71eb7WNXq+HWq1GYWGhsaympgZff/01EhISjP02NjbiwIEDxjr79+9HY2OjSR17j01ERETuoRBCCFd1/swzz6CiogJ//etfMWjQIAwdOhRKpUdczLLQ0dGBsWPHIigoCC+//DK+//57zJ49GzNmzMDrr78OADh79ix++tOf4t1330VsbCwA4Ne//jX+/ve/Y9OmTRg6dCgWLlyI+vp6lJeXw8fHBwAwZcoUfPfdd3jzzTeBK+clPDwcf/vb33p8bACorKxEa2srfv/736O5uRmrV68GAIwdO9bt54uIiKjfcOVH7Y4dOybi4uKEn5+fx391gBBCnDp1Stx3333Cz89PDB06VMybN09cvnzZuL+qqkoAEF988YWx7NKlS2LevHli6NChws/PT0ybNk1UV1eb9FtfXy8ef/xxMXjwYDF48GDx+OOPi/Pnz9t1bCGECA8Pt/g6BhdPIRERUb/n0itLRERERH2dZ74nRkREROQhmCwRERERSWCyRERERCSByRIRERGRBCZLRERERBKYLBERERFJYLJEREREJIHJEhEREZEEJktEREREEpgsEREREUlgskREREQkgckSERERkYT/D//fHHo3KmmiAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", - "pyro_sim.run_sim()" + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", + "pyro_sim.run_sim()\n", + "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -220,7 +272,7 @@ } ], "source": [ - "p = pyro_sim.sim.cc_data.get_var(\"y-momentum\")\n", + "p = pyro_sim.get_var(\"y-momentum\")\n", "p.pretty_print(show_ghost=False)" ] }, @@ -233,18 +285,18 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "problem_name = \"kh\"\n", "param_file = \"inputs.kh\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=16\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 16, \"mesh.ny\": 8}" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 29, "metadata": { "tags": [ "nbval-ignore-output" @@ -257,17 +309,37 @@ "text": [ "\u001b[33mwarning, key: io.tplot not defined\u001b[0m\n" ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", - "pyro_sim.run_sim()" + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", + "pyro_sim.run_sim()\n", + "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -291,7 +363,7 @@ } ], "source": [ - "f = pyro_sim.sim.cc_data.get_var(\"fuel\")\n", + "f = pyro_sim.get_var(\"fuel\")\n", "f.pretty_print(show_ghost=False)" ] }, @@ -304,33 +376,54 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "problem_name = \"quad\"\n", "param_file = \"inputs.quad\"\n", - "other_commands = [\"driver.max_steps=1\", \"mesh.nx=8\", \"mesh.ny=8\"]" + "params = {\"driver.max_steps\": 1, \"mesh.nx\": 8, \"mesh.ny\": 8}" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 32, "metadata": { "tags": [ "nbval-ignore-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "pyro_sim = Pyro(solver)\n", - "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, other_commands=other_commands)\n", - "pyro_sim.run_sim()" + "pyro_sim.initialize_problem(problem_name, inputs_file=param_file, inputs_dict=params)\n", + "pyro_sim.run_sim()\n", + "pyro_sim.sim.dovis()" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -354,7 +447,7 @@ } ], "source": [ - "p = pyro_sim.sim.cc_data.get_var(\"height\")\n", + "p = pyro_sim.get_var(\"height\")\n", "p.pretty_print(show_ghost=False)" ] } diff --git a/pyro/util/runparams.py b/pyro/util/runparams.py index 055f1a259..4f69a3617 100644 --- a/pyro/util/runparams.py +++ b/pyro/util/runparams.py @@ -163,36 +163,6 @@ def load_params(self, pfile, *, no_new=False): self.param_comments[key] = comment.strip() - def command_line_params(self, cmd_strings): - """ - finds dictionary pairs from a string that came from the - commandline. Stores the parameters in only if they - already exist. - - we expect things in the string in the form: - ["sec.opt=value", "sec.opt=value"] - with each opt an element in the list - - Parameters - ---------- - cmd_strings : list - The list of strings containing runtime parameter pairs - - """ - - for item in cmd_strings: - - # break it apart - key, value = item.split("=") - - # we only want to override existing keys/values - if key not in self.params: - msg.warning("warning, key: %s not defined" % (key)) - continue - - # check in turn whether this is an integer, float, or string - self.params[key] = _get_val(value) - def get_param(self, key): """ returns the value of the runtime parameter corresponding to the diff --git a/pyro/util/tests/test_runparams.py b/pyro/util/tests/test_runparams.py index 346fd6e3a..8fbcef507 100644 --- a/pyro/util/tests/test_runparams.py +++ b/pyro/util/tests/test_runparams.py @@ -50,11 +50,12 @@ def test_get_param(self): assert self.rp.get_param("test3.param") == "this is a test" assert self.rp.get_param("test3.i1") == 1 - def test_command_line_params(self): + def test_dict(self): - param_string = "test.p1=q test3.i1=2" + params = {"test.p1": "q", "test3.i1": 2} - self.rp.command_line_params(param_string.split()) + for k, v in params.items(): + self.rp.set_param(k, v, no_new=False) assert self.rp.get_param("test.p1") == "q" assert self.rp.get_param("test3.i1") == 2