diff --git a/bin/paraFoam b/bin/paraFoam index e58290507d7e022065a98efcda94b324f522347f..a049d9748407a33c18c7f2215480e0a6b7280b9c 100755 --- a/bin/paraFoam +++ b/bin/paraFoam @@ -33,33 +33,33 @@ Script=${0##*/} usage() { - while [ "$#" -ge 1 ]; do echo "$1"; shift; done - cat<<USAGE + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat<<USAGE usage: $Script [-case dir] * start paraview $ParaView_VERSION with the OpenFOAM libraries USAGE - exit 1 + exit 1 } # parse options if [ "$#" -gt 0 ]; then - case "$1" in - -h | -help) - usage - ;; - -case) - shift - caseDir=$1 - [ "$#" -ge 1 ] || usage "'-case' option requires an argument" - cd "$caseDir" 2>/dev/null || usage "directory does not exist: '$caseDir'" - ;; - *) - usage "unknown option/argument: '$*'" - ;; - esac + case "$1" in + -h | -help) + usage + ;; + -case) + shift + caseDir=$1 + [ "$#" -ge 1 ] || usage "'-case' option requires an argument" + cd "$caseDir" 2>/dev/null || usage "directory does not exist: '$caseDir'" + ;; + *) + usage "unknown option/argument: '$*'" + ;; + esac fi # get a sensible caseName @@ -67,41 +67,38 @@ caseName=${PWD##*/} # parent directory for normal or parallel results case "$caseName" in - processor*) parentDir=".." ;; - *) parentDir="." ;; + processor*) parentDir=".." ;; + *) parentDir="." ;; esac # check existence of essential files for check in system/controlDict system/fvSchemes system/fvSolution do - [ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'" + [ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'" done -OpenFoamExt="foam" -# OpenFoamExt="OpenFOAM" +caseFile="$caseName.foam" +# caseFile="$caseName.OpenFOAM" -if [ "$ParaView_VERSION" = "3" ]; then +case "$ParaView_VERSION" in +2*) + # Clean up on termination and on Ctrl-C + trap "rm -f paraFoam.pvs $caseFile 2>/dev/null; exit 0" EXIT TERM INT + touch $caseFile - # check existence of essential files - for check in system/controlDict system/fvSchemes system/fvSolution - do - [ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'" - done + # since we are now in the cwd, %CASE% is '$PWD/$caseFile' + sed -e s@%CASE%@$PWD/$caseFile@g \ + $WM_PROJECT_DIR/bin/paraFoam.pvs > paraFoam.pvs - touch $caseName.$OpenFoamExt - paraview --data=$caseName.$OpenFoamExt - rm $caseName.$OpenFoamExt 2>/dev/null + paraview paraFoam.pvs + ;; -else - - # since we are now in the cwd, FOAM_ROOT/FOAM_CASE is '$PWD' - sed -e s%FOAM_ROOT/FOAM_CASE%$PWD%g \ - -e s%FOAM_CASE%$caseName%g $WM_PROJECT_DIR/bin/paraFoam.pvs > paraFoam.pvs - - touch $caseName.$OpenFoamExt - paraview paraFoam.pvs - rm paraFoam.pvs $caseName.$OpenFoamExt 2>/dev/null - -fi +*) + # Clean up on termination and on Ctrl-C + trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT + touch $caseFile + paraview --data=$caseFile + ;; +esac #------------------------------------------------------------------------------ diff --git a/bin/paraFoam.pvs b/bin/paraFoam.pvs new file mode 100644 index 0000000000000000000000000000000000000000..8cbca6dc411ede8c5239ecb8880b0b699a93165e --- /dev/null +++ b/bin/paraFoam.pvs @@ -0,0 +1,12 @@ +# ParaView State Version 2.2 + +set kw(vtkTemp2) [$Application GetMainWindow] +set kw(vtkTemp29) [$kw(vtkTemp2) GetMainView] +set kw(vtkTemp980) [$kw(vtkTemp2) GetAnimationManager] +[$kw(vtkTemp2) GetRotateCameraButton] SetState 1 +$kw(vtkTemp2) ChangeInteractorStyle 1 +set kw(vtkTemp840) [$kw(vtkTemp2) InitializeReadCustom "FoamReader" "%CASE%"] +$kw(vtkTemp2) ReadFileInformation $kw(vtkTemp840) "%CASE%" +$kw(vtkTemp2) FinalizeRead $kw(vtkTemp840) "%CASE%" +set kw(vtkTemp868) [$kw(vtkTemp840) GetPVWidget {Filename}] +$kw(vtkTemp868) SetValue "%CASE%" diff --git a/bin/tools/README b/bin/tools/README new file mode 100644 index 0000000000000000000000000000000000000000..c99723b20e19efb63e6e9dff7a312d9885a55edb --- /dev/null +++ b/bin/tools/README @@ -0,0 +1,2 @@ +Misc. tools for building applications, etc that are useful to have +but which don't really need to be in the PATH. diff --git a/bin/tools/buildParaView3.3 b/bin/tools/buildParaView3.3 new file mode 100755 index 0000000000000000000000000000000000000000..028320139df0e4b544a18e19c10969fbaa2d36c3 --- /dev/null +++ b/bin/tools/buildParaView3.3 @@ -0,0 +1,193 @@ +#!/bin/sh +set -x + +# ParaView 3.x build script +# - normally run from folder above source folder + +# use the version number and the installation location specified +# in etc/apps/paraview3/{bashrc,cshrc} +: ${ParaView_VERSION:=3.3} +: ${ParaView_INST_DIR:=$WM_PROJECT_INST_DIR/paraview-$ParaView_VERSION} + +#!!User: +# set to location of paraview sources and where to build paraview +# PARAVIEW_SRC_DIR=$WM_PROJECT_INST_DIR/src/other/ParaView3 +PARAVIEW_SRC_DIR=/data/cfd2/work/cfdadmin/cvs/ParaView3 +PARAVIEW_BUILD_DIR=$PARAVIEW_SRC_DIR/platforms + +# TODO: extract the version number from the CMakeLists.txt variables: +# PARAVIEW_VERSION_MAJOR, and PARAVIEW_VERSION_MINOR +# ParaView_VERSION="3.3" + +# SET(PARAVIEW_VERSION_MAJOR 3) +# SET(PARAVIEW_VERSION_MINOR 3) + +#!!User: +# select desired features, include Python whenever possible +VERBOSE=OFF +INCLUDE_MPI=OFF +MPI_MAX_PROCS=32 +INCLUDE_PYTHON=ON +INCLUDE_MESA=OFF + +# initialisation +oldpwd=$PWD +unset OBJ_ADD + +# always build shared libraries +CMAKE_VARIABLES="-DBUILD_SHARED_LIBS:BOOL=ON" + +if [ "$VERBOSE" = ON ]; then + CMAKE_VARIABLES="$CMAKE_VARIABLES -DCMAKE_VERBOSE_MAKEFILE=TRUE" +fi + +#**************************************************************************** +# FIX: Attempt to get around seg-fault when building documentation +#CMAKE_VARIABLES="$CMAKE_VARIABLES -BUILD_DOCUMENTATION-ADVANCED:INTERNAL=0" +#**************************************************************************** + +# set python specific options +# NOTE - you'll need both python and python-devel packages installed +# - might need to create a symbolic link to the python library +# - anything after the '.so' gets in the way... +# - might need to run cmake -> make twice to pick up all the links... +if [ "$INCLUDE_PYTHON" = ON ]; then + PYTHON_INCLUDE_DIR=/usr/include/python2.5 + PYTHON_LIBRARY=/usr/lib$WM_COMPILER_LIB_ARCH/libpython2.5.so + + if [ -d "$PYTHON_INCLUDE_DIR" ]; then + OBJ_ADD="$OBJ_ADD-py" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DPARAVIEW_ENABLE_PYTHON=ON" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DPYTHON_INCLUDE_PATH=$PYTHON_INCLUDE_DIR" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DPYTHON_LIBRARY=$PYTHON_LIBRARY" + else + echo "non-existent PYTHON_INCLUDE_DIR: $PYTHON_INCLUDE_DIR" + fi +fi + +# set MPI specific options +if [ "$INCLUDE_MPI" = ON ]; then + case "$WM_MPLIB" in + OPENMPI) + MPI_INCLUDE_PATH=$OPENMPI_ARCH_PATH/include + MPI_LIBRARY=$OPENMPI_ARCH_PATH/lib/libmpi.so + MPI_RUN=$OPENMPI_ARCH_PATH/bin/mpirun + ;; + LAM) + MPI_INCLUDE_PATH=$LAM_ARCH_PATH/include + MPI_LIBRARY=$LAM_ARCH_PATH/lib/libmpi.so + MPI_RUN=$LAM_ARCH_PATH/bin/mpirun + ;; + MPICH) + MPI_INCLUDE_PATH=$MPICH_ARCH_PATH/include + MPI_LIBRARY=$MPICH_ARCH_PATH/lib/libmpich.so + MPI_RUN=$MPICH_ARCH_PATH/bin/mpirun + ;; + *) + unset INCLUDE_MPI + ;; + esac + + if [ "$INCLUDE_MPI" ]; then + OBJ_ADD="$OBJ_ADD-mpi" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_USE_MPI=ON" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DPARAVIEW_USE_MPI=ON" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DMPI_INCLUDE_PATH=$MPI_INCLUDE_PATH" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DMPI_LIBRARY=$MPI_LIBRARY" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_MPIRUN_EXE=$MPI_RUN" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS" + else + echo "unknown/unsupported mpi: $WM_MPLIB" + fi +fi + +# set MESA specific options +if [ "$INCLUDE_MESA" = ON ]; then + MESA_INCLUDE_DIR=/usr/include/GL + MESA_LIBRARY=/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so + + if [ -d "$MESA_INCLUDE_DIR" -a -f "$MESA_LIBRARY" ]; then + OBJ_ADD="$OBJ_ADD-mesa" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_OPENGL_HAS_OSMESA=ON" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DOSMESA_INCLUDE_DIR=$MESA_INCLUDE_DIR" + CMAKE_VARIABLES="$CMAKE_VARIABLES -DOSMESA_LIBRARY=$MESA_LIBRARY" + else + echo "no MESA information found ... skipping" + fi +fi + + +# finalize the build/install environment +PARAVIEW_OBJ_DIR=$PARAVIEW_BUILD_DIR/$WM_OPTIONS$OBJ_ADD +PARAVIEW_APP_DIR=$ParaView_INST_DIR/platforms/$WM_OPTIONS$OBJ_ADD + +# create paraview build folder +mkdir -p $PARAVIEW_OBJ_DIR +cd $PARAVIEW_OBJ_DIR + +# +# make paraview +# + +# provide a backdoor to skip cmake for repeated builds +if [ -z "$build_no_cmake" ] +then + cmake \ + -DCMAKE_INSTALL_PREFIX=$PARAVIEW_APP_DIR \ + $CMAKE_VARIABLES \ + $PARAVIEW_SRC_DIR +fi + + +if [ -r /proc/cpuinfo ]; then + WM_NCOMPPROCS=`egrep "^processor" /proc/cpuinfo | wc -l` + + [ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8 + + make -j $WM_NCOMPPROCS +else + make +fi + + +if [ -e "$PARAVIEW_OBJ_DIR/bin/paraview" ]; then + echo "Info: Installation completed - proceeding to install" + make install + + # copy VTK headers to install directory + echo "Info: Copying VTK headers" + cp -r $PARAVIEW_SRC_DIR/VTK $PARAVIEW_APP_DIR + cp -r $PARAVIEW_OBJ_DIR/VTK/vtkConfigure.h $PARAVIEW_APP_DIR/VTK + cp -r $PARAVIEW_OBJ_DIR/VTK/vtkstd $PARAVIEW_APP_DIR/VTK + + # copy all .so files to the lib folder + # - NOTE: shouldn't be necessary - but some libs not copied over to the + # install folder +## echo "Info: Copying libs" +## cp $PARAVIEW_OBJ_DIR/bin/*.so* $PARAVIEW_APP_DIR/lib/paraview-$ParaView_VERSION + + echo "Info: Copying ParaViewConfig.cmake" + cp $PARAVIEW_OBJ_DIR/ParaViewConfig.cmake $PARAVIEW_APP_DIR + + if [ "$OBJ_ADD" ]; then + echo "Creating symbolic link in $ParaView_INST_DIR/platforms from $WM_OPTIONS$OBJ_ADD to $WM_OPTIONS" + ( cd $ParaView_INST_DIR/platforms && ln -s $WM_OPTIONS$OBJ_ADD $WM_OPTIONS ) + fi + + echo "Installation complete" + echo "Set environment variables:" + echo " - ParaView_DIR to $PARAVIEW_APP_DIR" + echo " - ParaView_INST_DIR to $PARAVIEW_APP_DIR" + echo " - PV_PLUGIN_PATH to $FOAM_LIBBIN" + echo "Add $ParaView_INST_DIR/bin to PATH" + echo "Add $ParaView_INST_DIR/lib to LD_LIBRARY_PATH" + + echo "done." +else + echo "*** Error: Installation failed - see output window" +fi + +# finalisation +cd $oldpwd + +# ----------------------------------------------------------------- end-of-file diff --git a/etc/apps/paraview3/bashrc b/etc/apps/paraview3/bashrc index c02b490abb8f9674109f8f85e4a6ca379364caa3..3d197f43f3750b59085b3a92e3c8ab8564012c15 100644 --- a/etc/apps/paraview3/bashrc +++ b/etc/apps/paraview3/bashrc @@ -41,18 +41,26 @@ export CMAKE_HOME=$WM_PROJECT_INST_DIR/$WM_ARCH/cmake-2.4.6 if [ -r $CMAKE_HOME ]; then export PATH=$CMAKE_HOME/bin:$PATH +else + unset CMAKE_HOME fi -export ParaView_VERSION=3 +# export ParaView_VERSION="3.3-cvs" +export ParaView_VERSION=3.3 -export ParaView_INST_DIR=$WM_PROJECT_INST_DIR/ParaView3.3-cvs +export ParaView_INST_DIR=$WM_PROJECT_INST_DIR/paraview-$ParaView_VERSION export ParaView_DIR=$ParaView_INST_DIR/platforms/$WM_OPTIONS -export PYTHONPATH=$PYTHONPATH:$ParaView_DIR/bin:$ParaView_DIR/Utilities/VTKPythonWrapping +if [ "$PYTHONPATH" ]; then + export PYTHONPATH=$PYTHONPATH:$ParaView_DIR/Utilities/VTKPythonWrapping +else + export PYTHONPATH=$ParaView_DIR/Utilities/VTKPythonWrapping +fi + if [ -r $ParaView_DIR ]; then export PATH=$ParaView_DIR/bin:$PATH - export LD_LIBRARY_PATH=${ParaView_DIR}/bin:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=$ParaView_DIR/lib/paraview-$ParaView_VERSION:$LD_LIBRARY_PATH export PV_PLUGIN_PATH=$FOAM_LIBBIN fi diff --git a/etc/apps/paraview3/cshrc b/etc/apps/paraview3/cshrc index c4192592795432ba66ea1077879f9900ad2b28e7..e3d3c87ea2bdc02ebd673b7c85d6f1b01b07cd10 100644 --- a/etc/apps/paraview3/cshrc +++ b/etc/apps/paraview3/cshrc @@ -41,11 +41,14 @@ setenv CMAKE_HOME $WM_PROJECT_INST_DIR/$WM_ARCH/cmake-2.4.6 if ( -r $CMAKE_HOME ) then set path=($CMAKE_HOME/bin $path) +else + unset CMAKE_HOME endif -setenv ParaView_VERSION 3 +# setenv ParaView_VERSION 3.3-cvs +setenv ParaView_VERSION 3.3 -setenv ParaView_INST_DIR $WM_PROJECT_INST_DIR/ParaView3.3-cvs +export ParaView_INST_DIR=$WM_PROJECT_INST_DIR/paraview-$ParaView_VERSION setenv ParaView_DIR $ParaView_INST_DIR/platforms/$WM_OPTIONS if ($?PYTHONPATH) then @@ -56,7 +59,7 @@ endif if ( -r $ParaView_INST_DIR ) then set path=($ParaView_DIR/bin $path) - setenv LD_LIBRARY_PATH ${ParaView_DIR}/bin:${LD_LIBRARY_PATH} + setenv LD_LIBRARY_PATH $ParaView_DIR/lib/paraview-$ParaView_VERSION:$LD_LIBRARY_PATH setenv PV_PLUGIN_PATH $FOAM_LIBBIN endif