Qualitative question about the capabilities of FEniCS to simulate high Reynolds number vortex rings

I am trying to simulate vortex rings in air, so I am in a very high Reynolds number regime (~10e5). I have read a couple papers where researchers were able to successfully model vortex rings in air using finite element analysis, specifically in COMSOL (see here: Dynamics of volcanic vortex rings - PMC). I have tried to recreate their setup and boundary conditions as faithfully as possible, however my results are not as expected. So I am wondering:

  1. Is this the type of problem that can be solved using the FEniCS library? It is a complicated and a very turbulent system…

  2. Is there a way to simulate infinite domains in FEniCS? The outer boundaries of my current setup are adversely affecting the solution, so I am wondering if there is a way to simulate an “infinite” boundary (see here for an example of what I mean: https://doc.comsol.com/5.6/docserver/#!/com.comsol.help.comsol/comsol_ref_definitions.17.107.html).

Your questions are very broad and therefore difficult to provide a precise answer. FEniCS is an open source generalised toolbox for the computation of FEM problems. This offers you precise control over every aspect of the finite element formulation, discretisation and its solution. However, this requires specialised knowledge of the user. Commercial packages typically offer some “black box” solvers which, due to their closed nature, make it difficult to know exactly what discretisation schemes are being employed.

There are many turbulence models and techniques for their discretisation. An appropriate choice depends on the continuum model, application, geometry and precision required. At a glance the work you cited appears to employ the k-\omega model with some component of streamline diffusion. This is reasonably straightforward to implement with FEniCS if you have experience with fluid dynamics and finite element methods.

Regarding PMLs an example implementation is available, e.g. Locally-Conformal Perfectly Matched Layer implementation. See also https://github.com/FEniCS/dolfinx/blob/main/python/demo/demo_pml/demo_pml.py.

Thanks for your response! I’ll take a look at the resources you suggested.