From bd9bfad2a3b7026e609105a74faa56326da6aa14 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 9 Nov 2022 11:16:03 -0500 Subject: [PATCH] Fixed unit conversion bug and added simulation time parameters to Simulation class argument list --- python/swiftest/swiftest/simulation_class.py | 24 ++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index c2c557be2..174d5e782 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -1,5 +1,4 @@ """ - self.param['BIN_OUT'] = binpath Copyright 2022 - David Minton, Carlisle Wishard, Jennifer Pouplin, Jake Elliott, & Dana Singh This file is part of Swiftest. Swiftest is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -36,6 +35,13 @@ def __init__(self, codename: Literal["Swiftest", "Swifter", "Swift"] = "Swiftest", param_file: os.PathLike | str ="param.in", read_param: bool = False, + t0: float = 0.0, + tstart: float = 0.0, + tstop: float = 1.0, + dt: float = 0.002, + istep_out: int = 50, + tstep_out: float | None = None, + istep_dump: int = 50, init_cond_file_type: Literal["NETCDF_DOUBLE", "NETCDF_FLOAT", "ASCII"] = "NETCDF_DOUBLE", init_cond_file_name: str | os.PathLike | Dict[str, str] | Dict[str, os.PathLike] | None = None, init_cond_format: Literal["EL", "XV"] = "EL", @@ -248,6 +254,16 @@ def __init__(self, restart=restart, verbose = False) + self.set_simulation_time(t0=t0, + tstart=tstart, + tstop=tstop, + dt=dt, + tstep_out=tstep_out, + istep_out=istep_out, + istep_dump=istep_dump, + verbose = False + ) + # If the parameter file is in a different location than the current working directory, we will need # to use it to properly open bin files self.sim_dir = os.path.dirname(os.path.realpath(param_file)) @@ -1190,12 +1206,12 @@ def update_param_units(self,MU2KG_old,DU2M_old,TU2S_old): for k in mass_keys: if k in self.param: print(f"param['{k}']: {self.param[k]}") - self.param[k] *= self.param['MU2KG'] / MU2KG_old + self.param[k] *= MU2KG_old / self.param['MU2KG'] if DU2M_old is not None: for k in distance_keys: if k in self.param: - self.param[k] *= self.param['DU2M'] / DU2M_old + self.param[k] *= DU2M_old / self.param['DU2M'] CHK_QMIN_RANGE = self.param.pop('CHK_QMIN_RANGE', None) if CHK_QMIN_RANGE is not None: @@ -1207,7 +1223,7 @@ def update_param_units(self,MU2KG_old,DU2M_old,TU2S_old): if TU2S_old is not None: for k in time_keys: if k in self.param: - self.param[k] *= self.param['TU2S'] / TU2S_old + self.param[k] *= TU2S_old / self.param['TU2S'] return