def main(): parser = ArgumentParser() parser.add_argument('-g', '--grid-params', type=FileType('r'), required=True) parser.add_argument('--part-quant', default=1) parser.add_argument('--isec', default=4) parser.add_argument('--idir', default=0) parser.add_argument('--nqua', default=1) parser.add_argument('--ist1', default=10) parser.add_argument('--ist2', default=10) parser.add_argument('--jst1', default=50) parser.add_argument('--jst2', default=50) parser.add_argument('--kst1', default=5) parser.add_argument('--kst2', default=5) args = parser.parse_args() read_params(args.grid_params) tm.mod_param.partquant = args.part_quant tm.mod_param.partquant = args.part_quant tm.mod_seed.isec = args.isec tm.mod_seed.idir = args.idir tm.mod_seed.nqua = args.nqua tm.mod_seed.seedtype = 1 tm.mod_seed.ist1 = args.ist1 tm.mod_seed.ist2 = args.ist2 tm.mod_seed.jst1 = args.jst1 tm.mod_seed.jst2 = args.jst2 tm.mod_seed.kst1 = args.kst1 tm.mod_seed.kst2 = args.kst2 tm.init_params2() tm.coordinat() tm.mod_grid.kmt[:] = tm.mod_param.km if tm.mod_seed.nqua == 1: # number of trajectories (per time resolution) # num=NTRACMAX tm.mod_seed.num = tm.mod_param.partquant elif tm.mod_seed.nqua == 2: tm.mod_param.voltr = tm.mod_param.partquant elif tm.mod_seed.nqua == 3: tm.mod_param.voltr = tm.mod_param.partquant tm.mod_traj.trj[:] = 0 tm.mod_traj.nrj[:] = 0 tm.init_seed() tm.mod_seed.seed(0, 0) print tm.mod_seed.seed_ijk print tm.mod_traj.trj
def setup_tracmass(self, seed_locations): tm.mod_seed.nqua = 4 tm.mod_param.partquant = 1 tm.mod_grid.subgrid = 0 tm.mod_param.kriva = 1 tm.mod_domain.timax = 3650.0 tm.loop.writedata = self.writedata tm.loop.readfields = self.readfields #Constants in this run tm.mod_param.lbt = 1 tm.mod_param.nend = tm.mod_param.lbt + 1 tm.mod_param.ntracmax = seed_locations.shape[0] + 1 tm.init_params2() tm.coordinat() tm.mod_time.intrun = self.ntimesteps - 1 if self.start > self.end: #Backward self.mod_seed.nff = 2 self.mod_time.intstep = -1 tm.mod_time.intstart = self.ntimesteps tm.mod_time.intend = 0 else: #Forward tm.mod_time.intstep = 1 tm.mod_seed.nff = 1 tm.mod_time.intstart = 0 tm.mod_time.intend = self.ntimesteps tm.mod_grid.kmt[:] = tm.mod_param.km if tm.mod_seed.nqua == 1: # number of trajectories (per time resolution) # num=NTRACMAX tm.mod_seed.num = tm.mod_param.partquant elif tm.mod_seed.nqua == 2: tm.mod_param.voltr = tm.mod_param.partquant elif tm.mod_seed.nqua == 3: tm.mod_param.voltr = tm.mod_param.partquant tm.mod_grid.kmt[:] = tm.mod_param.km tm.mod_time.intspin = 1 tm.mod_seed.idir = 0 tm.allocate_seed(seed_locations.shape[0]) tm.mod_seed.isec = 5 tm.mod_seed.seed_ijk[:, :] = 2 tm.mod_seed.seed_xyz[:, :] = seed_locations tm.mod_seed.seed_set[:] = [tm.mod_seed.isec, tm.mod_seed.idir] self.trajectory = [list() for _ in range(seed_locations.shape[0])]
def main(): parser = ArgumentParser() parser.add_argument('-r', '--run-params', type=FileType('r')) parser.add_argument('-g', '--grid-params', type=FileType('r')) parser.add_argument('-s', '--set', nargs=2, action='append') parser.add_argument('--seed') parser.add_argument('--exit') parser.add_argument('--path') parser.add_argument('--start') parser.add_argument('--end') parser.add_argument('--delta-hours') parser.add_argument('--delta-minutes') parser.add_argument('--delta-seconds') parser.add_argument('--print-state', action='store_true') args = parser.parse_args() read_params(args.run_params) read_params(args.grid_params) tm.init_params2() tm.coordinat() setup() tm.mod_grid.kmt[:] = tm.mod_param.km tm.allocate_seed(1) tm.mod_seed.isec = 5 tm.mod_seed.seed_ijk[:,:] = 2 tm.mod_seed.seed_xyz[:,:] = [[9.125, 49.125, 4.5]] tm.mod_seed.seed_set[:] = [tm.mod_seed.isec, tm.mod_seed.idir] if args.print_state: print_state() return print tm.mod_traj.trj.shape print tm.mod_traj.trj[:1,:] def writedata(*args): print tm.mod_traj.trj[:1,:] print tm.writedata2(*args) tm.loop.writedata = tm.writedata2 tm.loop.readfields = tm.tes_readfields tm.loop() print "Done!"