Rheolef
7.2
an efficient C++ finite element environment
Loading...
Searching...
No Matches
yield_slip1.icc
Go to the documentation of this file.
1
25
#include "
d_projection_dx.h
"
26
yield_slip::yield_slip
(
Float
S1,
Float
n1,
Float
Cf1,
Float
r1,
27
const
geo
& omega,
const
geo
& boundary1,
string
approx)
28
: S(S1), n(n1), Cf(Cf1), r(r1), boundary(boundary1), Xh(), Wh(), Yh(),
29
lh
(), mkh(), m(), mb(), a(), b(), c1(), pmb(), pa(), pA()
30
{
31
Xh
=
space
(omega, approx);
32
Wh
=
space
(
boundary
, approx);
33
Yh
=
Xh
*
Wh
;
34
trial
u
(
Xh
),
lambda
(
Wh
);
35
test
v (
Xh
), mu(
Wh
);
36
m
= integrate(
u
*v);
37
mb
= integrate(
lambda
*mu);
38
a
= integrate(dot(grad(
u
),grad(v))) -
r
*integrate(
boundary
,
u
*v);
39
b
= integrate(
boundary
,
u
*mu);
40
lh
= integrate(v);
41
pmb
=
problem
(
mb
);
42
pa
=
problem
(
a
);
43
field
vh(
Xh
);
44
pa
.solve (
lh
, vh);
45
mkh
=
b
*vh;
46
}
47
field
yield_slip::residue
(
const
field
& beta_h)
const
{
48
field
vh (
Xh
);
49
field
rhs =
b
.trans_mult (beta_h);
50
pa
.solve (rhs, vh);
51
test
mu (
Wh
);
52
field
c0h = integrate(mu*compose(
projection
(
S
,
n
,
Cf
,
r
), beta_h));
53
field
mrh =
b
*vh + c0h -
mkh
;
54
return
mrh;
55
}
56
void
yield_slip::update_derivative
(
const
field
& beta_h)
const
{
57
trial
lambda
(
Wh
);
test
mu (
Wh
);
58
c1
= integrate (
lambda
*mu*compose(
d_projection_dx
(
S
,
n
,
Cf
,
r
), beta_h));
59
form
A
= { {
a
, trans(
b
) },
60
{
b
, -
c1
} };
61
A
.set_symmetry (
c1
.is_symmetric());
62
pA
=
problem
(
A
);
63
}
lh
field lh(Float epsilon, Float t, const test &v)
Definition
burgers_diffusion_operators.icc:25
Float
see the Float page for the full documentation
field
see the field page for the full documentation
form
see the form 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
yield_slip::pa
problem pa
Definition
yield_slip.h:46
yield_slip::a
form a
Definition
yield_slip.h:44
yield_slip::S
Float S
Definition
yield_slip.h:40
yield_slip::mb
form mb
Definition
yield_slip.h:44
yield_slip::pA
problem pA
Definition
yield_slip.h:47
yield_slip::Xh
space Xh
Definition
yield_slip.h:42
yield_slip::c1
form c1
Definition
yield_slip.h:45
yield_slip::Wh
space Wh
Definition
yield_slip.h:42
yield_slip::lh
field lh
Definition
yield_slip.h:43
yield_slip::n
Float n
Definition
yield_slip.h:40
yield_slip::mkh
field mkh
Definition
yield_slip.h:43
yield_slip::m
form m
Definition
yield_slip.h:44
yield_slip::pmb
problem pmb
Definition
yield_slip.h:46
yield_slip::update_derivative
void update_derivative(const field &beta_h) const
Definition
yield_slip1.icc:56
yield_slip::r
Float r
Definition
yield_slip.h:40
yield_slip::b
form b
Definition
yield_slip.h:44
yield_slip::Cf
Float Cf
Definition
yield_slip.h:40
yield_slip::Yh
space Yh
Definition
yield_slip.h:42
yield_slip::yield_slip
yield_slip(Float S, Float n, Float Cf, Float r, const geo &omega, const geo &boundary, string approx="P1")
Definition
yield_slip1.icc:26
yield_slip::boundary
geo boundary
Definition
yield_slip.h:41
yield_slip::residue
field residue(const field &beta_h) const
Definition
yield_slip1.icc:47
d_projection_dx.h
The projection for yield-stress rheology – its derivative.
A
Definition
diffusion_isotropic.h:25
d_projection_dx
Definition
d_projection_dx.h:26
lambda
Definition
yield_slip_circle.h:34
projection
Definition
projection.h:27
u
Definition
leveque.h:25