Rheolef  7.2
an efficient C++ finite element environment
navier_stokes_taylor_cks_dg.cc
Go to the documentation of this file.
1
25#include "rheolef.h"
26using namespace rheolef;
27using namespace std;
28#include "taylor.h"
30#include "inertia_cks.icc"
31int main(int argc, char**argv) {
32 environment rheolef (argc, argv);
33 geo omega (argv[1]);
34 space Xh (omega, argv[2], "vector");
35 space Qh (omega, argv[2]);
36 Float Re = (argc > 3) ? atof(argv[3]) : 1;
37 size_t max_iter = (argc > 4) ? atoi(argv[4]) : 1;
38 form a, b, c, mp;
39 field lh, kh;
40 stokes_dirichlet_dg (Xh, Qh, a, b, c, mp, lh, kh);
41 field uh (Xh, 0), ph (Qh, 0);
42 problem_mixed stokes (a, b, c);
43 stokes.set_metric (mp);
44 stokes.solve (lh, kh, uh, ph);
45 trial u (Xh); test v (Xh);
46 form a1 = a + Re*inertia (uh, u, v);
47 lh += Re*inertia_fix_rhs (v);
48 derr << "#k r as" << endl;
49 for (size_t k = 0; k < max_iter; ++k) {
50 stokes = problem_mixed (a1, b, c);
51 stokes.set_metric (mp);
52 stokes.solve (lh, kh, uh, ph);
53 form th = inertia (uh, u, v);
54 a1 = a + Re*th;
55 field rh = a1*uh + b.trans_mult(ph) - lh;
56 derr << k << " " << rh.max_abs() << " " << th(uh,uh) << endl;
57 }
58 dout << catchmark("Re") << Re << endl
59 << catchmark("u") << uh
60 << catchmark("p") << ph;
61}
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 form page for the full documentation
see the geo page for the full documentation
see the problem_mixed page for the full documentation
see the catchmark page for the full documentation
Definition: catchmark.h:67
see the environment page for the full documentation
Definition: environment.h:121
see the space page for the full documentation
see the test page for the full documentation
see the test page for the full documentation
point u(const point &x)
form inertia(W w, U u, V v, integrate_option iopt=integrate_option())
Definition: inertia.h:26
field inertia_fix_rhs(test v, integrate_option iopt=integrate_option())
Definition: inertia.h:37
The inertia term of the Navier-Stokes equation with the discontinuous Galerkin method – Cockburn,...
This file is part of Rheolef.
STL namespace.
int main(int argc, char **argv)
rheolef - reference manual
The Stokes problem with Dirichlet boundary condition by the discontinuous Galerkin method – solver fu...
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: leveque.h:25
The Taylor benchmark – right-hand-side and boundary condition.