Example #1
0
else:

    adjoint_setup(model)
    model.initialise_function_spaces()

    if job == 2 or job == 5:
        target = True
    else:
        target = False

    plotter = sw_io.Adjoint_Plotter('results/adj_{}_'.format(job), True, True, target=target)

    if job == 2:

        if options.adjoint_test:
            phi_ic = sw_io.create_function_from_file('phi_ic_adj{}_latest.json'.
                                                     format(job), model.phi_FS)
        else:
            phi_ic = project(Expression('1.0'), model.phi_FS)

        model.setup(phi_ic = phi_ic)#, h_ic=h_ic)
        model.solve(T = options.T)
        (q, h, phi, phi_d, x_N, u_N) = split(model.w[0])

        # get model data
        phi_d_aim = sw_io.create_function_from_file('deposit_data.json', model.phi_d_FS)
        x_N_aim = sw_io.create_function_from_file('runout_data.json', model.var_N_FS)

        # plot(phi_d_aim, interactive=True)

        # form Functional integrals
        int_0_scale = Constant(1)
Example #2
0
            a += inner(test[i], trial[i])*dx
            L += inner(test[i], self.w_ic[i])*dx
        solve(a == L, self.w[0])

        # copy to w[1]
        self.w[1] = project(self.w[0], self.W)

model = Model()
model.solve()

# generate functional
(q, h, phi, phi_d, x_N, u_N) = split(model.w[0])

# form Functional integrals
# get model data
phi_d_aim = sw_io.create_function_from_file('deposit_data.json', model.phi_d_FS)

# form Functional integrals
int_0_scale = Constant(1)
int_0 = inner(phi_d-phi_d_aim, phi_d-phi_d_aim)*int_0_scale*dx
int_0_scale.assign(1e-2/assemble(int_0))

J = Functional(int_0*dt[FINISH_TIME])

reduced_functional = ReducedFunctional(J, [InitialConditionParameter(model.phi_ic)])

bounds = [[0.5], 
          [1.5]]

m_opt = minimize(reduced_functional, method = "L-BFGS-B", 
                 options = {'maxiter': 5,