@f{align}
s(\mathbf{u}) = \ln \Big(\frac{p(\mathbf{u})}{\rho^{\gamma}}\Big).
@f}
-We will refer to $\mathcal{B}$ as the invariant set of Euler's equations.
+We will refer to $\mathcal{B}$ as the invariant set of Euler's equations.
In other words, a state $\mathbf{u}(\mathbf{x},t)\in\mathcal{B}$ obeys
positivity of the density, positivity of the internal energy, and a local
minimum principle on the specific entropy. This condition is a simplified
no bilinear forms, no cell loops, and no quadrature) outside of the finite
element community in the wider CFD community. There is a rich history of
application of this kind of schemes, also called <i>edge-based</i> or
-<i>graph-based</i> finite element schemes (see for instance
+<i>graph-based</i> finite element schemes (see for instance
@cite Rainald2008 for a historical overview).
@todo Explain what to do for slip, dirichlet and do-nothing boundary
Running the program with default parameters in release mode takes about 1
minute on a 4 core machine (with hyperthreading):
@verbatim
-$ mpirun -np 4 ./step-69 | tee output
+# mpirun -np 4 ./step-69 | tee output
Reading parameters and allocating objects... done
####################################################
2.4M gridpoints on a small compute server:
@verbatim
-$ mpirun -np 16 ./step-69 | tee output
+# mpirun -np 16 ./step-69 | tee output
[...]
f))
continue;
- const auto &[normal_j, _1, _2] =
- boundary_normal_map[local_dof_indices[j]];
+ const auto &normal_j =
+ std::get<0>(boundary_normal_map[local_dof_indices[j]]);
const auto value_JxW =
fe_face_values.shape_value(j, q) * JxW;
/* Formula (2.11) in Guermond-Popov-2016 */
return std::max(positive_part(lambda3), negative_part(lambda1));
- };
+ }
// We compute a second upper bound of the maximal wavespeed that is in
// general, not as sharp as the two-rarefaction estimate. But it will