You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>A 2D & 3D Flux Reconstruction Code in C++</p>
25
+
<p>An Unstructured 2D & 3D Overset-Grid Flux Reconstruction Code in C++</p>
26
26
27
27
<p>Written by <axmlns:cc="http://creativecommons.org/ns#" href="http://jcrabill.weebly.com/" property="cc:attributionName" rel="cc:attributionURL"> Jacob Crabill </a></p>
<p>The code is currently capable of running scalar advection/diffusion or Euler/Navier-Stokes cases on unstructured mixed grids of quadrilaterals and triangles (2D) or hexahedrons (3D) in the Gmsh format. Both linear and quadratic elements are supported, allowing for accurate representations of curved boundaries.</p>
37
+
<p>The code is currently capable of running scalar advection/diffusion or Euler/Navier-Stokes cases on unstructured mixed grids of quadrilaterals and triangles (2D) or hexahedrons (3D) in the Gmsh format. Up to 10th-order quadrilaterals and hexaderons are supported, allowing for accurate representations of curved boundaries.</p>
38
38
39
-
<p>CFL-based time stepping is available for ease (and safety) of use, along with both Forward Euler and RK45 time-stepping.</p>
39
+
<p>Compilation with OpenMP and/or MPI is supported, enabling computation on both shared an distributed memory architectures</p>
40
+
41
+
<p>CFL-based time stepping is available for ease (and safety) of use for inviscid calculations, along with both Forward Euler and RK44 time-stepping.</p>
42
+
43
+
<p>Convergence acceleration via both <i>h</i>- and <i>p</i>-multigrid is available, along with a tuned 4-stage high-damping explicit RK scheme. Note that the <i>h</i>-multigrid levels are produced through successive refinement of a coarse mesh with high-order boundaries.</p>
40
44
41
45
<p>Shock capturing has been implemented, but is still under development and is not fully tested yet. Additionally, a highly robust stabilization procedure invented by Chi-Wang Shu and further developed by Yu Lv is available; however, its usage tends to disrupt convergence of steady-state problems.</p>
42
46
43
47
<p>Moving grids are supported by the solver, but there are not yet any grid-motion functions implemented beyond a few basic test cases.</p>
44
48
45
49
<p>Lastly, overset grids in 2D and 3D are supported, utilizing Jay Sitaraman's TIOGA library for hole-blanking whenever solid bodies are embedded inside a mesh.
46
-
Moving overset grids are also supported for 2D with dynamic blanking/unblanking of elements, with 3D near completion as well.</p>
50
+
Moving overset grids are also supported for 2D and 3D with dynamic blanking/unblanking of elements.</p>
47
51
48
52
<h1>
49
53
<aid="background--goals-of-the-project" class="anchor" href="#background--goals-of-the-project" aria-hidden="true"><spanclass="octicon octicon-link"></span></a>Background / Goals of the Project</h1>
@@ -69,23 +73,11 @@ <h2>
69
73
70
74
<p>To compile Flurry, you can either use QT Creator (<ahref="https://www.qt.io/download-open-source/">https://www.qt.io/download-open-source/</a>),
71
75
which is an excellent C++ IDE that I use for development, or you can use the provided makefile to compile using GNU make. For the make option,
72
-
just open a terminal and run the following:</p>
73
-
74
-
<p><code>make <em>build_type</em></code></p>
75
-
76
-
<p>Where <em>build_type</em> is one of the following options:
77
-
78
-
<p><code>debug mpi=n</code></p>
79
-
<p><code>release mpi=n</code></p>
80
-
<p><code>openmp mpi=n</code></p>
81
-
<p><code>mpidebug</code></p>
82
-
<p><code>mpi2</code></p>
83
-
<p><code>mpi</code></p>
76
+
just edit the supplied config file as needed and type <code>make -j</code>.</p>
84
77
85
-
<p><em>release</em> and the basic <em>mpi</em> builds turn on full optimization, while the <em>debug</em> and <em>mpidebug</em> builds removes all
86
-
optimization and add flags for both debugging and profiling. The <em>openmp</em> build uses OpenMP to take advantage of easy parallelization on desktop computers, or while the <em>mpi</em> build use MPI to completely parallelize
87
-
on both shared- and distributed-memory systems. Note that compiling with MPI requires several external libraries and header files (metis.h/metis.a, mpi.h), the location of which must be specified in the makefile.
88
-
The code is known to work with OpenMPI >= 1.6.5.</p>
78
+
The <em>openmp</em> build uses OpenMP to take advantage of easy parallelization on desktop computers, or while the <em>mpi</em> build use MPI to completely parallelize
79
+
on both shared- and distributed-memory systems. Note that compiling with MPI requires several external libraries and header files (metis.h/metis.a, mpi.h), the location of which must be specified in the config file.
80
+
The code is known to work with OpenMPI >= 1.6.5. BLAS linking is also required; the location of cblas.h must also be supplied in the config file.</p>
0 commit comments