The torus benchmark – level set, right-hand-side and exact solution.
The torus benchmark – level set, right-hand-side and exact solution
static const Float R = 1;
static const Float r = 0.6;
return sqr(sqrt(sqr(x[0])+sqr(x[1]))-sqr(R)) + sqr(x[2])-sqr(r);
}
rho = sqrt(sqr(x[2]) + sqr(sqrt(sqr(x[0]) + sqr(x[1])) - sqr(R)));
theta = atan2(x[2], sqrt(sqr(x[0]) + sqr(x[1])) - R);
}
return sin(3*
phi)*cos(3*theta+
phi);
}
};
- (-10*sin(3*
phi)*cos(3*theta+
phi) - 6*cos(3*
phi)*sin(3*theta+
phi))
- (3*sin(theta)*sin(3*
phi)*sin(3*theta+
phi))
return fx;
}
};
see the Float page for the full documentation
see the point page for the full documentation
point operator()(const point &x) const
point operator()(const point &x) const
void get_torus_coordinates(const point &x, Float &rho, Float &theta, Float &phi)