config['periodic_boundary_conditions'] = False config['velocity']['poly_degree'] = 2 config['enthalpy']['on'] = True config['enthalpy']['N_T'] = 8 config['free_surface']['on'] = True config['free_surface']['thklim'] = thklim config['velocity']['transient_beta'] = 'eismint_H' model = Model(config) model.set_mesh(mesh) model.set_geometry(S, B, deform=False) model.initialize_variables() model.init_adot(adot) model.init_beta(sqrt(1e9)) model.init_T_surface(T_s) model.init_H(thklim) model.init_H_bounds(thklim, 1e4) model.init_q_geo(model.ghf) model.eps_reg = 1e-10 T = HybridTransientSolver(model, config) T.solve() File(out_dir + 'Ts.xml') << model.Ts File(out_dir + 'Tb.xml') << model.Tb File(out_dir + 'Mb.xml') << model.Mb File(out_dir + 'H.xml') << model.H File(out_dir + 'S.xml') << model.S
class SurfaceTemperature(Expression): Tmin = 238.15 St = 1.67e-5 def eval(self, values, x): values[0] = self.Tmin + self.St * sqrt(x[0]**2 + x[1]**2) T_s = SurfaceTemperature(element=model.Q.ufl_element()) model.set_geometry(S, B, deform=False) model.initialize_variables() model.init_adot(adot) model.init_beta(beta) model.init_T_surface(T_s) model.init_H(thklim) model.init_H_bounds(thklim, 1e4) model.init_q_geo(model.ghf) model.eps_reg = 1e-10 T = HybridTransientSolver(model, config) T.solve() File(out_dir + 'Ts.xml') << model.Ts File(out_dir + 'Tb.xml') << model.Tb File(out_dir + 'Mb.xml') << model.Mb File(out_dir + 'H.xml') << model.H File(out_dir + 'S.xml') << model.S
t = 0.0 Tmin = 238.15 St = 1.67e-5 def eval(self,values,x): values[0] = self.Tmin + self.St*sqrt(x[0]**2 + x[1]**2) T_s = SurfaceTemperature(element=model.Q.ufl_element()) model.set_surface_and_bed(S, B) model.initialize_variables() model.init_adot(adot) model.init_T_surface(T_s) model.init_H_bounds(thklim, 1e4) model.init_q_geo(model.ghf) model.init_H(in_dir + 'H.xml') model.init_beta(in_dir + 'beta.xml') #model.init_beta_stats('Ubar') model.save_pvd(model.S, 'S') model.save_pvd(model.B, 'B') model.save_pvd(model.beta, 'beta') model.eps_reg = 1e-10 T = HybridTransientSolver(model, config) T.solve() File(out_dir + 'Ts.xml') << model.Ts File(out_dir + 'Tb.xml') << model.Tb File(out_dir + 'Mb.xml') << model.Mb File(out_dir + 'H.xml') << model.H