openfoam/etc/config.sh/aliases
2019-10-31 14:48:44 +00:00

130 lines
3.8 KiB
Bash

#----------------------------------*-sh-*--------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | www.openfoam.com
# \\/ M anipulation |
#------------------------------------------------------------------------------
# Copyright (C) 2011-2016 OpenFOAM Foundation
# Copyright (C) 2016-2019 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, licensed under GNU General Public License
# <http://www.gnu.org/licenses/>.
#
# File
# etc/config.sh/aliases
# - sourced by OpenFOAM-*/etc/bashrc (or from the user's ~/.bashrc)
#
# Description
# Aliases for working with OpenFOAM.
#
#------------------------------------------------------------------------------
# Change compiled version aliases
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias wmSet='. $WM_PROJECT_DIR/etc/bashrc'
alias wmInt32='wmSet WM_LABEL_SIZE=32'
alias wmInt64='wmSet WM_LABEL_SIZE=64'
alias wmDP='wmSet WM_PRECISION_OPTION=DP'
alias wmSP='wmSet WM_PRECISION_OPTION=SP'
alias wmSPDP='wmSet WM_PRECISION_OPTION=SPDP'
# Clear env
alias wmUnset='. $WM_PROJECT_DIR/etc/config.sh/unset'
# Change directory aliases
# ~~~~~~~~~~~~~~~~~~~~~~~~
alias foam='cd $WM_PROJECT_DIR'
alias src='cd $FOAM_SRC'
alias lib='cd $FOAM_LIBBIN'
alias app='cd $FOAM_APP'
alias sol='cd $FOAM_SOLVERS'
alias util='cd $FOAM_UTILITIES'
alias tut='cd $FOAM_TUTORIALS'
alias run='cd $FOAM_RUN'
alias ufoam='cd $WM_PROJECT_USER_DIR'
alias uapp='cd $WM_PROJECT_USER_DIR/applications'
alias usol='cd $WM_PROJECT_USER_DIR/applications/solvers'
alias uutil='cd $WM_PROJECT_USER_DIR/applications/utilities'
# Refresh the environment
# ~~~~~~~~~~~~~~~~~~~~~~~
unset -f wmRefresh 2>/dev/null
wmRefresh()
{
local projectDir="$WM_PROJECT_DIR"
local foamSettings="$FOAM_SETTINGS"
. "$projectDir/etc/config.sh/unset" 2>/dev/null
. "$projectDir/etc/bashrc" "$foamSettings"
}
# Query the current OpenFOAM version
# or change to another version (if installed in a parallel directory)
unset -f foamVersion 2>/dev/null
foamVersion()
{
if [ "$#" -gt 0 ] && [ -d "$WM_PROJECT_DIR" ]
then
local prefixDir="${WM_PROJECT_DIR%/*}" # Parent directory
local ver="$1"
shift
if [ -f "$prefixDir/OpenFOAM-$ver/etc/bashrc" ]
then
. "$WM_PROJECT_DIR/etc/config.sh/unset" 2>/dev/null
. "$prefixDir/OpenFOAM-$ver/etc/bashrc"
echo "Using OpenFOAM-$WM_PROJECT_VERSION" 1>&2
else
echo "No OpenFOAM-$ver available in $prefixDir" 1>&2
echo "Using OpenFOAM-$WM_PROJECT_VERSION" 1>&2
return 1
fi
else
# Treat as query. Report current version
echo "OpenFOAM-$WM_PROJECT_VERSION" 1>&2
fi
}
# Change ParaView version
# ~~~~~~~~~~~~~~~~~~~~~~~
# pass in first value directly (eg, 5.4.1) and transform to
# ParaView_VERSION=...
# Any additional arguments must be fully specified and start with "ParaView".
# Eg,
# ParaView_QT=...
unset -f foamPV 2>/dev/null
foamPV()
{
. "$WM_PROJECT_DIR/etc/config.sh/paraview" "${@+ParaView_VERSION=$@}"
local pvdir="${ParaView_DIR##*/}"
echo "${pvdir:-ParaView_DIR not set}" 1>&2
}
# OpenFOAM working directory with basic env replacements
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
unset -f foamPwd 2>/dev/null
foamPwd()
{
if [ -n "$WM_PROJECT_DIR" ]
then
echo "$PWD/" | sed \
-e "s#^${FOAM_RUN}/#\$FOAM_RUN/#" \
-e "s#^${WM_PROJECT_DIR}/#\$WM_PROJECT_DIR/#" \
-e "s#^${WM_PROJECT_USER_DIR}/#\$WM_PROJECT_USER_DIR/#" \
-e "s#^${HOME}/#~/#" \
;
else
echo "$PWD/" | sed -e "s#^${HOME}/#~/#";
fi
}
#------------------------------------------------------------------------------