- primary points for an external user are the polyMesh constructor
- add config info for gcc-7.3.0
COMP: intel-2017. Ignore unknown pragmas. Disambiguate method resolution.
- forward command-line arguments for paraview, where they may also be
evaluated (cshrc, POSIX shell)
Eg,
. etc/bashrc ParaView_VERSION=5.4.1-mpipy
source etc/cshrc ParaView_VERSION=5.4.1-mpipy
- export library path for gmp/mpfr from CGAL config files.
This is required when non-system gmp/mpfr libraries are being
used, but not using a ThirdParty compiler installation.
- automatically handle lib/ vs lib64/ (eg, for central installations)
for packages such as boost, CGAL, etc. While the ThirdParty
compilation of these will normally land in lib64/, this may not be
the case when they are supplied by another means.
- reworked the handling of foamEtcFile and foamCleanPath for less
clutter in the configuration files.
Added the bin/tools/lib-dir script to handle logic that is
too complex to easily manage in csh.
- relocate WM_COMPILER_ARCH, WM_COMPILER_LIB_ARCH from
etc/{bashrc,cshrc} to etc/config.{csh,sh}/settings since these
should not be changed by the user anyhow.
- Use gcc/g++ as common base and specialize afterwards (to reduce
duplication)
- adjust format of WM_PROJECT_SITE fallback to allow for easier
automated edits
- currently no cleanup of completions when deactivating an OpenFOAM
tcsh environment
- tab completion with directories adds a space after the slash, which
makes navigation a bit annoying.
- allows configuration without an environment variable.
For compatibility still respect FOAM_SIGFPE and FOAM_SETNAN
env-variables
- The env-variables are now treated as true/false switch values.
Previously there was just a check for env exists or not, but this
can be fairly fragile for a user's environment.
Some versions of lsof print the mount point (if remote) after the
script path:
/hosts/mymachine/OpenFOAM/OpenFOAM-plus.develop/etc/cshrc (mymachine:/home)
This now gets filtered out.
- suppress error messages that appear with zsh.
According to unset(1p), 'unset -f' unsets a function.
If the function was not previously defined, this is a no-op.
This is similar for zsh, but there it emits a warning if the
function was not previously defined.
- avoid 'local' in functions sources from etc/bashrc.
ksh does not support this.
- use 'command' shell builtin instead of 'type'.
Seems to be more consistent between shell flavours.
- this implies that jobControl is a user-resource for OpenFOAM.
It was previously located under $WM_PROJECT_INST_DIR/jobControl,
but few users will have write access there.
- an unset FOAM_JOB_DIR variable is treated as "~/.OpenFOAM/jobControl",
which can partially reduce environment clutter.
- provide argList::noJobInfo() to conveniently suppress job-info on an
individual basis for short-running utilities (eg, foamListTimes) to
avoid unneeded clutter.
- permit SYSTEMMPI user adjustments via
etc/config.{csh,sh}/mpi-system
This can be a convenient place for setting up SYSTEMMPI for OpenFOAM
without adjusting bashrc, prefs.sh ...
- add a USERMPI type. This represents any generic mpi implementation.
The user is responsible for supplying an appropriate
wmake/rules/General/mplibUSERMPI file and managing all settings.
This type of setup can be useful in combination with specific build
systems (SPACK, EASYBUILD, etc) or module systems for which the MPI
variant is part of the installed configuration.
- handle sourcing bashrc with a relative path (issue #383)
- handle sourcing from bash and zsh.
Still need manual intervention when sourcing dash, sh, or ksh.
- replace grep in etc/cshrc with sed only
- logical instead of physical path for WM_PROJECT_DIR (issue #431).
Doesn't seem to be possible for csh/tcsh.
* Continue using physical locations when comparing directories,
but not for the top-level FOAM_INST_DIR, WM_PROJECT_DIR.
- relocate WM_CC, WM_CXX overrides from etc/config.*/compiler
to etc/config.*/settings to ensure that they are left untouched
when etc/config.sh/compiler is sourced while making third-party
packages (eg, gcc, llvm, CGAL).
- provide fallback FOAM_TUTORIALS setting in RunFunctions
STYLE: remove "~OpenFOAM" fallback as being too rare, non-obvious
Can now use this:
_foamSourceEtc config.sh/scotch
_foamSourceEtc config.csh/scotch
instead of this:
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/scotch`
In the bash/sh version, leave the _foamSource function for now, since
ThirdParty is still relying on it.
STYLE: elminate while-loop for _foamAddPath etc since this type of
construct isn't readily possible for csh and isn't being used anywhere.
- instead we use the CGAL settings directly since they have the
same option of (version | system | none)
- may wish to review this again in the future.
- export/setenv WM_COMPILER_TYPE as suggested by Mattijs.
- for overall consistency, don't carp about an unset WM_COMPILER_TYPE,
since this would only be on the first instance (prior to the
export/setenv) and would be confusing about why/when this message
may occur.
- reduce clutter: only use (system|ThirdParty) for WM_COMPILER_TYPE.
Drop the old 'OpenFOAM' setting for WM_COMPILER_TYPE, which was
transitional in early 2011.
- make the error messages more meaningful
FOAM_INST_DIR is the location of the OpenFOAM installation which defaults to
the directory containing the etc/bashrc,cshrc file. If this default is
not appropriate FOAM_INST_DIR can be set explicitly.