Rheolef
7.2
an efficient C++ finite element environment
Loading...
Searching...
No Matches
mosolov_augmented_lagrangian2.icc
Go to the documentation of this file.
1
25
mosolov_augmented_lagrangian::mosolov_augmented_lagrangian
()
26
: Bi(0), n(1), r(1), tol(1e-10), max_iter(1000000),
27
Xh(), Th(),
lh
(), a(), b(), inv_mt(), pa()
28
{}
29
void
mosolov_augmented_lagrangian::reset
(
geo
omega,
string
approx) {
30
Xh
=
space
(omega, approx);
31
Xh
.block (
"boundary"
);
32
string
grad_approx =
"P"
+ to_string(
Xh
.degree()-1) +
"d"
;
33
Th
=
space
(omega, grad_approx,
"vector"
);
34
trial
u
(
Xh
),
sigma
(
Th
);
35
test
v (
Xh
), tau (
Th
);
36
lh
= integrate(2*v);
37
a
= integrate (dot(grad(
u
),grad(v)));
38
b
= integrate (dot(grad(
u
),tau));
39
integrate_option iopt;
40
iopt.invert =
true
;
41
inv_mt
= integrate(dot(
sigma
,tau), iopt);
42
pa
=
problem
(
a
);
43
}
44
void
45
mosolov_augmented_lagrangian::initial
(
field
& sigma_h,
field
& uh)
const
{
46
uh =
field
(
Xh
);
47
uh [
"boundary"
] = 0;
48
pa
.solve (
lh
, uh);
49
test
tau (
Th
);
50
field
mt_grad_uh = integrate(dot(grad(uh),tau));
51
sigma_h =
inv_mt
*mt_grad_uh;
52
}
53
void
mosolov_augmented_lagrangian::put
(odiststream& out,
54
field
& sigma_h,
field
& uh)
const
55
{
56
out << catchmark(
"Bi"
) <<
Bi
<< endl
57
<< catchmark(
"n"
) <<
n
<< endl
58
<< catchmark(
"r"
) <<
r
<< endl
59
<< catchmark(
"sigma"
) << sigma_h
60
<< catchmark(
"u"
) << uh;
61
}
lh
field lh(Float epsilon, Float t, const test &v)
Definition
burgers_diffusion_operators.icc:25
field
see the field page for the full documentation
geo
see the geo page for the full documentation
problem
see the problem page for the full documentation
space
see the space page for the full documentation
test
see the test page for the full documentation
trial
see the test page for the full documentation
mosolov_augmented_lagrangian::inv_mt
form inv_mt
Definition
mosolov_augmented_lagrangian.h:36
mosolov_augmented_lagrangian::pa
problem pa
Definition
mosolov_augmented_lagrangian.h:37
mosolov_augmented_lagrangian::a
form a
Definition
mosolov_augmented_lagrangian.h:36
mosolov_augmented_lagrangian::mosolov_augmented_lagrangian
mosolov_augmented_lagrangian()
Definition
mosolov_augmented_lagrangian2.icc:25
mosolov_augmented_lagrangian::Bi
Float Bi
Definition
mosolov_augmented_lagrangian.h:32
mosolov_augmented_lagrangian::Xh
space Xh
Definition
mosolov_augmented_lagrangian.h:34
mosolov_augmented_lagrangian::lh
field lh
Definition
mosolov_augmented_lagrangian.h:35
mosolov_augmented_lagrangian::n
Float n
Definition
mosolov_augmented_lagrangian.h:32
mosolov_augmented_lagrangian::reset
void reset(geo omega, string approx)
Definition
mosolov_augmented_lagrangian2.icc:29
mosolov_augmented_lagrangian::r
Float r
Definition
mosolov_augmented_lagrangian.h:32
mosolov_augmented_lagrangian::b
form b
Definition
mosolov_augmented_lagrangian.h:36
mosolov_augmented_lagrangian::put
void put(odiststream &out, field &sigma_h, field &uh) const
Definition
mosolov_augmented_lagrangian2.icc:53
mosolov_augmented_lagrangian::Th
space Th
Definition
mosolov_augmented_lagrangian.h:34
mosolov_augmented_lagrangian::initial
void initial(field &sigma_h, field &uh) const
Definition
mosolov_augmented_lagrangian2.icc:45
sigma
Definition
mosolov_exact_circle.h:40
u
Definition
leveque.h:25