struct u_exact {
  Float operator() (const point& x) const { 
    return 1 - tanh((x[0]-x0-t)/(2*epsilon)); }
  u_exact (Float e1, Float t1=0) : epsilon(e1), t(t1), x0(-0.5) {}
  Float M() const { return 0; }
  Float epsilon, t, x0;
};
using u_init = u_exact;
using g = u_exact;
