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 File(out_dir + 'B.xml') << model.B File(out_dir + 'u_s.xml') << model.u_s
class SurfaceTemperature(Expression): 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