Rheolef
7.2
an efficient C++ finite element environment
Loading...
Searching...
No Matches
lambda2alpha.h
Go to the documentation of this file.
1
25
#include "
lambda_c.h
"
26
Float
lambda2alpha
(
Float
lambda
,
bool
up =
false
) {
27
static
const
Float
ac =
alpha_c
();
28
Float
tol = 1e2*numeric_limits<Float>::epsilon();
29
size_t
max_iter = 1000;
30
Float
a_min = up ? ac : 0;
31
Float
a_max = up ? 100 : ac;
32
for
(
size_t
k = 0; abs(a_max - a_min) > tol; ++k) {
33
Float
a1 = (a_max + a_min)/2;
34
Float
lambda1 = 8*sqr(a1/cosh(a1));
35
if
((up &&
lambda
> lambda1) || (!up &&
lambda
< lambda1))
36
{ a_max = a1; }
37
else
{ a_min = a1; }
38
check_macro
(k < max_iter,
"lambda2alpha: max_iter="
<< k
39
<<
" reached and err="
<< a_max - a_min);
40
}
41
return
(a_max + a_min)/2;
42
};
Float
see the Float page for the full documentation
check_macro
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
lambda2alpha
Float lambda2alpha(Float lambda, bool up=false)
Definition
lambda2alpha.h:26
lambda_c.h
The combustion problem – the critical parameter value as a function.
alpha_c
Float alpha_c()
Definition
lambda_c.h:36
lambda
Definition
yield_slip_circle.h:34