def main(): # Read Params parser = argparse.ArgumentParser() parser.add_argument("-s" , "--solver", default="Jacobi", help="one of Jacobi, Gauss, SOR") parser.add_argument("-w" , "--omega" , default="1.0", help="w for SOR") parser.add_argument("-x" , "--length" , default="1.0", help="Length of one side of domain") args = parser.parse_args() P = Params("params.txt") P.solver = args.solver P.Lx = P.Ly = P.Lz = float(args.length) P.omega = args.omega P.set_dependent() # Initialize Domain dom_initial = conditions.initial_domain() # Assign Solver solver = {'Jacobi': solvers.Jacobi, 'Gauss': solvers.Gauss, 'SOR': solvers.SOR}[P.solver] # Assign Driver driver = drivers.CN(solver) # Assign Boundary boundary = boundaries.Dirichlet() # Run it! tic = time.clock() dom_final, meaniters = evolve(dom_initial, driver, boundary) print (time.clock() - tic) / P.nSteps, meaniters # Plot it! if (P.plot): plot(dom_initial, dom_final)