Rheolef  7.2
an efficient C++ finite element environment
mosolov_exact_circle.h

The Mossolov problem for a circular pipe – exact solution.

The Mossolov problem for a circular pipe – exact solution

struct u {
Float operator() (const point& x) const {
return (pow(1-Bi,1+1/n) - pow(max(Float(0),norm(x)-Bi),1+1/n))/(1+1/n);
}
u (Float Bi1, Float n1) : Bi(Bi1), n(n1) {}
protected: Float Bi, n;
};
struct grad_u {
point operator() (const point& x) const {
Float r = norm(x);
return (r <= Bi) ? point(0,0) : -pow(r-Bi, 1/n)*(x/r);
}
grad_u (Float Bi1, Float n1) : Bi(Bi1), n(n1) {}
protected: Float Bi, n;
};
struct sigma {
point operator() (const point& x) const { return -x; }
sigma (Float=0, Float=0) {}
};
see the Float page for the full documentation
see the point page for the full documentation
space_mult_list< T, M > pow(const space_basic< T, M > &X, size_t n)
Definition: space_mult.h:120
T norm(const vec< T, M > &x)
norm(x): see the expression page for the full documentation
Definition: vec.h:387
point operator()(const point &x) const
grad_u(Float lambda, bool is_upper)
sigma(Float=0, Float=0)
point operator()(const point &x) const
Definition: leveque.h:25
point operator()(const point &x) const
Definition: leveque.h:26
Float Bi
u()
Definition: zalesak.h:33