The Navier-Stokes equations with the discontinuous Galerkin method – class body.
Float Re1,
const geo& omega,
string approx)
: Re(Re1), Xh(), Qh(), iopt(), a0(), b(), c(), mu(), mp(), lh0(),
lh(), kh(),
pmu(), pmp(), a1(), stokes1()
{
Xh =
space (omega, approx,
"vector");
Qh =
space (omega, approx);
iopt.set_family(integrate_option::gauss);
iopt.set_order(2*Xh.degree()+1);
mu = integrate (dot(
u,v), iopt);
}
if (restart == "") {
stokes0.solve (
lh0,
kh, xh[0], xh[1]);
} else {
idiststream in (restart);
in >> catchmark("Re") >> Re0
>> catchmark("u") >> xh[0]
>> catchmark("p") >> xh[1];
<< xh[0].get_space().
name() <<
" approximation in file \""
<< restart <<
"\" (" <<
Xh.name() <<
" expected)");
}
derr <<
"# continuation: from Re=" << Re0 <<
" to " <<
Re << endl;
return xh;
}
return mrh;
}
}
stokes1.solve (mrh[0], mrh[1], delta_xh[0], delta_xh[1]);
return delta_xh;
}
pmu.solve (mrh[0], rh[0]);
pmp.solve (mrh[1], rh[1]);
return mgh;
}
field lh(Float epsilon, Float t, const test &v)
see the Float page for the full documentation
see the field page for the full documentation
see the geo page for the full documentation
see the problem_mixed page for the full documentation
see the problem page for the full documentation
see the space page for the full documentation
see the test page for the full documentation
see the test page for the full documentation
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
form inertia(W w, U u, V v, integrate_option iopt=integrate_option())
field inertia_fix_rhs(test v, integrate_option iopt=integrate_option())
void stokes_dirichlet_dg(const space &Xh, const space &Qh, form &a, form &b, form &c, form &mp, field &lh, field &kh, integrate_option iopt=integrate_option())
void update_derivative(const value_type &uh) const
value_type derivative_solve(const value_type &mrh) const
value_type initial(string restart) const
navier_stokes_dg(Float Re, const geo &omega, string approx)
value_type residue(const value_type &uh) const
value_type derivative_trans_mult(const value_type &mrh) const
Eigen::Matrix< field, 2, 1 > value_type