예제 #1
0
ts.dump(tstep)

initial_step = bool(parameters["restart_folder"] is None)
while t < T:
    tstep += 1
    info_cyan("tstep = {}, time = {}".format(tstep, t))

    u_1.assign(u_)

    converged = False
    while not converged:
        if parameters["anneal"]:
            tau.assign(
                anneal_func(
                    t+dt.get(),
                    parameters["tau"],
                    parameters["tau_ramp"],
                    parameters["t_ramp"]))

        # Compute energy
        u_.assign(u_1)
        Eout_0 = df.assemble(geo_map.form(E_0))
        Eout_2 = df.assemble(geo_map.form(E_2))
        E_before = Eout_0 + Eout_2

        try:
            solver.solve()
            converged = True
        except:
            info_blue("Did not converge. Chopping timestep.")
            dt.chop()
예제 #2
0
ts.add_field(df.sqrt(geo_map.gab[i, j] * mu_.dx(i) * mu_.dx(j)), "abs_grad_mu")

# Step in time
ts.dump(tstep)

initial_step = bool(parameters["restart_folder"] is None)
t_prev = t
while t < T:
    tstep += 1
    info_cyan("tstep = {}, time = {}".format(tstep, t))

    u_1.assign(u_)

    if parameters["anneal"]:
        tau.assign(
            anneal_func(t, parameters["tau"], parameters["tau_ramp"],
                        parameters["t_ramp"]))

    # Compute energy
    # u_.assign(u_1)
    Eout_0 = df.assemble(geo_map.form(E_0))
    Eout_2 = df.assemble(geo_map.form(E_2))
    E_before = Eout_0 + Eout_2

    converged = False
    while not converged:
        try:
            solver.solve()
            converged = True
        except:
            info_blue("Did not converge. Chopping timestep.")
            dt.chop()