BUILD.md 22.3 KB
Newer Older
1
2
3
4
# OpenFOAM® ThirdParty Build

OpenFOAM depends to a certain extent on third-party libraries
(*opensource only*). It also provides some interfaces to *opensource* or
5
6
*proprietary* libraries. This third-party collection contains configurations and
scripts for building third-party packages. It will normally only be used in
7
8
conjunction with the corresponding OpenFOAM version.

9
## Organization
10

11
12
The ThirdParty directory contains a number of build scripts as well as
some directories:
13

14
| Directory         | Contains
mark's avatar
mark committed
15
16
|-------------------|-------------------------------------------------------
| etc/              | auxiliary tools and content used for the build process
17
18
| build/            | intermediate build objects
| platforms/        | the installation directories
19
20


21
## Configuration of Third-Party Versions
22

23
24
For most of the build scripts, the default software version
is provided by an appropriate OpenFOAM `etc/config.sh/...` entry.
25
26
27
28
This approach avoids duplicate entries for the default versions and
ensures the best overall consistency between the OpenFOAM installation
and its corresponding third-party installation.

29
30
31
Nonethess, the distributed make scripts can generally be used for a
variety of versions of the third-party libraries, with the software
version specified on the command-line. For example,
32
33
34
35
```
$ ./makeFFTW -help
usage: makeFFTW [OPTION] [fftw-VERSION]
```
36

37
38
39
40
---

## Before Starting

41
0. Review the [system requirements][link openfoam-require]
42
43
44
45
46
47
48
49
50
51
52
   and decide on the following:
   * compiler type/version - if the system compiler is not relatively recent,
     you will need a [third-party compiler](#makeGcc) installation.
   * MPI type/version.
   * ParaView type/version.
   * CMake type/version, ...
1. If you are using a system MPI (eg, openmpi), ensure that this environment
   has also been properly activated for your user.
   Often (but not always) a `mpi-selector` command is available for this purpose.
   You may need to open a new shell afterwards for the change to take effect.
   Using the following command may help diagnosing things:
53
54
55
```
which mpicc
```
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2. Adjust the OpenFOAM `etc/bashrc`, `etc/config.sh/...` or equivalent
   `prefs.sh` files to reflect your preferred configuration.
   For many config files, there are several configuration possibilities:
   - Define a particular third-party version.
   - Use a system installation.
   - Disable use of an optional component.
   - Define an alternative site-wide central location.
   - After making the desired changes, use `wmRefresh` or equivalent to use the configurations.


---

## Building

Many components of ThirdParty are *optional* or are invoked
automatically as part of the top-level OpenFOAM `Allwmake`.
Nonetheless it may be necessary or useful to build various
ThirdParty components prior to building OpenFOAM itself.

75
### Bootstrapping *(optional)*
76

77
* `makeGcc` _or_ `makeLLVM` <a name="makeGcc"></a>
78
79
80
81
82
83
84
   - Makes a third-party [gcc](#gcc-compiler) or [clang](#clang-compiler) installation,
     which is needed if the system gcc is [too old](#gcc-compiler).
     If your system compiler is recent enough, you can skip this step.
   - If you do use this option, you will need the following adjustments to the
     OpenFOAM `etc/bashrc` or your equivalent `prefs.sh` file:
     - `WM_COMPILER_TYPE=ThirdParty`
     - `WM_COMPILER=Gcc48` (for example)
85
86
     - `WM_COMPILER=Clang40` (for example)
     - or `WM_COMPILER=Clang` and adjust `clang_version` in the OpenFOAM
87
88
89
90
91
     `etc/config.sh/compiler` or equivalent.
   - More description is contained in the header comments of the
     `makeGcc` and `makeLLVM` files.
   - *Attention*: If you are building a newer version of clang, you may need to
     update your CMake beforehand.
92
* `makeCmake`
93
94
95
96
97
   - Makes a third-party [CMake](#general-packages) installation, which is
     needed if a system CMake does not exist or is [too old](#min-cmake),
   - Note that CMake is being used by an number of third-party packages
     (CGAL, LLVM, ParaView, VTK, ...)
     so this may become an increasingly important aspect of the build.
98
99
100
101
102
103
104
105
106
107
108

Note that the order of the bootstrapping process may need to be
reversed, or even require a few loops. For example, if you may need a
newer version of CMake before being able to build LLVM/Clang and
subsequently use the newly build clang to create a newer version of
CMake in the desired location.

Additionally, if you are using clang but with ThirdParty locations for
gmp/mpfr you will need some extra work. Here is an example:

* Compile a new ThirdParty clang version:
109
110
111
```
./makeLLVM llvm-4.0.1
```
112
113
114
115
116
117
* Now adjust the OpenFOAM `prefs.sh` to use the new compiler settings,
  and update the OpenFOAM environment (eg, `wmRefresh`)

* Next use (abuse) the `makeGcc` script to compile gmp/mpfr libraries.
  It is best to pass the desired versions explicitly, and necessary
  to set the CC/CXX variables so that the correct compiler is used:
118
119
120
```
CC=clang CXX=clang++  ./makeGcc gmp-6.1.2 mpfr-4.0.0 gcc-system
```
121
122
123
124
125
126
127
128
129
  specifying `gcc-system` effectively disables building of gcc,
  but will build the gmp/mpfr components.

* As a final step, it will be necessary to add the ThirdParty
  gmp/mpfr locations in the OpenFOAM config files since they are
  normally only used in combination with a ThirdParty gcc.
  The location to make these changes is in the `etc/config.sh/CGAL`,
  since this is the component that uses the mpfr library.
  For example,
130
131
132
133
134
135
```
gmp_version=gmp-6.1.2
mpfr_version=mpfr-4.0.0
export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$gmp_version
export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$mpfr_version
```
136
137
138
139
140
141
* Update update the OpenFOAM environment (eg, `wmRefresh`) again.


### Build Sequence

1. `Allwmake`
142
143
144
   - This will be automatically invoked by the top-level OpenFOAM `Allwmake`, but
     can also be invoked directly to find possible build errors.
   - Builds an mpi library (openmpi or mpich), scotch decomposition, boost, CGAL, FFTW.
145
   - If the optional kahip or metis  directories are found, they will also be compiled.
146
2. `makeParaView`  *(optional)*
147
148
149
150
151
   - This is optional, but extremely useful for visualization and for
     run-time post-processing function objects.
     You can build this at a later point in time, but then you should
     remember to rebuild the post-processing function objects and the
     reader module as well.
152
3. Make any additional optional components
153
154
155
156


#### Optional Components

mark's avatar
mark committed
157
`makeADIOS`
158
- Only required for [ADIOS](#parallel) support,
mark's avatar
mark committed
159
160
  which is currently staged in the [add-ons repository][link AddOns].

161
`makeCGAL`
162
- Builds [boost](#general-packages) and [CGAL](#general-packages).
163
164
165
166
  Automatically invoked from the ThirdParty `Allwmake`,
  but can be invoked directly to resolve possible build errors.

`makeFFTW`
167
168
169
170
171
172
173
174
175
176
177
- Builds [FFTW](#general-packages).
  Automatically invoked from the ThirdParty `Allwmake`,
  but can be invoked directly to resolve possible build errors.

`makeKAHIP`
- Builds [KaHIP](#parallel) decomposition library.
  Automatically invoked from the ThirdParty `Allwmake`,
  but can be invoked directly to resolve possible build errors.

`makeMETIS`
- Builds [METIS](#parallel) decomposition library.
178
179
180
  Automatically invoked from the ThirdParty `Allwmake`,
  but can be invoked directly to resolve possible build errors.

mark's avatar
mark committed
181
182
183
`makeMGridGen`
- Optional agglomeration routines.

184
185
186
187
188
189
`makeCCMIO`
- Only required for conversion to/from STARCD/STARCCM+ files.

`makeMesa`, `makeVTK`
- Additional support for building offscreen rendering components.
  Useful if you want to render on computer servers without graphics cards.
190
  The `makeParaView.example` and `makeVTK.example` files offer some
191
192
193
  suggestions about compiling such a configuration.

`makeQt`
194
- Script to build a [Qt](#makeQt), including qmake.
195
- Possibly needed for `makeParaView`.
mark's avatar
mark committed
196
197
- The associated `etc/relocateQt` may be of independent use.
  Read the file for more details.
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212

`makeGperftools`
- Build gperftools (originally Google Performance Tools)

`minCmake`
- Scour specified directories for CMakeLists.txt and their cmake_minimum.
  Report in sorted order.

`Allclean`
- After building, this script may be used to remove intermediate build information
and save some disk space.


## Build Notes

213
### CGAL
214
- The [zlib][page zlib] library and development headers are required.
215

216
### Scotch
217
- The [zlib][page zlib] library and development headers are required.
218
219
220
221


### Mesa
- Needed for off-screen rendering.
222
- Building with [mesa-11][link mesa11] and [mesa-13][link mesa13] both
223
  seem okay, as does building with [mesa-17][link mesa].
224
225
226
227
228
229
230
231
232
- Building with mesa-12 is not possible since it fails to create
  the necessary `include/GL` directory and `osmesa.h` file.

### VTK
- Needed for off-screen rendering and run-time post-processing without
  ParaView.
- Rather than downloading VTK separately, it is easy to reuse the VTK
  sources that are bundled with ParaView.
  For example, by using a symbolic link:
233
234
235
```
ln -s ParaView-v5.6.0/VTK VTK-8.2.0
```
236
237
238
  The appropriate VTK version number can be found from the contents of
  the `vtkVersion.cmake` file.
  For example,
239
240
241
242
243
244
245
246
247
248
```
$ cat ParaView-v5.6.0/VTK/CMake/vtkVersion.cmake
```
  contains this type of information
```
# VTK version number components.
set(VTK_MAJOR_VERSION 8)
set(VTK_MINOR_VERSION 2)
set(VTK_BUILD_VERSION 0)
```
249
250
251
252
253
254
255

### ParaView
- Building ParaView requires CMake, qmake and a `qt` development files.
  Use the `-cmake`, `-qmake` and `-qt-*` options for `makeParaView` as
  required.
  See additional notes below about [making Qt](#makeQt) if necessary.

256
257
258
259
260
261
262
263
264
265
266
**NOTE** this step may not be entirely successful for your particular
system. Building ParaView itself is generally not a significant problem
but its dependency on particular Qt versions can be a problem.

If you fail at this step due to Qt dependencies, you may have success
building a slightly older Qt version. Another alternative may be to
use the ParaView-5.4 sources that were included in the ThirdParty-v1712
source pack. This, however, has never been tested in combination with
the OpenFOAM Catalyst insitu visualization.


267
#### 5.6.x, 5.5.x binary packages
268
269

For general functionality, the paraview version distributed with
270
the operating system or a [binary package][download ParaView]
271
272
273
274
275
276
277
278
279
280
281
may be sufficient for your needs.
- No known issues with the native OpenFOAM reader.


Using a binary package does mean you miss these elements (which may or
may not be important for you):
- cannot visualize a `blockMeshDict`
- cannot build Catalyst insitu visualization
- no alternative OpenFOAM reader module for some special features not
  found in the native OpenFOAM reader.

282
283
284
#### 5.5.x
- Requires patching for the vtk-m configuration (on some systems).
- Recommended patching for ParaView Catalyst.
285
- Recommended patching for file series
286
287
  No known issues with the native OpenFOAM reader.

Mark Olesen's avatar
Mark Olesen committed
288
#### 5.4.x
289
290
291
- Compiles without patching.
  No known issues with the native OpenFOAM reader.

292
293
#### 5.3.0 and older are neither recommended nor supported
- Various compilation issues and known bugs.
294

mark's avatar
mark committed
295
296
297
298
299
300
301
302
303
### ADIOS
- The github release currently requires GNU autoconf tools (eg,
  autoconf, autoheader, automake) for its configuration.
- Some inconsistency in directory names (ADIOS vs. adios) between releases.
- Optionally uses bzip2, zlib development headers (eg, libbz2-devel, zlib-devel)
  for the corresponding compression tranforms.
- The [zfp floating point compression][page zfp] library is now included as
  part of ADIOS.

304
305
306
307
### Making Qt <a name="makeQt"></a>
- Building a third-party Qt installation (prior to building ParaView) requires
  some additional effort, but should nonetheless work smoothly.

308
1. Download a [*qt-everywhere-opensource-src*][link Qt5] package and
309
310
   unpack in the third-party directory.
2. Use the `makeQt` script with the QT version number. For example,
311
312
313
```
./makeQt 5.9.3
```
314
3. Build ParaView using this third-party QT. For example,
315
316
317
```
./makeParaView -qt-5.9.3  5.6.0
```
318
- ParaView versions prior to 5.3.0 do not properly support QT5.
319
320
321
322
323
324

- If you relocate the third-party directory to another location
  (eg, you built in your home directory, but want to install it in a
  central location), you will need to use the `etc/relocateQt` script
  afterwards.

325
326
327
328
329
*Note* On some older systems it can be quite difficult to build the
latest QT. In these cases, it is sometimes possible to build a
slightly older QT (eg, [qt-5.6.3][link Qt56]) instead.


330
331
332
333
334
335
---

## Versions

### Gcc Compiler <a name="gcc-compiler"></a>

336
The minimum version of gcc required is **4.8.5**
337

338
339
340
341
342
343
| Name              | Location
|-------------------|--------------------------------------------
| [gcc][page gcc]   | [releases][link gcc]
| [gmp][page gmp]   | system is often ok, otherwise [download][link gmp]
| [mpfr][page mpfr] | system is often ok, otherwise [download][link mpfr]
| [mpc][page mpc]   | system is often ok, otherwise [download][link mpc]
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369


#### Potential MPFR conflicts

If you elect to use a third-party version of mpfr, you may experience
conflicts with your installed system mpfr.
On some systems, mpfr is compiled as *non-threaded*, whereas the
third-party will use *threaded* by default.
This can cause some confusion at the linker stage, since it may
resolve the system mpfr first (and find that it is *non-threaded*).

You can avoid this by one of two means:
1. Use system components for gmp/mpfr/mpc:  `makeGcc -system ...`
2. Use third-party mpfr, but without threading: `makeGcc -no-threadsafe ...`


#### 32-bit build (on 64-bit)

If you have a 64-bit system, but wish to have a 32-bit compiler, you
will need to enable multi-lib support for Gcc: `makeGcc -multilib`,
which is normally disabled, since many (most?) 64-bit systems do not
install the 32-bit development libraries by default.


### Clang Compiler <a name="clang-compiler"></a>

370
The minimum version of clang required is **3.7**
371
372

*Attention*: If you are building a newer version of clang, you may need to
373
374
375
376
377
378
update your CMake beforehand since GNU *configure* can only be used prior
to clang version 3.9.

If your system gcc is particularly old
(see [minimum gcc requirements for clang](#min-gcc))
you may have additional hurdles to using the newest versions of clang.
379
380


381
382
| Name                  | Location
|-----------------------|------------------------
Mark Olesen's avatar
Mark Olesen committed
383
384
385
| [clang][page clang]   | [download][link clang] or [newer][newer clang]
| [llvm][page llvm]     | [download][link llvm] or [newer][newer llvm]
| [openmp][page omp]    | [download][link omp] or [newer][newer omp]
386
387
388
389


### General <a name="general-packages"></a>

390
391
392
393
| Name                  | Location
|-----------------------|------------------------
| [CMake][page cmake]   | [download][link cmake]
| [boost][page boost]   | [download][link boost]
394
| [CGAL][page CGAL]     | [download][link CGAL]
395
396
397
| [FFTW][page FFTW]     | [download][link FFTW]
| [ADF/CGNS][page CGNS], ccm | [link ccmio][link ccmio]
| gperftools            | [repo][repo gperftools] or [download][link gperftools]
398
399


400
401
402
403
404
405
### Parallel Processing <a name="parallel"></a>

| Name                  | Location
|-----------------------|------------------------
| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues.
| [adios][page adios]   | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios]
406
407
| [scotch, ptscotch][page scotch] | [download][link scotch] or [newer][newer scotch]
| [kahip][page kahip] | [download][link kahip] or [newer][newer kahip]
408
409
410
| [metis][page metis] | [download][link metis]


411
412
### Visualization <a name="viz-version"></a>

413
414
| Name                  | Location
|-----------------------|------------------------
415
| [MESA][page mesa]     | [download][link mesa] or [older 13][link mesa13], [older 11][link mesa11]
416
| [ParaView][page ParaView] | [download][link ParaView] or [older paraview-55][link ParaView55], [older paraview-54][link ParaView54] or [binaries][download ParaView]
417
| [Qt][page Qt]         | [QT5][link Qt5] for ParaView-5.3.0 and later, or the [older qt-56][link Qt56] for older systems.
418
419
420
421
422


### CMake Minimum Requirements <a name="min-cmake"></a>

The minimum CMake requirements for building various components.
423
424
425
426
427
428
429
430
431
432
433
434
```
2.8         llvm-3.4.2
2.8.11      CGAL-4.9
2.8.11      CGAL-4.11
2.8.12.2    llvm-3.7.0
2.8.12.2    llvm-3.8.0
2.8.4       cmake-3.6.0
3.3         ParaView-5.6.0
3.4.3       llvm-3.9.1
3.4.3       llvm-4.0.0 - llvm-6.0.0
3.6         ADIOS2
```
435

436
437
438
### GCC Minimum Requirements <a name="min-gcc"></a>

The minimum gcc/g++ requirements for building various components.
439
440
441
442
443
444
```
4.7         llvm-3.7.0
4.7         llvm-3.6.2
4.7         llvm-3.5.2
4.4         llvm-3.4.2
```
445

446
447
448
449
If your system gcc/g++ is too old to build the desired llvm/clang
version, you may need to build a lower llvm/clang version and then use
that clang compiler for building the newer llvm/clang version.

450

451
452
453
454
455
456
457
<!-- gcc-related -->
[page gcc]:       http://gcc.gnu.org/releases.html
[page gmp]:       http://gmplib.org/
[page mpfr]:      http://www.mpfr.org/
[page mpc]:       http://www.multiprecision.org/

[link gcc]:       http://gcc.gnu.org/releases.html
458
459
[link gmp]:       ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.xz
[link mpfr]:      ftp://ftp.gnu.org/gnu/mpfr/mpfr-4.0.1.tar.xz
460
[link mpc]:       ftp://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
461
462
463
464


<!-- clang-related -->
[page llvm]:      http://llvm.org/
Mark Olesen's avatar
Mark Olesen committed
465
466
[page clang]:     http://clang.llvm.org/
[page omp]:       http://openmp.llvm.org/
467

468
469
[link clang]:     http://llvm.org/releases/3.7.1/cfe-3.7.1.src.tar.xz
[link llvm]:      http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz
Mark Olesen's avatar
Mark Olesen committed
470
[link omp]:       http://llvm.org/releases/3.7.1/openmp-3.7.1.src.tar.xz
mark's avatar
mark committed
471

Mark Olesen's avatar
Mark Olesen committed
472
473
474
[newer clang]:    http://llvm.org/releases/4.0.1/cfe-4.0.1.src.tar.xz
[newer llvm]:     http://llvm.org/releases/4.0.1/llvm-4.0.1.src.tar.xz
[newer omp]:      http://llvm.org/releases/4.0.1/openmp-4.0.1.src.tar.xz
475
476
477
478
479


<!-- parallel -->
[page adios]:     https://www.olcf.ornl.gov/center-projects/adios/
[repo adios]:     https://github.com/ornladios/ADIOS
480
481
[link adios]:     https://github.com/ornladios/ADIOS/archive/v1.13.1.tar.gz
[altlink adios]:  http://users.nccs.gov/~pnorbert/adios-1.13.1.tar.gz
482
483
484
[page zfp]:       http://computation.llnl.gov/projects/floating-point-compression/zfp-versions

[page scotch]:    https://www.labri.fr/perso/pelegrin/scotch/
485
[link scotch]:    https://gforge.inria.fr/frs/download.php/file/37622/scotch_6.0.6.tar.gz
486
[newer scotch]:   https://gforge.inria.fr/frs/download.php/file/38040/scotch_6.0.7.tar.gz
487

488
[page kahip]:     http://algo2.iti.kit.edu/documents/kahip/
489
490
[link kahip]:     http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz
[newer kahip]:    http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.10.tar.gz
491
492
493
494

[page metis]:     http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
[link metis]:     http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz

495
[page openmpi]:   http://www.open-mpi.org/
Mark Olesen's avatar
Mark Olesen committed
496
[link openmpi]:   https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.7.tar.bz2
Mark Olesen's avatar
Mark Olesen committed
497
[newer openmpi]:  https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.bz2
498

499
500
501
502
503
504
[page mpich]:     http://www.mpich.org/
[link mpich]:     http://www.mpich.org/static/downloads/3.3/mpich-3.3.tar.gz

[page mvpapich]:   http://mvapich.cse.ohio-state.edu/
[link mvpapich]:   http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.tar.gz

505
506
507
508
509
510

<!-- general -->
[page cmake]:     http://www.cmake.org/
[link cmake]:     http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz

[page boost]:     http://boost.org
511
[link boost]:     https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2
512
513

[page CGAL]:      http://cgal.org
514
[link CGAL]:      https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.9.1/CGAL-4.9.1.tar.xz
515
516

[page FFTW]:      http://www.fftw.org/
Mark Olesen's avatar
Mark Olesen committed
517
[link FFTW]:      http://www.fftw.org/fftw-3.3.7.tar.gz
518
519

[page cgns]:      http://cgns.github.io/
520
521
[link ccmio]:     http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
[altlink ccmio]:  http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
522
523
524
525

[repo gperftools]: https://github.com/gperftools/gperftools
[link gperftools]: https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz

526
527
528
[page zlib]:      https://www.zlib.net/
[link zlib]:      https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.xz

529
530
531
532

<!-- Visualization -->

[page ParaView]:  http://www.paraview.org/
533
[download ParaView]: https://www.paraview.org/download/
534
[link ParaView54]: http://www.paraview.org/files/v5.4/ParaView-v5.4.1.tar.gz
535
536
[link ParaView55]:   http://www.paraview.org/files/v5.5/ParaView-v5.5.2.tar.gz
[link ParaView]: http://www.paraview.org/files/v5.6/ParaView-v5.6.0.tar.gz
537
538

[page mesa]:  http://mesa3d.org/
539
[link mesa]:  ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz
540
541
[link mesa13]: ftp://ftp.freedesktop.org/pub/mesa/13.0.6/mesa-13.0.6.tar.xz
[link mesa11]: ftp://ftp.freedesktop.org/pub/mesa/older-versions/11.x/11.2.2/mesa-11.2.2.tar.xz
542
543
544

[page Qt]: https://www.qt.io/download-open-source/
[repo Qt]: http://code.qt.io/cgit/qt-creator/qt-creator.git
545
[link Qt56]: http://download.qt.io/official_releases/qt/5.6/5.6.3/single/qt-everywhere-opensource-src-5.6.3.tar.xz
Mark Olesen's avatar
Mark Olesen committed
546
[link Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.3/single/qt-everywhere-opensource-src-5.9.3.tar.xz
547

mark's avatar
mark committed
548
549
550
<!-- OpenFOAM -->

[link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns
Mark Olesen's avatar
Mark Olesen committed
551
[link openfoam-readme]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/README.md
552
[link openfoam-config]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/etc/README.md
Mark Olesen's avatar
Mark Olesen committed
553
[link openfoam-build]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Build.md
554
[link openfoam-require]: https://develop.openfoam.com/Development/OpenFOAM-plus/blob/develop/doc/Requirements.md
Mark Olesen's avatar
Mark Olesen committed
555
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/README.md
556
557
558
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-plus/blob/develop/Requirements.md

mark's avatar
mark committed
559

560
---
561
562
563
564

<!-- Standard Footer -->
## Additional OpenFOAM Links

mark's avatar
mark committed
565
- [Community AddOns][link AddOns] repository
566
567
- [Download](http://www.openfoam.com/download) and
  [installation instructions](http://www.openfoam.com/code/build-guide.php)
568
- [Documentation](http://www.openfoam.com/documentation)
Mark Olesen's avatar
Mark Olesen committed
569
- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM
570
- [Contacting OpenCFD](http://www.openfoam.com/contact)
Mark Olesen's avatar
Mark Olesen committed
571

572
573
---

574
Copyright 2016-2019 OpenCFD Ltd