2
using namespace rheolef;
4
#include "navier_stokes_solve.icc"
5
#include "navier_stokes_criterion.icc"
7
int main (int argc, char**argv) {
8
environment rheolef (argc, argv);
10
cerr << "usage: " << argv[0] << " <geo> <Re> <err> <hmin> <delta t> <n_adapt>" << endl;
14
adapt_option_type options;
15
Float Re = (argc > 2) ? atof(argv[2]) : 100;
16
options.err = (argc > 3) ? atof(argv[3]) : 1e-2;
17
size_t n_adapt = (argc > 4) ? atoi(argv[4]) : 5;
21
space Xh = cavity_space (omega, "P2");
22
space Qh (omega, "P1");
23
field uh = cavity_field (Xh, 1.0);
26
for (size_t i = 0; true; i++) {
27
size_t max_iter = 1000;
29
navier_stokes_solve (Re, delta_t, fh, uh, ph, max_iter, tol, &derr);
30
odiststream o (omega.name(), "field");
31
o << catchmark("Re") << Re << endl
32
<< catchmark("delta_t") << delta_t << endl
33
<< catchmark("u") << uh
34
<< catchmark("p") << ph;
36
if (i >= n_adapt) break;
37
field ch = navier_stokes_criterion (Re,uh);
38
omega = adapt (ch, options);
39
o.open (omega.name(), "geo");
42
Xh = cavity_space (omega, "P2");
43
Qh = space (omega, "P1");
44
uh = cavity_field (Xh, 1.0);