Difference between revisions of "OpenFOAM"

From UFRC
Jump to navigation Jump to search
 
(34 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=OpenFoam=
+
__NOTOC__
 +
__NOEDITSECTION__
 +
[[Category:Software]][[Category:Fluid Dynamics]]
 +
{|<!--Main settings - REQUIRED-->
 +
|{{#vardefine:app|OpenFoam}}
 +
|{{#vardefine:url|http://www.openfoam.org}}
 +
|{{#vardefine:exe|}} <!--Present manual instructions for running the software -->
 +
|{{#vardefine:conf|}} <!--Enable config wiki page link - {{#vardefine:conf|1}} = ON/conf|}} = OFF-->
 +
|{{#vardefine:pbs|}} <!--Enable PBS script wiki page link-->
 +
|{{#vardefine:slurm|}} <!--Enable SLURM script wiki page link-->
 +
|{{#vardefine:policy|}} <!--Enable policy section -->
 +
|{{#vardefine:testing|}} <!--Enable performance testing/profiling section -->
 +
|{{#vardefine:faq|}} <!--Enable FAQ section -->
 +
|{{#vardefine:citation|}} <!--Enable Reference/Citation section -->
 +
|}
 +
<!-- ########  Template Body ######## -->
 +
<!--Description-->
 +
{{#if: {{#var: url}}|
 +
{{App_Description|app={{#var:app}}|url={{#var:url}}|name={{#var:app}}}}|}}
  
== Version 1.7.1 ==
+
OpenFOAM is a free, open source CFD software package produced by a commercial company, OpenCFD Ltd. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetic.
  
Needs to be built with gcc 4.4.4 or newer.  Gcc 4.4.4, in turn, requires a bunch of stuff so we have the following (in the order in which they should be built).
+
<!--Modules-->
 +
==Required Modules==
 +
[[Modules|modules documentation]]
 +
*intel/2018
 +
*openmpi/3.0.0
 +
*openfoam/5.0
  
 
 
=== gmp-5.0.1 ===
 
 
<pre>
 
<pre>
./configure --prefix=/apps/openfoam/tools
+
$ module load intel/2018  openmpi/3.0.0 openfoam/5.0
make -j 4
 
make install
 
 
</pre>
 
</pre>
  
=== ppl-0.10.2 ===
+
==System Variables==
 +
=== OpenFOAM variables ===
 +
* FOAM_INST_DIR - installation base directory
 +
* FOAM_APPBIN - executable program directory
 +
* FOAM_LIB - library directory
 +
* FOAM_SRC - source directory
 +
* FOAM_EXT_LIBBIN - ThirdParty library directory
 +
* PV_PLUGIN_PATH - ParaView library directory
 +
* FOAM_TUTORIALS - tutorial directory
  
There is an error in the configure script due to a change in GMP fixed as below.
+
=== Wmake variables ===
 +
These are the wmake parameters used in building OpenFOAM and could be used for compiling the third-party OpenFOAM applications using wmake.
  
<pre>
+
* WM_PROJECT_INST_DIR - wmake installation base directory
diff -u configure.orig configure
+
* WM_PROJECT_VERSION - wmake project version
--- configure.orig 2011-02-11 12:29:38.000000000 -0500
+
* WM_PROJECT - wmake project name (OpenFOAM in this case)
+++ configure 2011-02-10 13:34:14.000000000 -0500
+
* WM_PROJECT_DIR - wmake project directory
@@ -16473,7 +16473,7 @@
+
* WM_DIR - directory where "wmake" executable is
      || GMP_LIMB_BITS != mp_bits_per_limb) {
+
* WM_ARCH - architecture type
    std::cerr
+
* WM_COMPILER - compiler name
      << "GMP header (gmp.h) and library (ligmp.*) bits-per-limb mismatch:\n"
+
* WM_COMPILE_OPTION - compiler option
-     << "header gives " << __GMP_BITS_PER_MP_LIMB << ";\n"
+
* WM_LINK_LANGUAGE - compiler for linking
+      << "header gives " << GMP_LIMB_BITS << ";\n"
+
* WM_PRECISION_OPTION - precision type
      << "library gives " << mp_bits_per_limb << ".\n"
 
      << "This probably means you are on a bi-arch system and\n"
 
      << "you are compiling with the wrong header or linking with\n"
 
 
 
</pre>
 
 
 
<pre>
 
./configure --prefix=/apps/openfoam/tools \
 
            --with-libgmp-prefix=/apps/openfoam/tools \
 
            --with-libgmpxx-prefix=/apps/openfoam/tools \
 
            --enable-cxx
 
make -j4
 
make install
 
</pre>
 
 
 
=== mpfr-2.4.2 ===
 
 
 
<pre>
 
./configure --prefix=/apps/openfoam/tools \
 
            --with-gmp=/apps/openfoam/tools
 
make -j 4
 
make install
 
</pre>
 
 
 
=== cloog-ppl-0.15.9 ===
 
 
 
<pre>
 
./configure --prefix=/apps/openfoam/tools \
 
            --with-gmp=/apps/openfoam/tools \
 
            --with-ppl=/apps/openfoam/tools 
 
make -j 4
 
make install
 
</pre>
 
 
 
=== gcc-4.4.4 ===
 
  
<pre>
+
<!--Additional-->
../configure --prefix=/apps/openfoam/tools
+
{{#if: {{#var: exe}}|==Additional Information==
            --with-gmp=/apps/openfoam/tools \
+
WRITE INSTRUCTIONS ON RUNNING THE ACTUAL BINARY|}}
            --with-mpfr=/apps/openfoam/tools \
+
{{#if: {{#var: conf}}|==Configuration==
            --with-ppl=/apps/openfoam/tools \
+
See the [[{{PAGENAME}}_Configuration]] page for {{#var: app}} configuration details.|}}
            --with-cloog=/apps/openfoam/tools
+
{{#if: {{#var: pbs}}|==PBS Script Examples==
make -j 8
+
See the [[{{PAGENAME}}_PBS]] page for {{#var: app}} PBS script examples.|}}
make install
+
{{#if: {{#var: slurm}}|==SLURM Script Examples==
</pre>
+
See the [[{{PAGENAME}}_SLURM]] page for {{#var: app}} SLURM script examples.|}}
 
+
{{#if: {{#var: policy}}|==Usage Policy==
== OpenFOAM: Undefined pthread library references ==
+
WRITE USAGE POLICY HERE (perhaps templates for a couple of main licensing schemes can be used)|}}
 
+
{{#if: {{#var: testing}}|==Performance==
Undefined references to pthread routines required the following change to the wmake rules...
+
WRITE PERFORMANCE TESTING RESULTS HERE|}}
 
+
{{#if: {{#var: faq}}|==FAQ==
<pre>
+
*'''Q:''' **'''A:'''|}}
--- wmake/rules/linux64Gcc/general.orig 2011-02-11 12:00:54.000000000 -0500
+
{{#if: {{#var: citation}}|==Citation==
+++ wmake/rules/linux64Gcc/general 2011-02-11 11:45:49.000000000 -0500
+
If you publish research that uses {{{app}}} you have to cite it as follows:
@@ -1,7 +1,7 @@
+
WRITE CITATION HERE
CPP        = cpp -traditional-cpp $(GFLAGS)
+
|}}
LD        = ld
 
 
-PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
 
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl -lpthread
 
 
include $(GENERAL_RULES)/standard
 
</pre>
 

Latest revision as of 20:34, 10 December 2019

Description

OpenFoam website  

OpenFOAM is a free, open source CFD software package produced by a commercial company, OpenCFD Ltd. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetic.

Required Modules

modules documentation

  • intel/2018
  • openmpi/3.0.0
  • openfoam/5.0
$ module load intel/2018  openmpi/3.0.0 openfoam/5.0

System Variables

OpenFOAM variables

  • FOAM_INST_DIR - installation base directory
  • FOAM_APPBIN - executable program directory
  • FOAM_LIB - library directory
  • FOAM_SRC - source directory
  • FOAM_EXT_LIBBIN - ThirdParty library directory
  • PV_PLUGIN_PATH - ParaView library directory
  • FOAM_TUTORIALS - tutorial directory

Wmake variables

These are the wmake parameters used in building OpenFOAM and could be used for compiling the third-party OpenFOAM applications using wmake.

  • WM_PROJECT_INST_DIR - wmake installation base directory
  • WM_PROJECT_VERSION - wmake project version
  • WM_PROJECT - wmake project name (OpenFOAM in this case)
  • WM_PROJECT_DIR - wmake project directory
  • WM_DIR - directory where "wmake" executable is
  • WM_ARCH - architecture type
  • WM_COMPILER - compiler name
  • WM_COMPILE_OPTION - compiler option
  • WM_LINK_LANGUAGE - compiler for linking
  • WM_PRECISION_OPTION - precision type