Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
OpenFOAM
========
A free, open source CFD software package
Introduction**
----------------
OpenFOAM is a free, open source CFD software package developed
by [**OpenCFD Ltd**](http://www.openfoam.com/about) at [**ESI
Group**](http://www.esi-group.com/) and distributed by the [**OpenFOAM
Foundation **](http://www.openfoam.org/). It has a large user base
across most areas of engineering and science, from both commercial and
academic organisations.
Homepage: <http://www.openfoam.com/>
###Installed version**
Currently, several version compiled by GCC/ICC compilers in
single/double precision with several version of openmpi are available on
Anselm.
For example syntax of available OpenFOAM module is:
< openfoam/2.2.1-icc-openmpi1.6.5-DP >
this means openfoam version >2.2.1 compiled by
ICC compiler with >openmpi1.6.5 in> double
precision.
Naming convection of the installed versions is following:
openfoam/<>VERSION>>-<>COMPILER<span>>-<</span><span>openmpiVERSION</span><span>>-<</span><span>PRECISION</span><span>></span>
- ><>VERSION>> - version of
openfoam
- ><>COMPILER> - version of used
compiler
- ><>openmpiVERSION> - version of used
openmpi/impi
- ><>PRECISION> - DP/>SP –
double/single precision
###Available OpenFOAM modules**
To check available modules use
$ module avail
In /opt/modules/modulefiles/engineering you can see installed
engineering softwares:
------------------------------------ /opt/modules/modulefiles/engineering -------------------------------------------------------------
ansys/14.5.x matlab/R2013a-COM openfoam/2.2.1-icc-impi4.1.1.036-DP
comsol/43b-COM matlab/R2013a-EDU openfoam/2.2.1-icc-openmpi1.6.5-DP
comsol/43b-EDU openfoam/2.2.1-gcc481-openmpi1.6.5-DP paraview/4.0.1-gcc481-bullxmpi1.2.4.1-osmesa10.0
lsdyna/7.x.x openfoam/2.2.1-gcc481-openmpi1.6.5-SP
For information how to use modules please [look
here](../environment-and-modules.html "Environment and Modules ").
Getting Started**
-------------------
To create OpenFOAM environment on ANSELM give the commands:
$ module load openfoam/2.2.1-icc-openmpi1.6.5-DP
$ source $FOAM_BASHRC
Pleas load correct module with your requirements “compiler - GCC/ICC,
precision - DP/SP”.
Create a project directory within the $HOME/OpenFOAM directory
named ><USER>-<OFversion> and create a directory
named run within it, e.g. by typing:
$ mkdir -p $FOAM_RUN
Project directory is now available by typing:
$ cd /home/<USER>/OpenFOAM/<USER>-<OFversion>/run
<OFversion> - for example <2.2.1>
or
$ cd $FOAM_RUN
Copy the tutorial examples directory in the OpenFOAM distribution to
the run directory:
$ cp -r $FOAM_TUTORIALS $FOAM_RUN
Now you can run the first case for example incompressible laminar flow
in a cavity.
Running Serial Applications**
-------------------------------
Create a Bash script >test.sh
#!/bin/bash
module load openfoam/2.2.1-icc-openmpi1.6.5-DP
source $FOAM_BASHRC
# source to run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity
runApplication blockMesh
runApplication icoFoam
Job submission
$ qsub -A OPEN-0-0 -q qprod -l select=1:ncpus=16,walltime=03:00:00 test.sh
For information about job submission please [look
here](../resource-allocation-and-job-execution/job-submission-and-execution.html "Job submission").
Running applications in parallel**
-------------------------------------------------
Run the second case for example external incompressible turbulent
flow - case - motorBike.
First we must run serial application bockMesh and decomposePar for
preparation of parallel computation.
Create a Bash scrip test.sh:
#!/bin/bash
module load openfoam/2.2.1-icc-openmpi1.6.5-DP
source $FOAM_BASHRC
# source to run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
cd $FOAM_RUN/tutorials/incompressible/simpleFoam/motorBike
runApplication blockMesh
runApplication decomposePar
Job submission
$ qsub -A OPEN-0-0 -q qprod -l select=1:ncpus=16,walltime=03:00:00 test.sh
This job create simple block mesh and domain decomposition.
Check your decomposition, and submit parallel computation:
Create a PBS script>
testParallel.pbs:
#!/bin/bash
#PBS -N motorBike
#PBS -l select=2:ncpus=16
#PBS -l walltime=01:00:00
#PBS -q qprod
#PBS -A OPEN-0-0
module load openfoam/2.2.1-icc-openmpi1.6.5-DP
source $FOAM_BASHRC
cd $FOAM_RUN/tutorials/incompressible/simpleFoam/motorBike
nproc = 32
mpirun -hostfile ${PBS_NODEFILE} -np $nproc snappyHexMesh -overwrite -parallel | tee snappyHexMesh.log
mpirun -hostfile ${PBS_NODEFILE} -np $nproc potentialFoam -noFunctionObject-writep -parallel | tee potentialFoam.log
mpirun -hostfile ${PBS_NODEFILE} -np $nproc simpleFoam -parallel | tee simpleFoam.log
nproc – number of subdomains
Job submission
$ qsub testParallel.pbs
Compile your own solver**
----------------------------------------
Initialize OpenFOAM environment before compiling your solver
$ module load openfoam/2.2.1-icc-openmpi1.6.5-DP
$ source $FOAM_BASHRC
$ cd $FOAM_RUN/
Create directory applications/solvers in user directory
$ mkdir -p applications/solvers
$ cd applications/solvers
Copy icoFoam solver’s source files
$ cp -r $FOAM_SOLVERS/incompressible/icoFoam/ My_icoFoam
$ cd My_icoFoam
Rename icoFoam.C to My_icoFOAM.C
$ mv icoFoam.C My_icoFoam.C
Edit >*files* file in *Make* directory:
icoFoam.C
EXE = $(FOAM_APPBIN)/icoFoam
and change to:
My_icoFoam.C
EXE = $(FOAM_USER_APPBIN)/My_icoFoam
In directory My_icoFoam give the compilation command:
$ wmake
------------------------------------------------------------------------
Have a fun with OpenFOAM :)**
id="__caret">