#include <corner_singularity.h>
Public Member Functions | |
CornerSingularity (const Point< 2 > &x0, const double theta0, const double omega, const double r0=0.01, const double r1=0.99) | |
virtual | ~CornerSingularity () |
destructor | |
double | value (const Point< 2 > &x, const unsigned int component=0) const |
point value at x | |
void | vector_value (const Point< 2 > &p, Vector< double > &values) const |
vector-valued value at x (for compatibility with Function) | |
Protected Member Functions | |
double | zeta (const double r) const |
the cutoff function | |
Protected Attributes | |
Point< 2 > | x0 |
corner | |
double | theta0 |
starting angle | |
double | omega |
inner angle | |
double | r0 |
cutoff parameters | |
double | r1 |
Corner singularity function w.r.t. a reentrant corner at x0 in a polygonal domain in R^2. In polar coordinates w.r.t. the corner, the function looks like
s(r,theta) = zeta(r)*r^{pi/omega}*sin((pi/omega)*theta),
where zeta:[0,infty)->R is the smooth cutoff function
zeta(r) = w(r1-r)/(w(r-r0)+w(r1-r)) w(t) = exp(-1/t^2) for t>0 and 0 elsewhere
This yields exactly the function S_{l,1} from [D].
References: [D] Dahlke, Besov regularity for elliptic boundary value problems on polygonal domains, Appl. Math. Lett. 12(1999), 31-36
MathTL::CornerSingularity::CornerSingularity | ( | const Point< 2 > & | x0, |
const double | theta0, | ||
const double | omega, | ||
const double | r0 = 0.01 , |
||
const double | r1 = 0.99 |
||
) |
constructor from a corner x0, a starting angle theta0 (times pi, against positive x-axis) and an inner angle omega (times pi);