7
$\begingroup$

Are there any frameworks that could be classified as "general computational fluid dynamics framework"?

What I'm thinking of is a framework that's modular and extensible in order to allow the development of new algorithms pretty much unlimitedly. And scaleability over different computer configurations (laptop - HPC). Do such things exist?

I know FEniCS, but my understanding of it is that it's more research oriented (at least now). That is, it doesn't e.g. have a large library or the toolchain for doing e.g. simulation for an engineering design per se.

$\endgroup$
1

4 Answers 4

3
$\begingroup$

After gaining more experience with Advanced Simulation Library I can recommend it (as I mentioned in another thread) as a general extensible multiphysics (CFD included) framework

It has following important advantages:

  1. simple C++ API (and only C++ - no need to know OpenCL or Python even for adding new numerical methods (which will automatically become hardware accelerated)!)
  2. remarkable performance
  3. multiphysics: many other physical/chemical phenomena besides CFD (Lattice Boltzmann method is used in ASL)
  4. hardware accelerated, can be deployed on CPU/GPU/FPGA/DSP/APU-clusters
  5. mesh-free, immersed boundary technology allows to move from CAD directly to simulation (important for automated design optimization).
  6. dynamic compilation approach enables an additional layer of optimization at run-time (i.e. for a specific parameters set the application was provided with)
  7. open source: AGPL + optional commercial license for closed-source projects.
$\endgroup$
1
  • 1
    $\begingroup$ Just adding: GPL and commercial for commercial purposes. $\endgroup$
    – mavavilj
    Dec 24, 2015 at 20:32
2
$\begingroup$

high-order flow solver PyFR is a GPU based framework written in python created by Imperial College London UK which handles various backends : CUDA, OpenCL OpenMP ... features :

  • Governing Equations - Euler, Navier Stokes
  • Dimensionality - 2D, 3D
  • Element Types - Triangles, Quadrilaterals, Hexahedra, Prisms, Tetrahedra, Pyramids
  • Platforms - CPU Clusters, Nvidia GPU Clusters, AMD GPU Clusters
  • Spatial Discretisation - High-Order Flux Reconstruction
  • Temporal Discretisation - Explicit Runge-Kutta
$\endgroup$
2
$\begingroup$

OpenFOAM is pretty widely used in the computational fluids community and has a good reputation. I can't say anything based on first hand experience, but it's reasonably well liked and indeed widely used.

$\endgroup$
1
$\begingroup$

You might find that a general CFD "framework" might not be the best one for many engineering design problems.

The Advanced Simulation Library (ASL) and OpenFoam (both recommended by others here) will do very well on a large number of applications, but they might be worse than slightly more specific codes that, for example, are better at estimating the motions of floating bodies, ships manoeuvring etc. etc. OpenFoam has managed to be applied reasonably successfully to ship problems; ASL, as far as I know, has not. That same type of situation will occur with many other "general" CFD codes (like a person who is a "Jack of all trades, master of none".)

You need to do a lot more research into CFD solvers, with a clear idea of what engineering applications you will be using them on for the next few years. A fairly large investment of time is needed to learn the intricacies of the "frameworks", and it would be a pain if they were greatly inferior to others for entire classes of problems you will want to work on in the future. Good luck!

$\endgroup$
1
  • $\begingroup$ ASL and OpenFOAM can be used to write very specific codes. OpenFOAM is older and thus has more solvers out_of_the_box, ASL on the other hand, while still young has sophisticated future-proof design. $\endgroup$ Dec 30, 2015 at 20:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.