Loading...
Searching...
No Matches
yield_slip1.icc
Go to the documentation of this file.
#include "d_projection_dx.h"
yield_slip::yield_slip (Float S1, Float n1, Float Cf1, Float r1,
const geo& omega, const geo& boundary1, string approx)
: S(S1), n(n1), Cf(Cf1), r(r1), boundary(boundary1), Xh(), Wh(), Yh(),
lh(), mkh(), m(), mb(), a(), b(), c1(), pmb(), pa(), pA()
{
Xh = space (omega, approx);
Wh = space (boundary, approx);
Yh = Xh*Wh;
trial u (Xh), lambda(Wh);
test v (Xh), mu(Wh);
m = integrate(u*v);
mb = integrate(lambda*mu);
a = integrate(dot(grad(u),grad(v))) - r*integrate(boundary, u*v);
b = integrate(boundary, u*mu);
lh = integrate(v);
pmb = problem (mb);
pa = problem (a);
field vh(Xh);
pa.solve (lh, vh);
mkh = b*vh;
}
field yield_slip::residue (const field& beta_h) const {
field vh (Xh);
field rhs = b.trans_mult (beta_h);
pa.solve (rhs, vh);
test mu (Wh);
field c0h = integrate(mu*compose(projection(S,n,Cf,r), beta_h));
field mrh = b*vh + c0h - mkh;
return mrh;
}
void yield_slip::update_derivative (const field& beta_h) const {
trial lambda (Wh); test mu (Wh);
c1 = integrate (lambda*mu*compose(d_projection_dx(S,n,Cf,r), beta_h));
form A = { { a, trans(b) },
{ b, -c1 } };
A.set_symmetry (c1.is_symmetric());
pA = problem(A);
}
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.
u
point u(const point &x)
Definition diffusion_transport_tensor_exact.icc:25
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