DOC: reorganize Requirements.md, additional note for openSUSE leap

- move unreferenced Config.md to wiki content
This commit is contained in:
Mark Olesen 2021-06-08 21:35:54 +02:00
parent 853010309d
commit 7b14af4230
6 changed files with 126 additions and 378 deletions

View File

@ -3,8 +3,9 @@
Meta-information is generally for OpenFOAM internal use only.
The format, content and meaning may be changed at anytime without
notice. If any of these are changed, these are some of places that
will need to be updated accordingly:
prior notice.
If any of these are changed, these are some of places that will need
to be updated accordingly:
- bin/foamEtcFile
- bin/tools/foamConfigurePaths
@ -38,7 +39,7 @@ Format: `date +%y%m`
- 4-digit year-month (YYMM) integer corresponding to the major
release or in unusual cases an intermediate release.
Example, `1712` for the Dec-2017 release.
Example, `2106` for the June-2021 release.
#### patch
@ -78,9 +79,9 @@ the saved information needs synchronization. The command
### Notes
The saved information is split into two separate files. The `api-info`
contains more permanent information, whereas the `build-info` is more
transient in nature.
The saved information is split into two separate files.
The `api-info` file contains more permanent information,
whereas the `build-info` is more transient in nature.
----
2020-06-23
2021-06-09

View File

@ -11,7 +11,7 @@ individual and group contributors, integrations
[governance guided activities](https://www.openfoam.com/governance/).
## Copyright
## License
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@ -27,10 +27,11 @@ may redistribute files.
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
permitted to use the Name and agreed Domain Name. For information on
trademark use, please refer to the [trademark policy guidelines](http://www.openfoam.com/legal/trademark-policy.php).
trademark use, please refer to the
[trademark policy guidelines][link trademark].
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
any questions on the use of the OpenFOAM trademark.
any questions about the use of the OpenFOAM trademark.
Violations of the Trademark are monitored, and will be duly prosecuted.
@ -39,9 +40,9 @@ Violations of the Trademark are monitored, and will be duly prosecuted.
If OpenFOAM has already been compiled on your system, simply source
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
For example, for the OpenFOAM-v1912 version:
For example, for the OpenFOAM-v2106 version:
```
source /installation/path/OpenFOAM-v1912/etc/bashrc
source /installation/path/OpenFOAM-v2106/etc/bashrc
```
## Compiling OpenFOAM
@ -55,6 +56,11 @@ guides:
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
If you need to modify the versions or locations of ThirdParty
software, please read how the
[OpenFOAM configuration][wiki-config] is structured.
## How do I know which version I am currently using?
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
@ -63,19 +69,19 @@ not guaranteed to have any correspondence to the OpenFOAM release
information is embedded into each application. For example, as
displayed from `blockMesh -help`:
```
Using: OpenFOAM-v1812.local (1812) - visit www.openfoam.com
Build: 65d6551ff7-20190530 (patch=190531)
Using: OpenFOAM-com (2012) - visit www.openfoam.com
Build: b830beb5ea-20210429 (patch=210414)
Arch: LSB;label=32;scalar=64
```
This output contains all of the more interesting information that we need:
| item | value |
|-----------------------|---------------|
| version | v1812.local |
| api | 1812 |
| commit | 65d6551ff7 |
| author date | 20190530 |
| patch-level | (20)190531 |
| version | com (eg, local development branch) |
| api | 2012 |
| commit | b830beb5ea |
| author date | 20210429 |
| patch-level | (20)210414 |
| label/scalar size | 32/64 bits |
The Arch information may also include the `solveScalar` size
@ -90,19 +96,19 @@ when OpenFOAM has not yet been compiled:
```
$ wmake -build-info
make
api = 1812
patch = 190531
api = 2012
patch = 210414
branch = master
build = 65d6551ff7-20190530
build = 308af39136-20210426
```
Similar information is available with `foamEtcFile`, using the
`-show-api` or `-show-patch` options. For example,
```
$ foamEtcFile -show-api
1812
2012
$ foamEtcFile -show-patch
190531
210414
```
This output will generally be the easiest to parse for scripts.
The `$FOAM_API` convenience environment variable may not reflect the
@ -121,8 +127,8 @@ These 3rd-party sources are normally located in a directory parallel
to the OpenFOAM directory. For example,
```
/path/parent
|-- OpenFOAM-v1912
\-- ThirdParty-v1912
|-- OpenFOAM-v2106
\-- ThirdParty-v2106
```
There are, however, many cases where this simple convention is inadequate:
@ -130,7 +136,7 @@ There are, however, many cases where this simple convention is inadequate:
operating system or cluster installation provides it)
* When we have changed the OpenFOAM directory name to some arbitrary
directory name, e.g. openfoam-sandbox1912, etc..
directory name, e.g. openfoam-sandbox2106, etc..
* When we would like any additional 3rd party software to be located
inside of the OpenFOAM directory to ensure that the installation is
@ -150,17 +156,14 @@ when locating the ThirdParty directory with the following precedence:
2. PREFIX/ThirdParty-VERSION
* this corresponds to the traditional approach
3. PREFIX/ThirdParty-vAPI
* allows for an updated value of VERSION, *eg*, `v1912-myCustom`,
* allows for an updated value of VERSION, *eg*, `v2106-myCustom`,
without requiring a renamed ThirdParty. The API value would still
be `1912` and the original `ThirdParty-v1912/` would be found.
be `2106` and the original `ThirdParty-v2106/` would be found.
4. PREFIX/ThirdParty-API
* this is the same as the previous example, but using an unadorned
API value. This also makes sense if the chosen version name also
uses the unadorned API value in its naming, *eg*,
`1912-patch190131`, `1912.19W03`
* same as the previous example, but using an unadorned API value.
5. PREFIX/ThirdParty-common
* permits maximum reuse for various versions, for experienced user
who are aware of potential version incompatibilities
* permits maximum reuse for various versions, for experienced
users who are aware of potential version incompatibilities
If none of these directories are found to be suitable, it reverts to
using PROJECT/ThirdParty as a dummy location (even if the directory
@ -184,18 +187,21 @@ ThirdParty directory will contain either an `Allwmake` file or a
<!-- OpenFOAM -->
[link trademark]: https://www.openfoam.com/opencfd-limited-trade-mark-policy
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
## Useful Links
@ -203,8 +209,8 @@ ThirdParty directory will contain either an `Allwmake` file or a
- [Documentation](http://www.openfoam.com/documentation)
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/-/issues)
- [Code wiki](https://develop.openfoam.com/Development/openfoam/-/wikis/) and [general wiki](http://wiki.openfoam.com/)
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
- [Code wiki](https://develop.openfoam.com/Development/openfoam/-/wikis/) and [General wiki](http://wiki.openfoam.com/)
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016-2020 OpenCFD Ltd
Copyright 2016-2021 OpenCFD Ltd

View File

@ -3,13 +3,13 @@
Prior to building, ensure that the [system requirements][link openfoam-require]
are satisfied (including any special [cross-compiling][wiki-cross-compile]
considerations), and source the correct OpenFOAM environment.
For example, for the OpenFOAM-v2006 version:
For example, for the OpenFOAM-v2106 version:
```
source <installation path>/OpenFOAM-v2006/etc/bashrc
source <installation path>/OpenFOAM-v2106/etc/bashrc
```
e.g. if installed under the `~/OpenFOAM` directory
e.g. if installed under the `~/openfoam` directory
```
source ~/OpenFOAM/OpenFOAM-v2006/etc/bashrc
source ~/openfoam/OpenFOAM-v2106/etc/bashrc
```
@ -26,7 +26,7 @@ file.
If you need to change the default versions for third-party libraries,
or use system libraries for some components, please some additional
information about the [config structure][link openfoam-config].
information about the [config structure][wiki-config].
## Compile OpenFOAM
@ -86,34 +86,37 @@ you haven't missed any error messages.
```
foamInstallationTest
```
- Create the user `run` directory:
- test any given tutorial case. For example,
```
mkdir -p $FOAM_RUN
foamTestTutorial -full incompressible/simpleFoam/pitzDaily
```
- Test the installation with a simple tutorial:
- Note: the tutorial test can also be done manually:
```
# Create the user "run" directory:
mkdir -p "$FOAM_RUN"
# Change to the user "run" directory:
run
cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily ./
cd pitzDaily
blockMesh
simpleFoam
# Copy tutorial
cp -r "$FOAM_TUTORIALS"/incompressible/simpleFoam/pitzDaily ./
# Run the tutorial
( cd pitzDaily && blockMesh && simpleFoam )
```
### ParaView
OpenFOAM ships with ParaView sources for post-processing OpenFOAM
field results. However, the paraview version distributed with
field results. However, it will [often be sufficient][FAQ ParaView]
to use the paraview version distributed with
the operating system or a [binary package][download ParaView]
will often be sufficient, and avoids additional compilation complexity.
and avoid additional compilation complexity.
If you do wish to compile ParaView from source, it is recommended
that you do so ***after*** completing an initial compilation of OpenFOAM.
This gets the process started much more quickly. At a later stage,
OpenFOAM can be updated to compile with paraview. Only the affected
applications will be compiled (eg, the blockMesh reader module) and the
balance of the OpenFOAM installation will not affected.
the OpenFOAM visualization module can be compiled for a particular
ParaView version _without_ recompiling OpenFOAM itself.
If you decide to compiling in two passes, you only need to execute the
If you decide to compile in two passes, you only need to execute the
top-level `Allwmake` a second time. Do **not** use `wclean` to force a
complete rebuild! This is unnecessary.
@ -124,8 +127,9 @@ More details in the [ThirdParty build guide][link third-build].
<!-- Links -->
[page ParaView]: http://www.paraview.org/
[page ParaView]: http://www.paraview.org/
[download ParaView]: https://www.paraview.org/download/
[FAQ ParaView]: https://discourse.paraview.org/t/i-want-to-visualize-my-openfoam-simulation-results-with-paraview-but-im-confused-which-version-should-i-use
<!-- OpenFOAM -->
@ -135,13 +139,14 @@ More details in the [ThirdParty build guide][link third-build].
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[wiki-cross-compile]: https://develop.openfoam.com/Development/openfoam/-/wikis/guides/build/cross-compile-mingw
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
[wiki-cross-compile]: https://develop.openfoam.com/Development/openfoam/-/wikis/building/cross-compile-mingw
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
---
Copyright 2019-2020 OpenCFD Ltd
Copyright 2019-2021 OpenCFD Ltd

View File

@ -1,11 +1,11 @@
## Known Build Issues (OpenFOAM-v2012)
## Known Build Issues (v2012, v2106)
### Windows cross-compilation
Compilation of adios, kahip, metis, ptscotch, boost/cgal do not work.
## Known Build Issues (OpenFOAM-v2006)
## Known Build Issues (v2006)
### Windows cross-compilation
@ -17,11 +17,11 @@ Compilation of kahip and ptscotch do not work.
### Thermo problems with Clang
Previous versions (1906, 1912) experienced some Clang builds issues
Previous versions (v1906, v1912) experienced some Clang builds issues
with thermophysical libraries. These are resolved with clang-10.
## Known Build Issues (OpenFOAM-v1912)
## Known Build Issues (v1912)
### ParaView, ParaView-Catalyst
@ -62,7 +62,7 @@ Windows. Compile with the `-k` option to skip over these applications
for now.
## Known Build Issues (OpenFOAM-v1906)
## Known Build Issues (v1906)
### Thermo problems with Clang
@ -179,12 +179,13 @@ and attempt to install a `paraview~qt` version instead.
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
---
Copyright 2019-2020 OpenCFD Ltd
Copyright 2019-2021 OpenCFD Ltd

View File

@ -1,277 +0,0 @@
## OpenFOAM Configuration
The main OpenFOAM settings are located in the parent `etc/` directory
with both POSIX (bash, dash,...) and csh shells being supported.
To use OpenFOAM, source either the `etc/bashrc` or the
`etc/cshrc` file, as appropriate.
These source the following files in the `config.sh/` or
`config.csh/` directories:
* `setup` : finalize setup of OpenFOAM environment (called by bashrc,cshrc)
* `settings` : core settings
* `aliases` : aliases for interactive shells
* `unset` : sourced to clear as many OpenFOAM environment settings as possible
* `mpi` : MPI communications library settings
* `paraview` : application settings for ParaView
* `scotch` : application settings for compiling against scotch
* `metis` : application settings for compiling against metis
The `config.{csh,sh}/example/` directories contain additional example
configuration files for the corresponding shell:
* `compiler` : an example of fine tuning ThirdParty compiler settings
* `openmpi` : an example of fine tuning openmpi settings for OpenFOAM
* `paraview` : an example of chaining to the standard config/paraview
with a different ParaView_VERSION
* `prefs.csh`, `prefs.sh`: examples of supplying alternative site-defined
settings
### OpenFOAM configuration layers
Before launching into manually adjusting the configuration, it is
useful to first understand how OpenFOAM supports different
configuration *layers*. Similar to file-system permissions, we use the
notion of **user**, **group**, **other** categories when searching for
files. The output of `foamEtcFile` can be used to obtain a quick
overview:
```
$ foamEtcFile -list
$HOME/.OpenFOAM/1906
$HOME/.OpenFOAM
/path/OpenFOAM-v1906/site/1906/etc
/path/OpenFOAM-v1906/site/etc
/path/OpenFOAM-v1906/etc
```
Both the *user* paths (located as `$HOME/.OpenFOAM/`) and the *group*
paths (`/path/OpenFOAM-v1906/site/`) support additional API versioning
to allow different settings between releases. The **other**
corresponds to the settings shipped with a particular OpenFOAM release.
Making configuration changes under the *user* or *group* directories
allows you to preserve these across upgrades and makes it easier (if
necessary) to revert to the original values.
### Making changes to the configuration
The first encounter with the OpenFOAM configuration files can be
somewhat intimidating. There are indeed quite a few different bits of
software related to using OpenFOAM, each of which could be available
in different preferred versions, in different possible locations and
with different conventions for naming their library directories.
Additionally it should allow individual users to make their own
configuration choices. Supporting cshell variants for everything adds
yet more files to the mix. Fortunately, the user often only needs to
make a few simple changes and can ignore most of the details and we
also provide a `bin/tools/foamConfigurePaths` tool to make multiple
common changes directly from the command line. The configuration files
generally contain detailed information about which values they expect,
and the user editable part is also clearly marked as such. For
example,
```
#------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
ParaView_VERSION=5.6.0
ParaView_QT=qt-system
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------
```
Nonetheless, before making changes it can be useful to understand
where these changes should actually be made (and why). To simplify
things, we only discuss POSIX (bash), but most points apply to cshell
variants as well.
1. The main entry point for the OpenFOAM configuration is the
`etc/bashrc` file. The initial portion of the file establishes the
version and contains some script *magic* to help us determine where
the OpenFOAM directory is located. The balance of the file contains
some general OpenFOAM-specific settings, which you can use for
guidance but in general you should note the following:
* Changes made to this `etc/bashrc` file ___will be lost___ with
the next upgrade.
* Overrides should defined in the `etc/prefs.sh` instead.
See the comments section of the `etc/bashrc` file for more details.
2. The `etc/bashrc` file (our entry point) passes control to the
`etc/config.sh/setup` file, which dispatches the rest of the
configuration actions.
The setup of the OpenFOAM environment can be described in terms of a processing tree:
```
source etc/bashrc [args]
|
|-- constants
|-- directory discovery magic
|-- defaults
|-- define OpenFOAM directory
|
\-- setup
|-- discovery of ThirdParty locations
|-- admin overrides (prefs.sh file)
|-- user overrides (prefs.sh file)
|-- user overrides (arguments)
|-- settings (compiler, os)
|-- mpi
|-- paraview
|-- vtk / mesa (llvm)
|-- CGAL / boost
|-- scotch
|-- FFTW
\-- aliases
```
At most locations in this process it is possible for the user to
influence the values used by providing an alternative version of the
file. For example, simply creating the file
`$HOME/.OpenFOAM/config.sh/FFTW` will cause it to be found by the
`foamEtcFile` mechanism during sourcing (see `foamEtcFile -list` for a
reminder of which directories will be searched). Most fairly permanent
changes that affect the base configuration of OpenFOAM itself (choice
of compiler, mpi, data sizes, etc) should normally be defined in the
`prefs.sh` file. These type of changes are important enough that they
receive special treatment. Use the base or admin `prefs.sh` file if
available as `PROJECT/etc/prefs.sh`. This provides the system admin a
reliable location to define site-wide settings, such as for compiler
and vendor-specific MPI libraries. use the user or group prefs.sh if
it exists. For quick or temporary changes, the special interpretation
of arguments when sourcing the etc/bashrc are quite convenient. This
mechanism allows direct setting of variables without needing to edit
any files. For example, to source the OpenFOAM environment with a
different compiler:
```
source /path/to/OpenFOAM-v1906 WM_COMPILER=Clang
```
If the argument does not appear to be an assignment of a variable, it
will attempt to resolve it as a file and then source that. This
property lets the user bundle some favourite settings and temporarily
switch to them. For example, by creating a few predefined
configurations:
```
# file = $HOME/.OpenFOAM/gcc82
export WM_COMPILER_TYPE=ThirdParty
export WM_COMPILER=Gcc82
export WM_LABEL_SIZE=32
```
or
```
# file = $HOME/.OpenFOAM/clang50-int64
export WM_COMPILER_TYPE=ThirdParty
export WM_COMPILER=Clang50
export WM_LABEL_SIZE=64
```
It is then possible to easily switch between different configurations:
```
source /path/to/OpenFOAM-v1906 clang50-int64
source /path/to/OpenFOAM-v1906 gcc82
source /path/to/OpenFOAM-v1906 wingw
```
Armed with this information, the user should be able to make
adjustments to the OpenFOAM configuration with a good degree of
confidence. However, there are also times in which it can be expedient
and useful to simply change the entries directly within the OpenFOAM
directory as new permanent defaults for all users. This can also be
the case for cluster installations where the user will not require the
usual flexibility. For these cases, the `bin/tools/foamConfigurePaths`
tool can be helpful (and powerful). For example, when installing
without any OpenFOAM ThirdParty dependencies and additionally setting
the OpenFOAM directory to a fixed location (removing any bash
discovery magic):
```
bin/tools/foamConfigurePaths \
-project-path "/opt/openfoam-1906" \
-boost boost-system \
-cgal cgal-system \
-fftw fftw-system \
-kahip kahip-none \
-scotch scotch-system \
-scotch-path /usr/lib64/mpi/gcc/openmpi \
;
```
Using this tool has some restrictions:
* It must be called from the OpenFOAM project directory
* It is not available in the PATH, since it we wish to avoid any
inadvertent use
* Using this tool to change default gcc, gmp, mpfr versions is not
very precise. It will change the gcc version without distinguishing
between Gcc48, Gcc82 etc.
### Working in groups
When an OpenFOAM cluster installation is being used by several
different people or interest groups it can be highly interesting to
share common setups or custom libraries and applications. This is
where the OpenFOAM site (group) configuration can be quite helpful.
The directory location of OpenFOAM site settings is defined by the
`$WM_PROJECT_SITE` environment variable. If this is undefined, the
default is to use `PROJECT/site` (ie, a site directory located within
the OpenFOAM directory). Within this `$WM_PROJECT_SITE` directory, we
can use a directory structure that mirrors elements of the OpenFOAM
directory structure, but which also includes a degree of versioning as
well:
```
$WM_PROJECT_SITE
|
|-- API
| |-- bin
| \-- etc
|-- VERSION
| \-- platforms
| |-- bin
| \-- lib
|-- bin
\-- etc
```
Useful OpenFOAM-related scripts can be placed in the bin directory. If
the script can only work with a particular OpenFOAM version, it then
makes sense to place it into the API/bin directory accordingly.
Similarly, if particular configurations or setups are useful for
several people, it makes sense to locate them centrally as a site (or
group) resource. For example,
```
$WM_PROJECT_SITE
|
\-- etc
|-- caseDicts
\-- config.sh
|-- openmpi
\-- paraview
```
for some jointly useful caseDicts and suitable configurations for openmpi, paraview.
The `foamEtcFile -list` option provides a good overview of which
locations will be searched for configuration files, which uses the
following precedence:
* user:
* `$HOME/.OpenFOAM/API`
* `$HOME/.OpenFOAM`
* group:
* `$WM_PROJECT_SITE/API/etc`
* `$WM_PROJECT_SITE`
* other:
* `$WM_PROJECT_DIR/etc`
If applications and libraries are to be shared within a group, a
typical approach is that one person is in charge of administering the
the internal code releases. They would compile the code in their
normal user directories, which means that it would normally have the
user destinations:
```
$FOAM_USER_APPBIN
$FOAM_USER_LIBBIN
```
For distribution at the group level, these files would be synchronized to the corresponding group directories:
```
$FOAM_USER_APPBIN -> $FOAM_SITE_APPBIN
$FOAM_USER_LIBBIN -> $FOAM_SITE_LIBBIN
```

View File

@ -56,32 +56,26 @@ sudo apt-get install build-essential autoconf autotools-dev cmake gawk gnuplot
sudo apt-get install flex libfl-dev libreadline-dev zlib1g-dev openmpi-bin libopenmpi-dev mpi-default-bin mpi-default-dev
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev
```
If you intend to use system components, you can also install the following:
```
apt-get install libscotch-dev libptscotch-dev libfftw3-dev libboost-system-dev libboost-thread-dev libcgal-dev
```
Additional libraries will be required if compiling ParaView from
source, however it is recommended to skipped this initially since
it generally represent the main compilation difficulty.
In many cases, a system installation of paraview or a
[precompiled binary][download ParaView]
will be much easier.
Some libraries can be installed from the operating system, or
compiled from the ThirdParty directory.
The default configuration for OpenFOAM assumes OpenMPI from the system
and ThirdParty installations for most others (boost, CGAL, FFTW,
Kahip, Scotch). This is generally the most portable configuration
across various Linux distributions, but it may be desirable to use
more system libraries on Ubuntu.
To inspect the available system versions, use the `apt-cache show`
command. For example,
```
sudo apt-cache show libboost-dev
sudo apt-cache show libfftw3-dev
...
sudo apt-cache show libopenmpi-dev
```
| Program | Ubuntu | Program version |
|-----------|-----------|-----------------|
| gcc | 20.04 | 9.3.0 |
| openmpi | 20.04 | 4.0.3 |
| cmake | 20.04 | 3.16.3 |
| flex | 20.04 | 2.6.4 |
| m4 | 20.04 | 1.4.18 |
If you intend to use system components, you can also install the following:
```
apt-get install libfftw3-dev libscotch-dev libptscotch-dev libboost-system-dev libboost-thread-dev libcgal-dev
```
| Program | apt-cache show | Ubuntu | Version |
@ -92,13 +86,13 @@ sudo apt-cache show libfftw3-dev
| scotch | libscotch-dev | 20.04 | 6.0.9 |
| Program | Ubuntu | Program version |
|-----------|-----------|-----------------|
| gcc | 20.04 | 9.3.0 |
| openmpi | 20.04 | 4.0.3 |
| cmake | 20.04 | 3.16.3 |
| flex | 20.04 | 2.6.4 |
| m4 | 20.04 | 1.4.18 |
Some libraries can be installed from the operating system, or
compiled from the ThirdParty directory.
The default configuration for OpenFOAM assumes OpenMPI from the system
and ThirdParty installations for most others (boost, CGAL, FFTW,
Kahip, Scotch). This is generally the most portable configuration
across various Linux distributions, but it may be desirable to use
more system libraries on Ubuntu.
### openSUSE (eg, Leap-15.2)
@ -116,6 +110,10 @@ If you intend to use system components, you can also install the following:
sudo zypper install fftw3-devel libboost_system-devel libboost_thread-devel
```
but note that scotch and cgal are only available via the science repository.
For boost, you may need to specify a specific version. For example,
```
sudo zypper install fftw3-devel libboost_system1_75_0-devel libboost_thread1_75_0-devel
```
This installs
@ -181,26 +179,40 @@ export LD_PRELOAD="libmpi.so"
### Additional libraries
When compiled ParaView from source additional dependencies will be
When compiled [ParaView][page ParaView] from source additional dependencies will be
required.
A partial list is given in the [ThirdParty requirements][link third-require].
**Please help us with keeping that information up-to-date and accurate.**
However it is ***recommended*** to skipped this initially since
it generally represents the main compilation difficulty encountered.
In many cases, a system installation of paraview or a
[precompiled binary][download ParaView]
will be much easier and likely
[fully adequate for your needs][FAQ ParaView].
Since any ParaView/VTK dependencies are isolated within the
visualization module, it is always possible to compile plugins for
different ParaView versions as well as different VTK/Mesa combinations
at any later stage _without_ recompiling OpenFOAM itself.
<!-- Links -->
[page ParaView]: http://www.paraview.org/
[page ParaView]: http://www.paraview.org/
[download ParaView]: https://www.paraview.org/download/
[FAQ ParaView]: https://discourse.paraview.org/t/i-want-to-visualize-my-openfoam-simulation-results-with-paraview-but-im-confused-which-version-should-i-use
<!-- OpenFOAM -->
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
[link openfoam-config]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Config.md
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
---
Copyright 2019-2021 OpenCFD Ltd