Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
navier_stokes_taylor_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.h"
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
see the space page for the full documentation
see the test page for the full documentation
see the test page for the full documentation
int main()
Definition field2bb.cc:58
The inertia term of the Navier-Stokes equation with the discontinuous Galerkin method – di Pietro & E...
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
This file is part of Rheolef.
STL namespace.
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.