diff --git a/bfps/FluidResize.py b/bfps/FluidResize.py index 444c4d466fafd241a5f32127b2074cddb6b71a5a..8e03e1657e2f1551a4e27e8442dd0fc1032bc876 100644 --- a/bfps/FluidResize.py +++ b/bfps/FluidResize.py @@ -133,13 +133,12 @@ class FluidResize(_fluid_particle_base): self, args = [], **kwargs): - parser = argparse.ArgumentParser('bfps ' + type(self).__name__) - self.add_parser_arguments(parser) - opt = parser.parse_args(args) + opt = self.prepare_launch(args) cmd_line_pars = vars(opt) for k in ['dst_nx', 'dst_ny', 'dst_nz']: if type(cmd_line_pars[k]) == type(None): cmd_line_pars[k] = opt.m + self.parameters['niter_todo'] = 0 self.pars_from_namespace(opt) src_file = os.path.join( os.path.realpath(opt.src_work_dir), diff --git a/bfps/NavierStokes.py b/bfps/NavierStokes.py index d263d432ab3138026fa4c58f434957635811c632..5f4cbc90e40964d2ba06b331c5e33d1a8f170ab4 100644 --- a/bfps/NavierStokes.py +++ b/bfps/NavierStokes.py @@ -30,6 +30,7 @@ import h5py import argparse import bfps +from ._code import _code from ._fluid_base import _fluid_particle_base class NavierStokes(_fluid_particle_base): @@ -976,12 +977,10 @@ class NavierStokes(_fluid_particle_base): self, args = [], **kwargs): + opt = self.prepare_launch(args) # with the default Lundgren forcing, I can estimate the dissipation # with nondefault forcing, figure out the amplitude for this viscosity # yourself - parser = argparse.ArgumentParser('bfps ' + type(self).__name__) - self.add_parser_arguments(parser) - opt = parser.parse_args(args) self.QR_stats_on = opt.QR_stats self.parameters['nu'] = (opt.kMeta * 2 / opt.n)**(4./3) self.parameters['dt'] = (opt.dtfactor / opt.n) @@ -1001,7 +1000,6 @@ class NavierStokes(_fluid_particle_base): self.fill_up_fluid_code() self.finalize_code() self.write_src() - self.set_host_info(bfps.host_info) if not os.path.exists(os.path.join(self.work_dir, self.simname + '.h5')): self.write_par() if self.parameters['nparticles'] > 0: diff --git a/bfps/__main__.py b/bfps/__main__.py index 150d708b344bf92af807afbf9543748d6aa25436..4a1029991f45811ef60d1742e8a055755aa07f60 100644 --- a/bfps/__main__.py +++ b/bfps/__main__.py @@ -29,7 +29,6 @@ import argparse import bfps from .NavierStokes import NavierStokes -from .FluidConvert import FluidConvert from .FluidResize import FluidResize def main(): diff --git a/bfps/_base.py b/bfps/_base.py index eb564fcd3669eea5f0d667cd4e94c88e06540ccf..7e3a4cf96f0729cf9efb9fa161f4b8f8f22b1ee1 100644 --- a/bfps/_base.py +++ b/bfps/_base.py @@ -166,7 +166,7 @@ class _base(object): '--environment', type = str, dest = 'environment', - default = '') + default = None) parser.add_argument( '--wd', type = str, dest = 'work_dir', diff --git a/bfps/_code.py b/bfps/_code.py index c0f019fc9dbe1903a921a4c319c85818469bc5e4..755c51d6d948b4d2845a8b19ca007cfbf98f4d12 100644 --- a/bfps/_code.py +++ b/bfps/_code.py @@ -28,6 +28,7 @@ import os import sys import shutil import subprocess +import argparse import h5py from datetime import datetime import math @@ -263,4 +264,15 @@ class _code(_base): script_file.write('exit 0\n') script_file.close() return None + def prepare_launch( + self, + args = [], + **kwargs): + parser = argparse.ArgumentParser('bfps ' + type(self).__name__) + self.add_parser_arguments(parser) + opt = parser.parse_args(args) + self.set_host_info(bfps.host_info) + if type(opt.environment) != type(None): + self.host_info['environment'] = opt.environment + return opt diff --git a/bfps/_fluid_base.py b/bfps/_fluid_base.py index 6c36cbfd57f91588781242d718cfecec596f56e2..d82f83c3a71b3fa8dbfbd77b2d855c0b941de5ee 100644 --- a/bfps/_fluid_base.py +++ b/bfps/_fluid_base.py @@ -395,9 +395,4 @@ class _fluid_particle_base(_code): nshells = kspace['nshell'].shape[0] ofile.close() return None - def launch( - self, - args = [], - **kwargs): - return None