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