mosolov_exact_circle.h

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) {}
};
Float
see the Float page for the full documentation
point
see the point page for the full documentation
rheolef::norm
T norm(const vec< T, M > &x)
norm(x): see the expression page for the full documentation
Definition: vec.h:387
rheolef::pow
space_mult_list< T, M > pow(const space_basic< T, M > &X, size_t n)
Definition: space_mult.h:120
grad_u
Definition: combustion_exact.icc:34
grad_u::operator()
point operator()(const point &x) const
Definition: combustion_exact.icc:35
grad_u::Bi
Float Bi
Definition: mosolov_exact_circle.h:38
grad_u::n
Float n
Definition: mosolov_exact_circle.h:38
grad_u::grad_u
grad_u(Float lambda, bool is_upper)
Definition: combustion_exact.icc:37
sigma
Definition: mosolov_exact_circle.h:40
sigma::sigma
sigma(Float=0, Float=0)
Definition: mosolov_exact_circle.h:42
sigma::operator()
point operator()(const point &x) const
Definition: mosolov_exact_circle.h:41
u
Definition: leveque.h:25
u::operator()
point operator()(const point &x) const
Definition: leveque.h:26
u::Bi
Float Bi
Definition: mosolov_exact_circle.h:30
u::n
Float n
Definition: mosolov_exact_circle.h:30
u::u
u()
Definition: zalesak.h:33