Wolf is a 2D and 3D vertex-centered Mixed Finite Element-Finite Volume
solver solving the compressible Euler and Navier Stokes equations with or without moving geometries
on unstructured meshes composed of triangle or tetrahedra.
It also solves the associated steady or unsteady ajoint problems.
For the turbulent Reynolds-Averaged Navier-Stokes (RANS) equations, it uses the one equation Spalart-Allmaras
turbulence model.
Periodicity and rotating frame are taken into consideration for turbomachinery applications.
The numerical scheme is second order in space.
The convective terms are solved by a edge-based Finite Volume scheme.
It employes the HLLC approximate Riemann solver to compute numerical fluxes.
Second order is achieved using a MUSCL-like method using combination of centered and upwind gradient
to design a low dissipation scheme. Specific limiters with three entries are considered
to guarantee the LED property of the scheme.
The diffusive terms are solved using the Finite Element method.
The numerical scheme is up to fourth order in time if explicit time integration (SSP Runge-Kutta) is considered,
and up to second order for implicit time integration (BDF, BDF2).
For implicit time integration, SGS under-relaxation are considered that can be coupled with line or multigrid solvers.
For moving geometry problems or fluid-structure interation, an ALE numerical scheme is used for the fluid and
an elasticity solver is available to solve the structure.
Mesh Adaptation
Wolf-Interpol
is a software which is interpolating/transfering 2D and 3D solution fields from one mesh to another.
Solution transfer or solution interpolation is one stage of mesh adaptation schemes.
It links the mesh generation and the numerical flow solver. After generating a new
(possibly adapted) mesh, the aim is to recover the solution field on this new mesh to
pursue the computation. This code proposes P1, P2 and P3 classical interpolation scheme.
It also perform conservative P1 interpolation and metric field interpolation.
Metrix is computing 2D and 3D metric field based on a priori error estimates.
In mesh adaptation, a metric field is required to govern the mesh generation. Metrics
are constructed from error estimates (a priori or a posteriori) applied
to the numerical solution.
Metrix computes metric fields from scalar solutions by controlling the Lp norm of the
interpolation error (feature-based error estimate) or
using a goal-oriented error estimate (adjoint-based error estimate).
It also computes the metric of a level set by controlling its
curvature and its thickness, and it extracts the metric associated to a given mesh.
Finally, it performs several operations on metric field such as: metric gradation, metric smoothing and
metric intersection.
Shrimp is a fast and low memory mesh renumbering and domain partitioning software.
The mesh renumbering is based on Péano-Hilbert curves which leads to a drastic reduction of the number of cache misses
and memory contention which is mandatory for efficient shared memory parallelization.
This software can also perform hierarchical domain partioning for distributed memory parallelization.
This partitioning can be based on the use of Péano-Hilbert curves or advancing front appraoches.
It can also be used as an interface to run in parallel mesh generators or local adaptive remeshers
such as Feflo.a, GHS3D or Mmg3d.
Mesh Generation and Moving Mesh
Wolf-Bloom is a boundary layer mesh generator for complex geometries.
The boundary layer mesh can be composed only of tetrahedra or of multi-elements, i.e., tetrahedra, hexahedra,
prisms and pyramids. Layers of the mesh are proposed by an advancing-front method using surface normals.
Each layer of the mesh is pushed (inserted) inside the mesh using a moving mesh technology.
The key point of this approach is to handle efficiently the collision of several layers.
The algorithm has been exetended to P2 curved meshes to generate high-order boundary layer elements
Wolf-PkCurved is a high-order mesh generator, i.e., it generates meshes composed
of curved triangles and curved tetrahedra (P2 and P3 elements are availbale).
It starts from a usual P1 mesh, i.e., a mesh composed of straight elements.
First, the surface mesh is curved by projecting the nodes on the given CAD or on the given discrete CAD
(given by a P3 geometric model of the surface).
Then, the volume mesh is curved accordingly using a mesh deformation method. The surface mesh deformation is propagated into the
volume using a high-order elasticity solver coupled with high-order mesh optimization.
Wolf-MovMsh uses an innovative changing-connectivity moving mesh technology to
displace body-fitted object inside the computational mesh.
The mesh deformation problem is solved thanks to an elasticity-like PDE. Vertices trajectories are
enhance using curved-accelerated path.
To maintain a high quality mesh throughout the displacement, the mesh deformation is coupled with
a mesh optimization procedure using vertex smoothing and edge-face swapping.
This approach remains in the Arbitrary-Lagrangian-Eulerian framework which is crucial for flow solver accuracy.
Geometric Mesh Intersection
Wolf-XFEM performs geometric mesh intersection between a surface mesh and a volume mesh.
The XFEM or Nitsche-XFEM method is well-suited to simulate fluid-structure interaction problems with thin-walled structure.
It requires the evaluation of integrals over cut-elements between the volume mesh and the structure mesh to enrich the finite
element space.
This is a non-standard implementation problem which demands a specific track of the interface intersections, namely:
- evaluation of the intersections between the unfitted fluid and solid meshes, i.e., the computation of the cut-elements
- evaluation of the integrals over the cut-elements.
Wolf-XFEM outputs a conformal mesh of the intersection for the surface and the volume mesh required the XFEM or the N-XFEM methods.