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