Example #1
0
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)