This page aims to compile a list of solutions on using General Purpose Graphical Processing Units for OpenFOAM (GPGPU at Wikipedia).1 Open Source. This list includes those that have commercial support, but all have the source code licensed under an OSI approved license. Symscape's GPU Linear Solver Library for OpenFOAM. 5.16th OpenFOAM workshop 2021, Dublin; 6.第六届全国船舶与海洋工程CFD专题研讨会; 7.第十一届全国流体力学学术会议征文通知; 8.国际爆轰推进2020研讨会; 9.第三十一届全国水动力学研讨会征文通知. OpenFOAM Ubuntu repository To use the OpenFOAM early-release Ubuntu repository, you will need to add the signing key and the repository location (s) to your system. This typically only needs to be done once per distribution. The most convenient way is to use the installer script with one of these commands. OpenFOAM - Topics related to the OpenFOAM software. New posts: Hot thread with new posts: No new posts: Hot thread with no new posts.
Openfoam Download
Skip to end of metadataGo to start of metadataModeling with OpenFOAM involves multiple steps. These include pre-processing (geometry/part creation (perhaps with a CAD package) and meshing), simulation, and post-processing. Simple geometries can be created and meshed within OpenFOAM (see the lid-driven cavity flow example below). However, it is more convenient to use a CAD software for creating more complex geometries and use a separate software for meshing. In the following sections, we will briefly take you through the modeling steps with a simple example.
The example of lid-driven cavity flow introduces you to OpenFOAM by taking you through all the steps (geometry creation, meshing, simulation and post-processing) for a simple geometry. All steps are carried out in OpenFOAM via command-line interface (CLI). Please familiarize yourself with this model (and the OpenFOAM directory structure) before proceeding further. These steps can be carried out using the singularity container on odyssey.
OpenFOAM with geometry and meshing using other software
Openfoam Github
In this example, we consider laminar flow in a pipe (radius 10 mm, length 1000 mm). The kinematic viscosity of the fluid is 0.00047 m^2/s and the density is about 850 kg.m^3 (corresponding to some kind of oil). Flow in the tube is maintained by applying a pressure of 5000 Pascals above the atmospheric pressure at one end while the other end is exposed to the atmosphere.
Geometry preparation with freecad and meshing with gmsh
The following pdf shows how to construct the tube geometry and export it in the STEP format suitable for import into gmsh for meshing. The procedure is similar to that followed in https://www.youtube.com/results?search_query=freecad+gmsh+openfoam.
While tetrahedral meshes can be generated easily with gmsh, they are not ideal for CFD applications. The following pdf shows mesh generation with hexahedra.
Note that the geometry creation step can also be performed with commercial software (eg. Solidworks, Onshape, Autodesk, etc.) and exported in STEP format to meshing software. Geometry creation and meshing can also be carried out with other open source packages such as salome (or salome_meca).
Simulation
We set up the simulation of laminar pipe flow by copying a pre-existing incompressible flow simulation directory structure from the directory $FOAM_TUTORIALS. Before beginning this part, make yourself familiar with the OpenFOAM directory structure:
For the current simulation, we need the mesh generated with gmsh along with the initial and boundary conditions and fluid transport properties. The mesh file should be converted to the OpenFOAM format with the gmshToFoam utility and the units (which are in mm) need to be converted to SI units (the native units of OpenFOAM) with the transformPoints utility function. We setup the simulation by copying the folder $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily folder and modifying the appropriate files. The following pdf file illustrates the steps:
The zip file tube_laminar_flow.zip includes the directory structure with all the necessary files set up for laminar pipe flow. Unzip the file in a suitable directory, change into it and run singularity from there. The file also includes a mesh file from gmsh. You can import it into openfoam and run openfoam from the tube_laminar_flow directory as follows:
Post-processing
Post-processing of results is done with the paraFoam program that is also available on the freecad-openfoam singularity image. The following pdf shows how to plot the velocity across the outlet of the pipe. Note that the maximum velocity at the center of the tube at the outlet (~ 0.29 m/s) smaller than the theoretical maximum (~ 0.31 m/s). This is perhaps due to resolution and the kind of mesh (unstructured mesh). Structured mesh with greater resolution at the boundary is likely to yield better results (see the OpenFOAM results with the Freecad CFD workbench below).
Newer versions of Freecad (0.17 onwards) allow for simple incompressible fluid simulations to be carried out via the Freecad GUI Interface. The freecad-openfoam singularity image on Odyssey allows this method of using Freecad. It requires a few set-up steps and these are detailed in the following pdf file.
OpenFOAM Documentation
For specific documentation, search the web (google, bing, etc.) or youtube. For example, to find out about OpenFOAM solvers, search on youtube 'OpenFOAM solvers'. As of this writing, this will lead you to a nice video by Jozsef Nagy titled 'How to find the most suitable solver for OpenFOAM simulations'.
Freecad – CFD/Finite Element Analysis workbenches
http://www.opensim.co.za/training.html
Gmsh
What is OpenFOAM?OpenFOAM (Open source Field Operation And Manipulation) is a C++ toolbox for the development of customized numerical solvers, and pre-/post-processing utilities for the solution of continuum mechanics problems, including computational fluid dynamics (CFD). The code is released as free and open source software under the GNU General Public License. It is maintained by The OpenFOAM Foundation,[1]which is sponsored by the ESI Group, the owner of the trademark to the name OpenFOAM.
-- excerpt from en.wikipedia.org/wiki/OpenFOAM
Versions of OpenFOAM Installed at PACE- 1.6-ext
- 2.0.1
- 2.1.0
- 2.2.0 (this version is experimental as of 2013-07-1)
Version 2.1.0
Version 2.1.0 has a single requirement that must be met.
Initial Setup
- The directory ~/scratch/OpenFOAM/2.1.0 must exist. This directory can be created with the command '
mkdir -p ~/scratch/OpenFOAM/2.2.0
'
Loading the modules
To use this version of OpenFOAM, simply load the openfoam/2.1.0 module like so:module load openfoam/2.1.0
.
This version of OpenFOAM has its own MPI installed, so all compiler and MPI modules must be unloaded before OpenFOAM will work.
Example job script
Version 2.2.0 (experimental)
Initial Setup
Version 2.2.0 has a few strict requirements that must be met before it can be used.
- The directory ~/scratch/OpenFOAM/2.2.0 must exist. This directory can be created with the command '
mkdir -p ~/scratch/OpenFOAM/2.2.0
' - The directory ~/.OpenFOAM/2.2.0 must exist. This directory can be created with the command '
mkdir -p ~/.OpenFOAM/2.2.0
' - The file ~/.OpenFOAM/2.2.0/controlDict must exist. This file can be created with the command '
cp /usr/local/packages/openfoam/2.2.0/gcc-4.7.2/etc/controlDict ~/.OpenFOAM/2.2.0/
'- Note: You can modify your 'controlDict' file at anytime.
- Note: This file is needed in the ~/.OpenFOAM/2.2.0 directory the the 'foamEtcFile' command. If that file doesn't exist, OpenFOAM will crash with strange errors.
Loading the Modules
To use OpenFOAM, we must load modules in a specific order.
When these commands are executed, this will be displayed to the screen:
Since this version of OpenFOAM is experimental, this warning is OK. Note: The 'module load openfoam/2.2.0' must be executed AFTER gcc/4.7.2 and openmpi/1.6.2 are already loaded. If the module load commands are joined like this: 'module load gcc/4.7.2 openmpi/1.6.2 openfoam/2.2.0', the openfoam module will not be correctly loaded, and the OpenFOAM applications will not work.
Verifying that OpenFOAM works
To verify that OpenFOAM is correctly loaded and working, we need to run a basic test:
The last command 'Allrun' should display several things that indicate a successful execution:
Open the 'log.laplacianFoam' file to see if OpenFOAM was able to run successfully. If the 'Allrun' command worked, you are now ready to use OpenFOAM.
Example OpenFOAM job script
Final Notes about OpenFOAM/2.2.0
Openfoam Download
Openfoam Cfd
There are three different installations of OpenFOAM 2.2.0 - gcc-4.7.2, intel-12.1.4, and intel-13.2.146. Currently (as of 2013-07-11), only the gcc-4.7.2 version works. The intel versions are currently not working and are undergoing testing to see if we can fix it.