#!/usr/local/opt/python/bin/python2.7

# Line terminator
ENDLINE = "\n"


# Open new python driver
driver = open('driver.py', 'w')


# Write driver script
driver.write("#!/bin/python"                                        + ENDLINE)
driver.write("import chidg"                                         + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("# Set up options dictionaries"                        + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("toptions = chidg.dict()"                              + ENDLINE)
driver.write("loptions = chidg.dict()"                              + ENDLINE)
driver.write("noptions = chidg.dict()"                              + ENDLINE)
driver.write("poptions = chidg.dict()"                              + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("toptions.set_real('dt',0.001)"                        + ENDLINE)
driver.write("toptions.set_int('nsteps',100)"                       + ENDLINE)
driver.write("toptions.set_int('nwrite',100)"                       + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("noptions.set_real('tol',1.e-6)"                       + ENDLINE)
driver.write("noptions.set_real('cfl0',3.0)"                        + ENDLINE)
driver.write("noptions.set_int('nsteps',100)"                       + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("loptions.set_real('tol',1.e-8)"                       + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)

driver.write("#"                                                    + ENDLINE)
driver.write("# Create simulation environment"                      + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("sim = chidg.sim()"                                    + ENDLINE)
driver.write("sim.init('env')"                                      + ENDLINE)
driver.write("sim.set_accuracy(1)"                                  + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("# Set algorithms"                                     + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("sim.set('time_scheme',     'steady',       toptions)" + ENDLINE)
driver.write("sim.set('nonlinear_solver','quasi_newton', noptions)" + ENDLINE)
driver.write("sim.set('linear_solver',   'FGMRES',       loptions)" + ENDLINE)
driver.write("sim.set('preconditioner',  'ILU0',         poptions)" + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("# Read data"                                          + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("sim.read_grid('smoothbump.h5', 3)"                    + ENDLINE)
driver.write("sim.read_boundaryconditions('smoothbump.h5')"         + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("sim.initialize_solution_domains(1)"                   + ENDLINE)
driver.write("sim.init('chimera')"                                  + ENDLINE)
driver.write("sim.initialize_solution_solver()"                     + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("sim.read_solution('smoothbump.h5')"                   + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("# Run simulation environment"                         + ENDLINE)
driver.write("#"                                                    + ENDLINE)
driver.write("sim.init('finalize')"                                 + ENDLINE)
driver.write("sim.run()"                                            + ENDLINE)
driver.write("sim.report()"                                         + ENDLINE)
driver.write(" "                                                    + ENDLINE)
driver.write(" "                                                    + ENDLINE)







