Loading...
Searching...
No Matches
navier_stokes_taylor_dg.cc
Go to the documentation of this file.
#include "rheolef.h"
using namespace rheolef;
using namespace std;
#include "taylor.h"
#include "stokes_dirichlet_dg.icc"
#include "inertia.h"
int main(int argc, char**argv) {
environment rheolef (argc, argv);
geo omega (argv[1]);
space Xh (omega, argv[2], "vector");
space Qh (omega, argv[2]);
Float Re = (argc > 3) ? atof(argv[3]) : 1;
size_t max_iter = (argc > 4) ? atoi(argv[4]) : 1;
form a, b, c, mp;
field lh, kh;
stokes_dirichlet_dg (Xh, Qh, a, b, c, mp, lh, kh);
field uh (Xh, 0), ph (Qh, 0);
problem_mixed stokes (a, b, c);
stokes.set_metric (mp);
stokes.solve (lh, kh, uh, ph);
trial u (Xh); test v (Xh);
form a1 = a + Re*inertia (uh, u, v);
lh += Re*inertia_fix_rhs (v);
derr << "#k r as" << endl;
for (size_t k = 0; k < max_iter; ++k) {
stokes = problem_mixed (a1, b, c);
stokes.set_metric (mp);
stokes.solve (lh, kh, uh, ph);
form th = inertia (uh, u, v);
a1 = a + Re*th;
field rh = a1*uh + b.trans_mult(ph) - lh;
derr << k << " " << rh.max_abs() << " " << th(uh,uh) << endl;
}
dout << catchmark("Re") << Re << endl
<< catchmark("u") << uh
<< catchmark("p") << ph;
}
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_mixed
see the problem_mixed page for the full documentation
rheolef::catchmark
see the catchmark page for the full documentation
Definition catchmark.h:67
rheolef::environment
see the environment page for the full documentation
Definition environment.h:121
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
main
int main()
Definition field2bb.cc:58
inertia.h
The inertia term of the Navier-Stokes equation with the discontinuous Galerkin method – di Pietro & E...
inertia
form inertia(W w, U u, V v, integrate_option iopt=integrate_option())
Definition inertia.h:26
inertia_fix_rhs
field inertia_fix_rhs(test v, integrate_option iopt=integrate_option())
Definition inertia.h:37
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
std
STL namespace.
rheolef.h
rheolef - reference manual
stokes_dirichlet_dg.icc
The Stokes problem with Dirichlet boundary condition by the discontinuous Galerkin method – solver fu...
stokes_dirichlet_dg
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())
Definition stokes_dirichlet_dg.icc:25
u
Definition leveque.h:25
taylor.h
The Taylor benchmark – right-hand-side and boundary condition.