diff --git a/ThirdParty/AllClean.stage1 b/ThirdParty/AllClean.stage1 index 5c999da35..4a151d513 100755 --- a/ThirdParty/AllClean.stage1 +++ b/ThirdParty/AllClean.stage1 @@ -51,21 +51,25 @@ echo ======================================== echo # gmp +uninstallPackage gmp-4.3.2 $1 uninstallPackage gmp-5.0.1 $1 -uninstallPackage gmp-5.0.5 $1 +uninstallPackage gmp-5.1.2 $1 # mpfr +uninstallPackage mpfr-2.4.2 $1 +uninstallPackage mpfr-3.0.0 $1 uninstallPackage mpfr-3.0.1 $1 -uninstallPackage mpfr-3.1.0 $1 +uninstallPackage mpfr-3.1.2 $1 # mpc uninstallPackage mpc-0.8.2 $1 -uninstallPackage mpc-0.9 $1 +uninstallPackage mpc-1.0.1 $1 # gcc uninstallPackage gcc-4.4.5 $1 uninstallPackage gcc-4.5.1 $1 -uninstallPackage gcc-4.6.3 $1 +uninstallPackage gcc-4.6.4 $1 +uninstallPackage gcc-4.7.4 $1 uninstallPackage gcc-4.8.4 $1 uninstallPackage gcc-4.9.2 $1 @@ -79,14 +83,21 @@ uninstallPackage Python-2.7 $1 uninstallPackage m4-1.4.16 $1 # bison -uninstallPackage bison-2.7 $1 +uninstallPackage bison-2.4.3 $1 +uninstallPackage bison-2.7 $1 # flex uninstallPackage flex-2.5.35 $1 # cmake +uninstallPackage cmake-2.8.3 $1 +uninstallPackage cmake-2.8.5 $1 +uninstallPackage cmake-2.8.6 $1 +uninstallPackage cmake-2.8.8 $1 +uninstallPackage cmake-2.8.11 $1 uninstallPackage cmake-2.8.12 $1 -uninstallPackage cmake-3.2.2 $1 +uninstallPackage cmake-3.2.2 $1 +uninstallPackage cmake-3.3.2 $1 echo diff --git a/ThirdParty/AllClean.stage4 b/ThirdParty/AllClean.stage4 index d981f7410..1c8d880a3 100755 --- a/ThirdParty/AllClean.stage4 +++ b/ThirdParty/AllClean.stage4 @@ -51,13 +51,19 @@ echo ======================================== echo # QT -uninstallPackage qt-everywhere-opensource-src-4.8.6 $1 +uninstallPackage qt-everywhere-opensource-src-4.7.0 $1 uninstallPackage qt-everywhere-opensource-src-4.7.4 $1 +uninstallPackage qt-everywhere-opensource-src-4.8.5 $1 +uninstallPackage qt-everywhere-opensource-src-4.8.6 $1 +uninstallPackage qt-everywhere-opensource-src-5.8.0 $1 # ParaView uninstallPackage ParaView-4.0.1 $1 uninstallPackage ParaView-4.1.0 $1 +uninstallPackage ParaView-4.2.0 $1 uninstallPackage ParaView-4.3.1 $1 +uninstallPackage ParaView-4.4.0 $1 +uninstallPackage ParaView-5.4.1 $1 # ParaView-Server uninstallPackage llvm-3.6.0 diff --git a/ThirdParty/AllMake.stage1 b/ThirdParty/AllMake.stage1 index 8fc1009c8..824dc09bd 100755 --- a/ThirdParty/AllMake.stage1 +++ b/ThirdParty/AllMake.stage1 @@ -175,6 +175,13 @@ echo ( rpm_make -p cmake-3.2.2 -s cmake-3.2.2.spec -u http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz ) } +# cmake 3.3.2 +# +[ ! -z "$WM_THIRD_PARTY_USE_CMAKE_332" ] && { + echo "Building cmake 3.3.2" + ( rpm_make -p cmake-3.3.2 -s cmake-3.3.2.spec -u http://www.cmake.org/files/v3.3/cmake-3.3.2.tar.gz ) +} + echo ======================================== echo Done ThirdParty AllMake: Stage1 echo ======================================== diff --git a/ThirdParty/AllMake.stage4 b/ThirdParty/AllMake.stage4 index 8f3a0a7f5..9b79feead 100755 --- a/ThirdParty/AllMake.stage4 +++ b/ThirdParty/AllMake.stage4 @@ -65,6 +65,12 @@ then echo "Building Qt 4.8.6" ( rpm_make -p qt-everywhere-opensource-src-4.8.6 -s qt-everywhere-opensource-src-4.8.6.spec -u http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz ) } + # Qt 5.8.0 + # + [ ! -z "$WM_THIRD_PARTY_USE_QT_580" ] && { + echo "Building Qt 5.8.0" + ( rpm_make -p qt-everywhere-opensource-src-5.8.0 -s qt-everywhere-opensource-src-5.8.0.spec -u http://download.qt.io/archive/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz ) + } else echo "Using system installed QT" echo "" @@ -110,6 +116,14 @@ then -f --define='_qmakePath $QT_BIN_DIR/qmake' ) } + # ParaView 5.4.1 + # + [ ! -z "$WM_THIRD_PARTY_USE_PARAVIEW_541" ] && { + echo "Building ParaView 5.4.1" + ( rpm_make -p ParaView-5.4.1 -s ParaView-5.4.1.spec -u http://www.paraview.org/files/v5.4/ParaView-v5.4.1.tar.gz \ + -f --define='_qmakePath $QT_BIN_DIR/qmake' + ) + } else echo "WARNING: " echo "WARNING: Skipping the installation of ParaView-4.x.x." diff --git a/ThirdParty/rpmBuild/SOURCES/ParaView-4.4.0.patch_darwin b/ThirdParty/rpmBuild/SOURCES/ParaView-4.4.0.patch_darwin index 3d1d8ce4b..47e8a907b 100644 --- a/ThirdParty/rpmBuild/SOURCES/ParaView-4.4.0.patch_darwin +++ b/ThirdParty/rpmBuild/SOURCES/ParaView-4.4.0.patch_darwin @@ -1,9 +1,9 @@ -diff -ruN ParaView-4.3.1_orig/Applications/ParaView-4.3.1_extra_install_Darwin.cmake ParaView-4.3.1/Applications/ParaView-4.3.1_extra_install_Darwin.cmake ---- ParaView-4.3.1_orig/Applications/ParaView-4.3.1_extra_install_Darwin.cmake 1969-12-31 19:00:00.000000000 -0500 -+++ ParaView-4.3.1/Applications/ParaView-4.3.1_extra_install_Darwin.cmake 2013-10-02 19:00:00.000000000 -0400 +diff -ruN ParaView-4.4.0_orig/Applications/ParaView-4.4.0_extra_install_Darwin.cmake ParaView-4.4.0/Applications/ParaView-4.4.0_extra_install_Darwin.cmake +--- ParaView-4.4.0_orig/Applications/ParaView-4.4.0_extra_install_Darwin.cmake 1969-12-31 19:00:00.000000000 -0500 ++++ ParaView-4.4.0/Applications/ParaView-4.4.0_extra_install_Darwin.cmake 2013-10-02 19:00:00.000000000 -0400 @@ -0,0 +1,8 @@ +# -+# Additional install rules for Mac OS X platforms ++# Additional install rules for Mac OS X platforms +# +INSTALL (DIRECTORY buildObj/bin/paraview.app + DESTINATION ${CMAKE_INSTALL_PREFIX}/bin diff --git a/ThirdParty/rpmBuild/SOURCES/ParaView-5.4.1.patch_darwin b/ThirdParty/rpmBuild/SOURCES/ParaView-5.4.1.patch_darwin new file mode 100644 index 000000000..3d616a742 --- /dev/null +++ b/ThirdParty/rpmBuild/SOURCES/ParaView-5.4.1.patch_darwin @@ -0,0 +1,12 @@ +diff -ruN ParaView-5.4.1_orig/Applications/ParaView-5.4.1_extra_install_Darwin.cmake ParaView-5.4.1/Applications/ParaView-5.4.1_extra_install_Darwin.cmake +--- ParaView-5.4.1_orig/Applications/ParaView-5.4.1_extra_install_Darwin.cmake 1969-12-31 19:00:00.000000000 -0500 ++++ ParaView-5.4.1/Applications/ParaView-5.4.1_extra_install_Darwin.cmake 2013-10-02 19:00:00.000000000 -0400 +@@ -0,0 +1,8 @@ ++# ++# Additional install rules for Mac OS X platforms ++# ++INSTALL (DIRECTORY buildObj/bin/paraview.app ++ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin ++ USE_SOURCE_PERMISSIONS ++ COMPONENT Runtime) ++ diff --git a/ThirdParty/rpmBuild/SPECS/ParaView-5.4.1.spec b/ThirdParty/rpmBuild/SPECS/ParaView-5.4.1.spec new file mode 100644 index 000000000..cd1d0504c --- /dev/null +++ b/ThirdParty/rpmBuild/SPECS/ParaView-5.4.1.spec @@ -0,0 +1,297 @@ +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | foam-extend: Open Source CFD +# \\ / O peration | +# \\ / A nd | For copyright notice see file Copyright +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of foam-extend. +# +# foam-extend is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# foam-extend is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with foam-extend. If not, see . +# +# Script +# RPM spec file for ParaView-5.4.1 +# +# Description +# RPM spec file for creating a relocatable RPM +# +# Authors: +# Martin Beaudoin, Hydro-Quebec, (2010) +# Andreas Feymark, Chalmers University of Technology, (2013) +# Pascal Beckstein, HZDR, (2018) +# +#------------------------------------------------------------------------------ + +# We grab the value of WM_THIRD_PARTY and WM_OPTIONS from the environment variable +%{expand:%%define _WM_THIRD_PARTY_DIR %(echo $WM_THIRD_PARTY_DIR)} +%{expand:%%define _WM_OPTIONS %(echo $WM_OPTIONS)} + +# Disable the generation of debuginfo packages +%define debug_package %{nil} + +# Turning off the Fascist build policy +# Useful for debugging the install section +%define _unpackaged_files_terminate_build 0 + +# The topdir needs to point to the $WM_THIRD_PARTY/rpmbuild directory +%define _topdir %{_WM_THIRD_PARTY_DIR}/rpmBuild +%define _tmppath %{_topdir}/tmp + +# Will install the package directly $WM_THIRD_PARTY_DIR +# Some comments about package relocation: +# By using this prefix for the Prefix: parameter in this file, you will make this +# package relocatable. +# +# This is fine, as long as your software is itself relocatable. +# +# Simply take note that libraries built with libtool are not relocatable because the +# prefix we specify will be hard-coded in the library .la files. +# Ref: http://sourceware.org/autobook/autobook/autobook_80.html +# +# In that case, if you ever change the value of the $WM_THIRD_PARTY_DIR, you will +# not be able to reutilize this RPM, even though it is relocatable. You will need to +# regenerate the RPM. +# +%define _prefix %{_WM_THIRD_PARTY_DIR} + +%define name ParaView +%define release %{_WM_OPTIONS} +%define version 5.4.1 + +%define buildroot %{_topdir}/BUILD/%{name}-%{version}-root + +BuildRoot: %{buildroot} +Summary: ParaView +License: Unkown +Name: %{name} +Version: %{version} +Release: %{release} +URL: http://www.paraview.org/files/v5.4/ +Source: %url/%{name}-v%{version}.tar.gz +Prefix: %{_prefix} +Group: Development/Tools +Patch0: ParaView-5.4.1.patch_darwin + +%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} + +#-------------------------------------------------------------------------- +# +# Here, we define default compiling options for cmake +# +# One can override the option on the commande line : --define='MACRO EXPR' +# +%{!?_withVerbose: %define _withVerbose false} +%{!?_withMesa: %define _withMesa false} +%{!?_withMPI: %define _withMPI false} +%{!?_withPython: %define _withPython false} +%{!?_withQt: %define _withQt true} +%{!?_qmakePath: %define _qmakePath Undefined} +%{!?_mesaIncludePath: %define _mesaIncludePath Undefined} +%{!?_mesaLibPath: %define _mesaLibPath Undefined} +%{!?_pythonLibPath: %define _pythonLibPath Undefined} + +#-------------------------------------------------------------------------- + +%description +%{summary} + +%prep +%setup -q -n %{name}-v%{version} + +%ifos darwin +%patch0 -p1 +%endif + +%build +# +# set CMake cache variables +# + addCMakeVariable() + { + while [ -n "$1" ] + do + CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1" + shift + done + } + + # export WM settings in a form that GNU configure recognizes + [ -n "$WM_CC" ] && export CC="$WM_CC" + [ -n "$WM_CXX" ] && export CXX="$WM_CXX" + [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" + [ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" + [ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" + + set +x + echo "" + echo "Compilation options:" + echo " _withVerbose : %{_withVerbose}" + echo " _withMesa : %{_withMesa}" + echo " _withMPI : %{_withMPI}" + echo " _withPython : %{_withPython}" + echo " _withQt : %{_withQt}" + echo " _qmakePath : %{_qmakePath}" + echo " _mesaIncludePath : %{_mesaIncludePath}" + echo " _mesaLibPath : %{_mesaLibPath}" + echo " _pythonLibPath : %{_pythonLibPath}" + echo "" + set -x + + # start with these general settings + addCMakeVariable BUILD_SHARED_LIBS:BOOL=ON + addCMakeVariable CMAKE_BUILD_TYPE:STRING=Release + addCMakeVariable BUILD_TESTING:BOOL=OFF + + # We build with Python. This is ust too useful + addCMakeVariable PARAVIEW_ENABLE_PYTHON:BOOL=ON + + # include development files in "make install" + addCMakeVariable PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON + +%ifos darwin + # Additional installation rules for Mac OSX + addCMakeVariable PARAVIEW_EXTRA_INSTALL_RULES_FILE:FILEPATH=%{_topdir}/BUILD/%{name}-v%{version}-source/Applications/ParaView-4.4.0_extra_install_Darwin.cmake + + # We activate the new Unix-style installation for Mac OS X + addCMakeVariable PARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON + + # Recent version of Mac OSX (Yosemite) cannot compile ParaView with the gcc compiler + # Using clang instead + CC=clang + CXX=clang++ +%endif + + # Add the value of _qmakePath for QT_QMAKE_EXECUTABLE + addCMakeVariable QT_QMAKE_EXECUTABLE:FILEPATH=%{_qmakePath} + + echo "CMAKE_VARIABLES: $CMAKE_VARIABLES" + + mkdir -p ./buildObj + cd ./buildObj + + cmake \ + -DCMAKE_INSTALL_PREFIX:PATH=%{_installPrefix} \ + $CMAKE_VARIABLES \ + .. + + [ -z "$WM_NCOMPPROCS" ] && WM_NCOMPPROCS=1 + make -j $WM_NCOMPPROCS + +%install + # On OpenSUSE, rpmbuild, will choke when detecting unreferenced symlinks + # created during installation. + # Qt version 4.8.0 will generate some unreferenced symlinks when + # ParaView is compiled and installed. By enabling the following + # environment variable, the command brp-symlink will still complain + # about missing link targets, but it won't stop rpmbuild from generating + # the final rpm. + # For all other Unix distros, this is a no-op. + export NO_BRP_STALE_LINK_ERROR=yes + + cd buildObj + make install DESTDIR=$RPM_BUILD_ROOT + +%ifos darwin + # Cleaning up some strange install side effect from option + # PARAVIEW_DO_UNIX_STYLE_INSTALLS + # Need to revisit this section eventually. + if [ -d "$RPM_BUILD_ROOT/$RPM_BUILD_ROOT" ]; then + mv $RPM_BUILD_ROOT/$RPM_BUILD_ROOT/%{_installPrefix}/bin/* $RPM_BUILD_ROOT/%{_installPrefix}/bin + fi +%endif + + # Creation of foam-extend specific .csh and .sh files" + + echo "" + echo "Generating foam-extend specific .csh and .sh files for the package %{name}-%{version}" + echo "" + # + # Generate package specific .sh file for foam-extend + # +mkdir -p $RPM_BUILD_ROOT/%{_installPrefix}/etc +cat << DOT_SH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.sh +# Load %{name}-%{version} libraries and binaries if available +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export PARAVIEW_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS +export PARAVIEW_BIN_DIR=\$PARAVIEW_DIR/bin +export PARAVIEW_LIB_DIR=\$PARAVIEW_DIR/lib +export PARAVIEW_INCLUDE_DIR=\$PARAVIEW_DIR/include/paraview-5.4 + +export PARAVIEW_VERSION=%{version} + +# NB: It is important to set the PV_PLUGIN_PATH location to a directory containing only the ParaView plugins. +# Otherwise, paraview will try to automatically autoload each and every dynamic library it can find in the +# specified directory to see if a given library is a paraview plugin. +# In the case of \$FOAM_LIBBIN, with over 80 libraries, this is a total waste of time that will slow down the +# startup of paraview or even make paraview crash on startup. +export PV_PLUGIN_PATH=\$FOAM_LIBBIN/paraview-5.4_plugins + +[ -d \$PARAVIEW_LIB_DIR/paraview-5.4 ] && _foamAddLib \$PARAVIEW_LIB_DIR/paraview-5.4 + +# Enable access to the package applications if present +[ -d \$PARAVIEW_BIN_DIR ] && _foamAddPath \$PARAVIEW_BIN_DIR + +# Additional binary path if running on Mac OS X +[ -d \$PARAVIEW_BIN_DIR/paraview.app/Contents/MacOS ] && _foamAddPath \$PARAVIEW_BIN_DIR/paraview.app/Contents/MacOS + +DOT_SH_EOF + + # + # Generate package specific .csh file for foam-extend + # +cat << DOT_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.csh +# Load %{name}-%{version} libraries and binaries if available +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +setenv PARAVIEW_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS +setenv PARAVIEW_BIN_DIR \$PARAVIEW_DIR/bin +setenv PARAVIEW_LIB_DIR \$PARAVIEW_DIR/lib +setenv PARAVIEW_INCLUDE_DIR \$PARAVIEW_DIR/include/paraview-5.4 + +setenv PARAVIEW_VERSION %{version} + +# NB: It is important to set the PV_PLUGIN_PATH location to a directory containing only the ParaView plugins. +# Otherwise, paraview will try to automatically autoload each and every dynamic library it can find in the +# specified directory to see if a given library is a paraview plugin. +# In the case of \$FOAM_LIBBIN, with over 80 libraries, this is a total waste of time that will slow down the +# startup of paraview or even make paraview crash on startup. +setenv PV_PLUGIN_PATH \$FOAM_LIBBIN/paraview-5.4_plugins + +if ( -e \$PARAVIEW_BIN_DIR ) then + _foamAddPath \$PARAVIEW_BIN_DIR +endif + +if ( -e \$PARAVIEW_LIB_DIR/paraview-5.4 ) then + _foamAddLib \$PARAVIEW_LIB_DIR/paraview-5.4 +endif + + +# Additional binary path if running on Mac OS X +if ( -e \$PARAVIEW_BIN_DIR/paraview.app/Contents/MacOS ) then + _foamAddPath \$PARAVIEW_BIN_DIR/paraview.app/Contents/MacOS +endif +DOT_CSH_EOF + + #finally, generate a .tgz file for systems where using rpm for installing packages + # as a non-root user might be a problem. + (mkdir -p %{_topdir}/TGZS/%{_target_cpu}; cd $RPM_BUILD_ROOT/%{_prefix}; tar -zcvf %{_topdir}/TGZS/%{_target_cpu}/%{name}-%{version}.tgz packages/%{name}-%{version}) + +%clean + +%files +%defattr(-,root,root) +%{_installPrefix} + + diff --git a/ThirdParty/rpmBuild/SPECS/cmake-3.3.2.spec b/ThirdParty/rpmBuild/SPECS/cmake-3.3.2.spec new file mode 100644 index 000000000..98b3e0ee2 --- /dev/null +++ b/ThirdParty/rpmBuild/SPECS/cmake-3.3.2.spec @@ -0,0 +1,167 @@ +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | foam-extend: Open Source CFD +# \\ / O peration | +# \\ / A nd | For copyright notice see file Copyright +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of foam-extend. +# +# foam-extend is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# foam-extend is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with foam-extend. If not, see . +# +# Script +# RPM spec file for cmake-3.3.2 +# +# Description +# RPM spec file for creating a relocatable RPM +# +# Author: +# Martin Beaudoin, Hydro-Quebec, (2015) +# Pascal Beckstein, HZDR, (2018) +# +#------------------------------------------------------------------------------ + +# We grab the value of WM_THIRD_PARTY and WM_OPTIONS from the environment variable +%{expand:%%define _WM_THIRD_PARTY_DIR %(echo $WM_THIRD_PARTY_DIR)} +%{expand:%%define _WM_OPTIONS %(echo $WM_OPTIONS)} + +# Disable the generation of debuginfo packages +%define debug_package %{nil} + +# The topdir needs to point to the $WM_THIRD_PARTY/rpmbuild directory +%define _topdir %{_WM_THIRD_PARTY_DIR}/rpmBuild +%define _tmppath %{_topdir}/tmp + +# Will install the package directly $WM_THIRD_PARTY_DIR +# Some comments about package relocation: +# By using this prefix for the Prefix: parameter in this file, you will make this +# package relocatable. +# +# This is fine, as long as your software is itself relocatable. +# +# Simply take note that libraries built with libtool are not relocatable because the +# prefix we specify will be hard-coded in the library .la files. +# Ref: http://sourceware.org/autobook/autobook/autobook_80.html +# +# In that case, if you ever change the value of the $WM_THIRD_PARTY_DIR, you will +# not be able to reutilize this RPM, even though it is relocatable. You will need to +# regenerate the RPM. +# +%define _prefix %{_WM_THIRD_PARTY_DIR} + +%define name cmake +%define release %{_WM_OPTIONS} +%define version 3.3.2 + +%define buildroot %{_topdir}/BUILD/%{name}-%{version}-root + +BuildRoot: %{buildroot} +Summary: cmake +License: Unkown +Name: %{name} +Version: %{version} +Release: %{release} +URL: http://www.cmake.org/files/v3.3/ +Source: %url/%{name}-%{version}.tar.gz +Prefix: %{_prefix} +Group: Development/Tools + + +%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} + +%description +%{summary} + +%prep +%setup -q + +%build + # export WM settings in a form that GNU configure recognizes + [ -n "$WM_CC" ] && export CC="$WM_CC" + [ -n "$WM_CXX" ] && export CXX="$WM_CXX" + [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" + [ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" + [ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" + +%ifos darwin + # For Mac OSX: + # The configuration of cmake will be using the environment variable MACOSX_DEPLOYMENT_TARGET. + # This variable was initialized using 'sw_vers -productVersion' in etc/bashrc. + # We need to get rid of the revision number from this string. eg turn "10.7.5" into "10.7" + v=( ${MACOSX_DEPLOYMENT_TARGET//./ } ) + export MACOSX_DEPLOYMENT_TARGET="${v[0]}.${v[1]}" + echo "Resetting MACOSX_DEPLOYMENT_TARGET to ${MACOSX_DEPLOYMENT_TARGET}" + + # Recent version of Mac OSX (Yosemite) cannot compile cmake when gcc is the compiler + # Using clang instead + CC=clang + CXX=clang++ + +%endif + + ./configure \ + --prefix=%{_installPrefix} + + [ -z "$WM_NCOMPPROCS" ] && WM_NCOMPPROCS=1 + make -j $WM_NCOMPPROCS + +%install + make install DESTDIR=$RPM_BUILD_ROOT + + # Creation of foam-extend specific .csh and .sh files" + + echo "" + echo "Generating foam-extend specific .csh and .sh files for the package %{name}-%{version}" + echo "" + # + # Generate package specific .sh file for foam-extend + # +mkdir -p $RPM_BUILD_ROOT/%{_installPrefix}/etc +cat << DOT_SH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.sh +# Load %{name}-%{version} libraries and binaries if available +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export CMAKE_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS +export CMAKE_BIN_DIR=\$CMAKE_DIR/bin + +# Enable access to the runtime package applications +[ -d \$CMAKE_BIN_DIR ] && _foamAddPath \$CMAKE_BIN_DIR +DOT_SH_EOF + + # + # Generate package specific .csh file for foam-extend + # +cat << DOT_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.csh +# Load %{name}-%{version} libraries and binaries if available +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +setenv CMAKE_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS +setenv CMAKE_BIN_DIR \$CMAKE_DIR/bin + +if ( -e \$CMAKE_BIN_DIR ) then + _foamAddPath \$CMAKE_BIN_DIR +endif +DOT_CSH_EOF + + #finally, generate a .tgz file for systems where using rpm for installing packages + # as a non-root user might be a problem. + (mkdir -p %{_topdir}/TGZS/%{_target_cpu}; cd $RPM_BUILD_ROOT/%{_prefix}; tar -zcvf %{_topdir}/TGZS/%{_target_cpu}/%{name}-%{version}.tgz packages/%{name}-%{version}) + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root) +%{_installPrefix} + diff --git a/ThirdParty/rpmBuild/SPECS/qt-everywhere-opensource-src-5.8.0.spec b/ThirdParty/rpmBuild/SPECS/qt-everywhere-opensource-src-5.8.0.spec new file mode 100644 index 000000000..48c86a6ed --- /dev/null +++ b/ThirdParty/rpmBuild/SPECS/qt-everywhere-opensource-src-5.8.0.spec @@ -0,0 +1,175 @@ +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | foam-extend: Open Source CFD +# \\ / O peration | +# \\ / A nd | For copyright notice see file Copyright +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of foam-extend. +# +# foam-extend is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# foam-extend is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with foam-extend. If not, see . +# +# Script +# RPM spec file for qt-everywhere-opensource-src-5.8.0 +# +# Description +# RPM spec file for creating a relocatable RPM +# +# Author: +# Martin Beaudoin, Hydro-Quebec, (2015) +# Pascal Beckstein, HZDR, (2018) +# +#------------------------------------------------------------------------------ + +# We grab the value of WM_THIRD_PARTY and WM_OPTIONS from the environment variable +%{expand:%%define _WM_THIRD_PARTY_DIR %(echo $WM_THIRD_PARTY_DIR)} +%{expand:%%define _WM_OPTIONS %(echo $WM_OPTIONS)} + +# Disable the generation of debuginfo packages +%define debug_package %{nil} + +# The topdir needs to point to the $WM_THIRD_PARTY/rpmbuild directory +%define _topdir %{_WM_THIRD_PARTY_DIR}/rpmBuild +%define _tmppath %{_topdir}/tmp + +# Will install the package directly $WM_THIRD_PARTY_DIR +# Some comments about package relocation: +# By using this prefix for the Prefix: parameter in this file, you will make this +# package relocatable. +# +# This is fine, as long as your software is itself relocatable. +# +# Simply take note that libraries built with libtool are not relocatable because the +# prefix we specify will be hard-coded in the library .la files. +# Ref: http://sourceware.org/autobook/autobook/autobook_80.html +# +# In that case, if you ever change the value of the $WM_THIRD_PARTY_DIR, you will +# not be able to reutilize this RPM, even though it is relocatable. You will need to +# regenerate the RPM. +# +%define _prefix %{_WM_THIRD_PARTY_DIR} + +%define name qt-everywhere-opensource-src +%define release %{_WM_OPTIONS} +%define version 5.8.0 + +%define buildroot %{_topdir}/BUILD/%{name}-%{version}-root + +%define _unpackaged_files_terminate_build 0 +%define _missing_doc_files_terminate_build 0 + +BuildRoot: %{buildroot} +Summary: qt-everywhere-opensource-src +License: Unkown +Name: %{name} +Version: %{version} +Release: %{release} +URL: http://download.qt.io/archive/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz +Source: %url/%{name}-%{version}.tar.gz +Prefix: %{_prefix} +Group: Development/Tools + + +%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} + +%description +%{summary} + +%prep +%setup -q + +%build + # export WM settings in a form that GNU configure recognizes + [ -n "$WM_CC" ] && export CC="$WM_CC" + [ -n "$WM_CXX" ] && export CXX="$WM_CXX" + [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" + [ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" + [ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" + + ./configure \ + -opensource -confirm-license \ + -release -shared \ + -nomake examples \ + -prefix %{_installPrefix} + + # Explicitely specify LD_LIBRARY_PATH so it can find QT own libraries + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{_builddir}/%{name}-%{version}/lib + + [ -z "$WM_NCOMPPROCS" ] && WM_NCOMPPROCS=1 + make -j $WM_NCOMPPROCS + +%install + # Makefiles generated by qmake do not to support the DESTDIR= option + # We need to use the INSTALL_ROOT= option instead + + # Somehow, we need to clean up for the RPM to install properly + rm -rf %{_installPrefix} + + make install INSTALL_ROOT=$RPM_BUILD_ROOT + + # Creation of foam-extend specific .csh and .sh files" + + echo "" + echo "Generating foam-extend specific .csh and .sh files for the package %{name}-%{version}" + echo "" + # + # Generate package specific .sh file for foam-extend + # +mkdir -p $RPM_BUILD_ROOT/%{_installPrefix}/etc +cat << DOT_SH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.sh +# Load %{name}-%{version} libraries and binaries if available +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export QT_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS +export QT_BIN_DIR=\$QT_DIR/bin +export QT_LIB_DIR=\$QT_DIR/lib + +# Enable access to the runtime package applications +[ -d \$QT_BIN_DIR ] && _foamAddPath \$QT_BIN_DIR +[ -d \$QT_LIB_DIR ] && _foamAddLib \$QT_LIB_DIR +DOT_SH_EOF + + # + # Generate package specific .csh file for foam-extend + # +cat << DOT_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.csh +# Load %{name}-%{version} libraries and binaries if available +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +setenv QT_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS +setenv QT_BIN_DIR \$QT_DIR/bin +setenv QT_LIB_DIR \$QT_DIR/lib + +if ( -e \$QT_BIN_DIR ) then + _foamAddPath \$QT_BIN_DIR +endif + +if ( -e \$QT_LIB_DIR ) then + _foamAddLib \$QT_LIB_DIR +endif +DOT_CSH_EOF + + #finally, generate a .tgz file for systems where using rpm for installing packages + # as a non-root user might be a problem. + (mkdir -p %{_topdir}/TGZS/%{_target_cpu}; cd $RPM_BUILD_ROOT/%{_prefix}; tar -zcvf %{_topdir}/TGZS/%{_target_cpu}/%{name}-%{version}.tgz packages/%{name}-%{version}) + + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root) +%{_installPrefix} + + diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean deleted file mode 100755 index 3fdbeae44..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # run from this directory -set -x - -rm -rf PV3FoamReader/Make -wclean libso vtkPV3Foam - -# ----------------------------------------------------------------- end-of-file diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwmake b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwmake deleted file mode 100755 index d9c8bf299..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwmake +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -cd ${0%/*} || exit 1 # run from this directory -set -x - -if [ -d "$PARAVIEW_DIR" -a -r "$PARAVIEW_DIR" ] -then - case "$PARAVIEW_VERSION" in - 3*) - wmake libso vtkPV3Foam - ( - cd PV3FoamReader - mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1 - cd Make/$WM_OPTIONS - cmake ../.. - if [ "$WM_ARCH_BASE" == "darwin" ] - then - sed -i bak -e 's/-dynamiclib /& -undefined dynamic_lookup /' CMakeFiles/PV3FoamReader.dir/link.txt - sed -i bak -e 's/-dynamiclib /& -undefined dynamic_lookup /' CMakeFiles/PV3FoamReader_SM.dir/link.txt - fi - make - ) - ;; - esac -fi - -# ----------------------------------------------------------------- end-of-file diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/CMakeLists.txt deleted file mode 100644 index b9679bbf7..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -# create a plugin that adds a reader to the ParaView GUI -# it is added in the file dialog when doing opens/saves. - -# The qrc file is processed by Qt's resource compiler (rcc) -# the qrc file must have a resource prefix of "/ParaViewResources" -# and ParaView will read anything contained under that prefix -# the pqReader.xml file contains xml defining readers with their -# file extensions and descriptions. - -cmake_minimum_required(VERSION 2.4) - -if(COMMAND cmake_policy) - cmake_policy(SET CMP0003 NEW) -endif(COMMAND cmake_policy) - -FIND_PACKAGE(ParaView REQUIRED) -INCLUDE(${PARAVIEW_USE_FILE}) - -LINK_DIRECTORIES( - $ENV{FOAM_LIBBIN} -) - -INCLUDE_DIRECTORIES( - $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude - $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude - $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude - ${PROJECT_SOURCE_DIR}/../vtkPV3Foam -) - -ADD_DEFINITIONS( - -DWM_$ENV{WM_PRECISION_OPTION} - -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} -) - -# Set output library destination to plugin folder -SET( - LIBRARY_OUTPUT_PATH $ENV{PV_PLUGIN_PATH} - CACHE INTERNAL - "Single output directory for building all libraries." -) - -# Build the server-side plugin -ADD_PARAVIEW_PLUGIN( - PV3FoamReader_SM "1.0" - SERVER_MANAGER_XML PV3FoamReader_SM.xml - SERVER_MANAGER_SOURCES vtkPV3FoamReader.cxx -) - -# Build the client-side plugin -ADD_PARAVIEW_PLUGIN( - PV3FoamReader - "1.0" - GUI_RESOURCES PV3FoamReader.qrc -) - -TARGET_LINK_LIBRARIES( - PV3FoamReader_SM - OpenFOAM - finiteVolume - vtkPV3Foam - pqCore -) -#----------------------------------------------------------------------------- diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.qrc b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.qrc deleted file mode 100644 index 7394bb80d..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - PV3FoamReader.xml - - diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml deleted file mode 100644 index 123c736f5..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml deleted file mode 100644 index ef25ac037..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - Specifies the filename for the OpenFOAM Reader. - - - - - - - - Available timestep values. - - - - - - - - - - - Extrapolate internalField to non-constraint patches - - - - - - - Searches the polyMesh/sets/ directory - - - - - - - - ZoneMesh information is used to find {cell,face,point}Zones. - The polyMesh/ directory is only checked on startup. - - - - - - - - - Show patch names in render window. - - - - - - - - Cache the fvMesh in memory. - - - - - - - - - A simple way cause a reader GUI modification. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx deleted file mode 100644 index 47e919c9c..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx +++ /dev/null @@ -1,689 +0,0 @@ -/*========================================================================= - - Program: Visualization Toolkit - Module: $RCSfile: vtkPV3FoamReader.cxx,v $ - - Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen - All rights reserved. - See Copyright.txt or http://www.kitware.com/Copyright.htm for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notice for more information. - -=========================================================================*/ - -#include "vtkPV3FoamReader.h" - -#include "pqApplicationCore.h" -#include "pqRenderView.h" -#include "pqServerManagerModel.h" - -// VTK includes -#include "vtkCallbackCommand.h" -#include "vtkDataArraySelection.h" -#include "vtkInformation.h" -#include "vtkInformationVector.h" -#include "vtkMultiBlockDataSet.h" -#include "vtkObjectFactory.h" -#include "vtkSMRenderViewProxy.h" -#include "vtkStreamingDemandDrivenPipeline.h" -#include "vtkStringArray.h" - -// Foam includes -#include "vtkPV3Foam.H" - -vtkCxxRevisionMacro(vtkPV3FoamReader, "$Revision: 1.5$"); -vtkStandardNewMacro(vtkPV3FoamReader); - -#undef EXPERIMENTAL_TIME_CACHING - -vtkPV3FoamReader::vtkPV3FoamReader() -{ - Debug = 0; - vtkDebugMacro(<<"Constructor"); - - SetNumberOfInputPorts(0); - - FileName = NULL; - foamData_ = NULL; - - output0_ = NULL; - -#ifdef VTKPV3FOAM_DUALPORT - // Add second output for the Lagrangian - this->SetNumberOfOutputPorts(2); - vtkMultiBlockDataSet *lagrangian = vtkMultiBlockDataSet::New(); - lagrangian->ReleaseData(); - - this->GetExecutive()->SetOutputData(1, lagrangian); - lagrangian->Delete(); -#endif - - TimeStepRange[0] = 0; - TimeStepRange[1] = 0; - - CacheMesh = 1; - - ExtrapolatePatches = 0; - IncludeSets = 0; - IncludeZones = 0; - ShowPatchNames = 0; - - UpdateGUI = 0; - - PartSelection = vtkDataArraySelection::New(); - VolFieldSelection = vtkDataArraySelection::New(); - PointFieldSelection = vtkDataArraySelection::New(); - LagrangianFieldSelection = vtkDataArraySelection::New(); - - // Setup the selection callback to modify this object when an array - // selection is changed. - SelectionObserver = vtkCallbackCommand::New(); - SelectionObserver->SetCallback - ( - &vtkPV3FoamReader::SelectionModifiedCallback - ); - SelectionObserver->SetClientData(this); - - PartSelection->AddObserver - ( - vtkCommand::ModifiedEvent, - this->SelectionObserver - ); - VolFieldSelection->AddObserver - ( - vtkCommand::ModifiedEvent, - this->SelectionObserver - ); - PointFieldSelection->AddObserver - ( - vtkCommand::ModifiedEvent, - this->SelectionObserver - ); - LagrangianFieldSelection->AddObserver - ( - vtkCommand::ModifiedEvent, - this->SelectionObserver - ); -} - - -vtkPV3FoamReader::~vtkPV3FoamReader() -{ - vtkDebugMacro(<<"Deconstructor"); - - delete foamData_; - - if (FileName) - { - delete [] FileName; - } - - if (output0_) - { - output0_->Delete(); - } - - - PartSelection->RemoveObserver(this->SelectionObserver); - VolFieldSelection->RemoveObserver(this->SelectionObserver); - PointFieldSelection->RemoveObserver(this->SelectionObserver); - LagrangianFieldSelection->RemoveObserver(this->SelectionObserver); - - SelectionObserver->Delete(); - - PartSelection->Delete(); - VolFieldSelection->Delete(); - PointFieldSelection->Delete(); - LagrangianFieldSelection->Delete(); -} - - -// Do everything except set the output info -int vtkPV3FoamReader::RequestInformation -( - vtkInformation* vtkNotUsed(request), - vtkInformationVector** vtkNotUsed(inputVector), - vtkInformationVector* outputVector -) -{ - vtkDebugMacro(<<"RequestInformation"); - - if (Foam::vtkPV3Foam::debug) - { - cout<<"REQUEST_INFORMATION\n"; - } - - if (!FileName) - { - vtkErrorMacro("FileName has to be specified!"); - return 0; - } - - int nInfo = outputVector->GetNumberOfInformationObjects(); - - if (Foam::vtkPV3Foam::debug) - { - cout<<"RequestInformation with " << nInfo << " item(s)\n"; - for (int infoI = 0; infoI < nInfo; ++infoI) - { - outputVector->GetInformationObject(infoI)->Print(cout); - } - } - - if (!foamData_) - { - foamData_ = new Foam::vtkPV3Foam(FileName, this); - } - else - { - foamData_->updateInfo(); - } - - int nTimeSteps = 0; - double* timeSteps = foamData_->findTimes(nTimeSteps); - - if (!nTimeSteps) - { - vtkErrorMacro("could not find valid OpenFOAM mesh"); - - // delete foamData and flag it as fatal error - delete foamData_; - foamData_ = NULL; - return 0; - } - - // set identical time steps for all ports - for (int infoI = 0; infoI < nInfo; ++infoI) - { - outputVector->GetInformationObject(infoI)->Set - ( - vtkStreamingDemandDrivenPipeline::TIME_STEPS(), - timeSteps, - nTimeSteps - ); - } - - if (nTimeSteps) - { - double timeRange[2]; - timeRange[0] = timeSteps[0]; - timeRange[1] = timeSteps[nTimeSteps-1]; - - if (Foam::vtkPV3Foam::debug > 1) - { - cout<<"nTimeSteps " << nTimeSteps << "\n" - <<"timeRange " << timeRange[0] << " to " << timeRange[1] - << "\n"; - - for (int timeI = 0; timeI < nTimeSteps; ++timeI) - { - cout<< "step[" << timeI << "] = " << timeSteps[timeI] << "\n"; - } - } - - for (int infoI = 0; infoI < nInfo; ++infoI) - { - outputVector->GetInformationObject(infoI)->Set - ( - vtkStreamingDemandDrivenPipeline::TIME_RANGE(), - timeRange, - 2 - ); - } - } - - delete timeSteps; - - return 1; -} - - -// Set the output info -int vtkPV3FoamReader::RequestData -( - vtkInformation* vtkNotUsed(request), - vtkInformationVector** vtkNotUsed(inputVector), - vtkInformationVector* outputVector -) -{ - vtkDebugMacro(<<"RequestData"); - - if (!FileName) - { - vtkErrorMacro("FileName has to be specified!"); - return 0; - } - - // catch previous error - if (!foamData_) - { - vtkErrorMacro("Reader failed - perhaps no mesh?"); - return 0; - } - - int nInfo = outputVector->GetNumberOfInformationObjects(); - - if (Foam::vtkPV3Foam::debug) - { - cout<<"RequestData with " << nInfo << " item(s)\n"; - for (int infoI = 0; infoI < nInfo; ++infoI) - { - outputVector->GetInformationObject(infoI)->Print(cout); - } - } - - // Get the requested time step. - // We only support requests for a single time step - - int nRequestTime = 0; - double requestTime[nInfo]; - - // taking port0 as the lead for other outputs would be nice, but fails when - // a filter is added - we need to check everything - // but since PREVIOUS_UPDATE_TIME_STEPS() is protected, relay the logic - // to the vtkPV3Foam::setTime() method - for (int infoI = 0; infoI < nInfo; ++infoI) - { - vtkInformation *outInfo = outputVector->GetInformationObject(infoI); - - if - ( - outInfo->Has - ( - vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS() - ) - && outInfo->Length - ( - vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS() - ) >= 1 - ) - { - requestTime[nRequestTime++] = outInfo->Get - ( - vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS() - )[0]; - } - } - - if (nRequestTime) - { - foamData_->setTime(nRequestTime, requestTime); - } - - - vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast - ( - outputVector->GetInformationObject(0)->Get - ( - vtkMultiBlockDataSet::DATA_OBJECT() - ) - ); - - if (Foam::vtkPV3Foam::debug) - { - cout<< "update output with " - << output->GetNumberOfBlocks() << " blocks\n"; - } - - -#ifdef EXPERIMENTAL_TIME_CACHING - bool needsUpdate = false; - - if (!output0_) - { - output0_ = vtkMultiBlockDataSet::New(); - needsUpdate = true; - } - - // This experimental bit of code seems to work for the geometry, - // but trashes the fields and still triggers the GeometryFilter - if (needsUpdate) - { - foamData_->Update(output); - output0_->ShallowCopy(output); - } - else - { - output->ShallowCopy(output0_); - } - - if (Foam::vtkPV3Foam::debug) - { - if (needsUpdate) - { - cout<< "full UPDATE ---------\n"; - } - else - { - cout<< "cached UPDATE ---------\n"; - } - - cout<< "UPDATED output: "; - output->Print(cout); - - cout<< "UPDATED output0_: "; - output0_->Print(cout); - } - -#else - -#ifdef VTKPV3FOAM_DUALPORT - foamData_->Update - ( - output, - vtkMultiBlockDataSet::SafeDownCast - ( - outputVector->GetInformationObject(1)->Get - ( - vtkMultiBlockDataSet::DATA_OBJECT() - ) - ); - ); -#else - foamData_->Update(output, output); -#endif - - if (ShowPatchNames) - { - addPatchNamesToView(); - } - else - { - removePatchNamesFromView(); - } - -#endif - - // Do any cleanup on the Foam side - foamData_->CleanUp(); - - return 1; -} - - -void vtkPV3FoamReader::addPatchNamesToView() -{ - pqApplicationCore* appCore = pqApplicationCore::instance(); - - // Server manager model for querying items in the server manager - pqServerManagerModel* smModel = appCore->getServerManagerModel(); - - // Get all the pqRenderView instances - QList renderViews = smModel->findItems(); - - for (int viewI=0; viewIaddPatchNames - ( - renderViews[viewI]->getRenderViewProxy()->GetRenderer() - ); - } -} - - -void vtkPV3FoamReader::removePatchNamesFromView() -{ - pqApplicationCore* appCore = pqApplicationCore::instance(); - - // Server manager model for querying items in the server manager - pqServerManagerModel* smModel = appCore->getServerManagerModel(); - - // Get all the pqRenderView instances - QList renderViews = smModel->findItems(); - - for (int viewI=0; viewIremovePatchNames - ( - renderViews[viewI]->getRenderViewProxy()->GetRenderer() - ); - } -} - - -void vtkPV3FoamReader::PrintSelf(ostream& os, vtkIndent indent) -{ - vtkDebugMacro(<<"PrintSelf"); - - this->Superclass::PrintSelf(os,indent); - os<< indent << "File name: " - << (this->FileName ? this->FileName : "(none)") << "\n"; - - foamData_->PrintSelf(os, indent); - - os<< indent << "Time step range: " - << this->TimeStepRange[0] << " - " << this->TimeStepRange[1] - << "\n"; - os<< indent << "Time step: " << this->GetTimeStep() << endl; -} - - -int vtkPV3FoamReader::GetTimeStep() -{ - return foamData_ ? foamData_->timeIndex() : -1; -} - - -// ---------------------------------------------------------------------- -// Parts selection list control - -vtkDataArraySelection* vtkPV3FoamReader::GetPartSelection() -{ - vtkDebugMacro(<<"GetPartSelection"); - return PartSelection; -} - - -int vtkPV3FoamReader::GetNumberOfPartArrays() -{ - vtkDebugMacro(<<"GetNumberOfPartArrays"); - return PartSelection->GetNumberOfArrays(); -} - - -const char* vtkPV3FoamReader::GetPartArrayName(int index) -{ - vtkDebugMacro(<<"GetPartArrayName"); - return PartSelection->GetArrayName(index); -} - - -int vtkPV3FoamReader::GetPartArrayStatus(const char* name) -{ - vtkDebugMacro(<<"GetPartArrayStatus"); - return PartSelection->ArrayIsEnabled(name); -} - - -void vtkPV3FoamReader::SetPartArrayStatus(const char* name, int status) -{ - vtkDebugMacro(<<"SetPartArrayStatus"); - if (status) - { - PartSelection->EnableArray(name); - } - else - { - PartSelection->DisableArray(name); - } -} - - -// ---------------------------------------------------------------------- -// volField selection list control - -vtkDataArraySelection* vtkPV3FoamReader::GetVolFieldSelection() -{ - vtkDebugMacro(<<"GetVolFieldSelection"); - return VolFieldSelection; -} - - -int vtkPV3FoamReader::GetNumberOfVolFieldArrays() -{ - vtkDebugMacro(<<"GetNumberOfVolFieldArrays"); - return VolFieldSelection->GetNumberOfArrays(); -} - - -const char* vtkPV3FoamReader::GetVolFieldArrayName(int index) -{ - vtkDebugMacro(<<"GetVolFieldArrayName"); - return VolFieldSelection->GetArrayName(index); -} - - -int vtkPV3FoamReader::GetVolFieldArrayStatus(const char* name) -{ - vtkDebugMacro(<<"GetVolFieldArrayStatus"); - return VolFieldSelection->ArrayIsEnabled(name); -} - - -void vtkPV3FoamReader::SetVolFieldArrayStatus(const char* name, int status) -{ - vtkDebugMacro(<<"SetVolFieldArrayStatus"); - if (status) - { - VolFieldSelection->EnableArray(name); - } - else - { - VolFieldSelection->DisableArray(name); - } -} - - -// ---------------------------------------------------------------------- -// pointField selection list control - -vtkDataArraySelection* vtkPV3FoamReader::GetPointFieldSelection() -{ - vtkDebugMacro(<<"GetPointFieldSelection"); - return PointFieldSelection; -} - - -int vtkPV3FoamReader::GetNumberOfPointFieldArrays() -{ - vtkDebugMacro(<<"GetNumberOfPointFieldArrays"); - return PointFieldSelection->GetNumberOfArrays(); -} - - -const char* vtkPV3FoamReader::GetPointFieldArrayName(int index) -{ - vtkDebugMacro(<<"GetPointFieldArrayName"); - return PointFieldSelection->GetArrayName(index); -} - - -int vtkPV3FoamReader::GetPointFieldArrayStatus(const char* name) -{ - vtkDebugMacro(<<"GetPointFieldArrayStatus"); - return PointFieldSelection->ArrayIsEnabled(name); -} - - -void vtkPV3FoamReader::SetPointFieldArrayStatus(const char* name, int status) -{ - vtkDebugMacro(<<"SetPointFieldArrayStatus"); - if (status) - { - PointFieldSelection->EnableArray(name); - } - else - { - PointFieldSelection->DisableArray(name); - } -} - - -// ---------------------------------------------------------------------- -// lagrangianField selection list control - -vtkDataArraySelection* vtkPV3FoamReader::GetLagrangianFieldSelection() -{ - vtkDebugMacro(<<"GetLagrangianFieldSelection"); - return LagrangianFieldSelection; -} - - -int vtkPV3FoamReader::GetNumberOfLagrangianFieldArrays() -{ - vtkDebugMacro(<<"GetNumberOfLagrangianFieldArrays"); - return LagrangianFieldSelection->GetNumberOfArrays(); -} - - -const char* vtkPV3FoamReader::GetLagrangianFieldArrayName(int index) -{ - vtkDebugMacro(<<"GetLagrangianFieldArrayName"); - return LagrangianFieldSelection->GetArrayName(index); -} - - -int vtkPV3FoamReader::GetLagrangianFieldArrayStatus(const char* name) -{ - vtkDebugMacro(<<"GetLagrangianFieldArrayStatus"); - return LagrangianFieldSelection->ArrayIsEnabled(name); -} - - -void vtkPV3FoamReader::SetLagrangianFieldArrayStatus -( - const char* name, - int status -) -{ - vtkDebugMacro(<<"SetLagrangianFieldArrayStatus"); - if (status) - { - LagrangianFieldSelection->EnableArray(name); - } - else - { - LagrangianFieldSelection->DisableArray(name); - } -} - - -// ---------------------------------------------------------------------- - -void vtkPV3FoamReader::SelectionModifiedCallback -( - vtkObject*, - unsigned long, - void* clientdata, - void* -) -{ - static_cast(clientdata)->SelectionModified(); -} - - -void vtkPV3FoamReader::SelectionModified() -{ - vtkDebugMacro(<<"SelectionModified"); - Modified(); -} - - -int vtkPV3FoamReader::FillOutputPortInformation -( - int port, - vtkInformation* info -) -{ - if (port == 0) - { - return this->Superclass::FillOutputPortInformation(port, info); - } - info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkMultiBlockDataSet"); - return 1; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h deleted file mode 100644 index bc21cd8ce..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h +++ /dev/null @@ -1,211 +0,0 @@ -/*========================================================================= - - Program: Visualization Toolkit - Module: $RCSfile: vtkPV3FoamReader.h,v $ - - Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen - All rights reserved. - See Copyright.txt or http://www.kitware.com/Copyright.htm for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notice for more information. - -=========================================================================*/ -// .NAME vtkPV3FoamReader - reads a dataset in OpenFOAM format -// .SECTION Description -// vtkPV3FoamReader creates an multiblock dataset. -// It uses the OpenFOAM infrastructure (fvMesh, etc) to -// handle mesh and field data. - -#ifndef __vtkPV3FoamReader_h -#define __vtkPV3FoamReader_h - -// Foam forward declarations -namespace Foam -{ - class vtkPV3Foam; -} - -// VTK includes -#include "vtkMultiBlockDataSetAlgorithm.h" - -// VTK forward declarations -class vtkDataArraySelection; -class vtkCallbackCommand; - - -class VTK_IO_EXPORT vtkPV3FoamReader -: - public vtkMultiBlockDataSetAlgorithm -{ -public: - vtkTypeRevisionMacro(vtkPV3FoamReader,vtkMultiBlockDataSetAlgorithm); - void PrintSelf(ostream&, vtkIndent); - - static vtkPV3FoamReader* New(); - - // Description: - // Get the current timestep and the timestep range. - vtkGetVector2Macro(TimeStepRange, int); - - // Description: - // Set/Get the filename. - vtkSetStringMacro(FileName); - vtkGetStringMacro(FileName); - - // Description: - // GUI update control - vtkSetMacro(UpdateGUI, int); - vtkGetMacro(UpdateGUI, int); - - // Description: - // FOAM mesh caching control - vtkSetMacro(CacheMesh, int); - vtkGetMacro(CacheMesh, int); - - // Description: - // FOAM extrapolate internal values onto the patches - vtkSetMacro(ExtrapolatePatches, int); - vtkGetMacro(ExtrapolatePatches, int); - - // FOAM read sets control - vtkSetMacro(IncludeSets, int); - vtkGetMacro(IncludeSets, int); - - // Description: - // FOAM read zones control - vtkSetMacro(IncludeZones, int); - vtkGetMacro(IncludeZones, int); - - // Description: - // FOAM display patch names control - vtkSetMacro(ShowPatchNames, int); - vtkGetMacro(ShowPatchNames, int); - - // Description: - // Get the current timestep - int GetTimeStep(); - - // Description: - // Parts selection list control - vtkDataArraySelection* GetPartSelection(); - int GetNumberOfPartArrays(); - int GetPartArrayStatus(const char* name); - void SetPartArrayStatus(const char* name, int status); - const char* GetPartArrayName(int index); - - // Description: - // volField selection list control - vtkDataArraySelection* GetVolFieldSelection(); - int GetNumberOfVolFieldArrays(); - int GetVolFieldArrayStatus(const char* name); - void SetVolFieldArrayStatus(const char* name, int status); - const char* GetVolFieldArrayName(int index); - - // Description: - // pointField selection list control - vtkDataArraySelection* GetPointFieldSelection(); - int GetNumberOfPointFieldArrays(); - int GetPointFieldArrayStatus(const char* name); - void SetPointFieldArrayStatus(const char* name, int status); - const char* GetPointFieldArrayName(int index); - - // Description: - // lagrangianField selection list control - vtkDataArraySelection* GetLagrangianFieldSelection(); - int GetNumberOfLagrangianFieldArrays(); - int GetLagrangianFieldArrayStatus(const char* name); - void SetLagrangianFieldArrayStatus(const char* name, int status); - const char* GetLagrangianFieldArrayName(int index); - - // Description: - // Callback registered with the SelectionObserver - // for all the selection lists - static void SelectionModifiedCallback - ( - vtkObject* caller, - unsigned long eid, - void* clientdata, - void* calldata - ); - - void SelectionModified(); - - -protected: - - //- Construct null - vtkPV3FoamReader(); - - //- Destructor - ~vtkPV3FoamReader(); - - //- Return information about mesh, times, etc without loading anything - virtual int RequestInformation - ( - vtkInformation*, - vtkInformationVector**, - vtkInformationVector* - ); - - //- Get the mesh/fields for a particular time - //- Destructor - virtual int RequestData - ( - vtkInformation*, - vtkInformationVector**, - vtkInformationVector* - ); - - //- Fill in additional port information - virtual int FillOutputPortInformation(int, vtkInformation*); - - // The observer to modify this object when array selections are modified - vtkCallbackCommand* SelectionObserver; - - char* FileName; - -private: - - //- Disallow default bitwise copy construct - vtkPV3FoamReader(const vtkPV3FoamReader&); - - //- Disallow default bitwise assignment - void operator=(const vtkPV3FoamReader&); - - //- Add patch names to the view - void addPatchNamesToView(); - - //- Remove patch names from the view - void removePatchNamesFromView(); - - int TimeStepRange[2]; - int CacheMesh; - - int ExtrapolatePatches; - int IncludeSets; - int IncludeZones; - int ShowPatchNames; - - //- Dummy variable/switch for invoke a reader update - int UpdateGUI; - - vtkDataArraySelection* PartSelection; - vtkDataArraySelection* VolFieldSelection; - vtkDataArraySelection* PointFieldSelection; - vtkDataArraySelection* LagrangianFieldSelection; - - //- Cached data for output port0 (experimental!) - vtkMultiBlockDataSet* output0_; - - //BTX - Foam::vtkPV3Foam* foamData_; - //ETX -}; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files deleted file mode 100644 index 9699e3c71..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/files +++ /dev/null @@ -1,12 +0,0 @@ -vtkPV3Foam.C -vtkPV3FoamFields.C -vtkPV3FoamMesh.C -vtkPV3FoamMeshLagrangian.C -vtkPV3FoamMeshPatch.C -vtkPV3FoamMeshSet.C -vtkPV3FoamMeshVolume.C -vtkPV3FoamMeshZone.C -vtkPV3FoamUpdateInfo.C -vtkPV3FoamUtilities.C - -LIB = $(FOAM_LIBBIN)/libvtkPV3Foam diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options deleted file mode 100644 index dc4c83c7e..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/Make/options +++ /dev/null @@ -1,12 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/lagrangian/basic/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(PARAVIEW_INCLUDE_DIR) \ - -I../PV3FoamReader - -LIB_LIBS = \ - -lfiniteVolume \ - -llagrangian \ - -lmeshTools \ - $(GLIBS) diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkOpenFOAMTupleRemap.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkOpenFOAMTupleRemap.H deleted file mode 100644 index 88a34af02..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkOpenFOAMTupleRemap.H +++ /dev/null @@ -1,71 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | foam-extend: Open Source CFD - \\ / O peration | Version: 4.0 - \\ / A nd | Web: http://www.foam-extend.org - \\/ M anipulation | For copyright notice see file Copyright -------------------------------------------------------------------------------- -License - This file is part of foam-extend. - - foam-extend is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your - option) any later version. - - foam-extend is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with foam-extend. If not, see . - -InClass - vtkPV3Foam - -\*---------------------------------------------------------------------------*/ - -#ifndef vtkFOAMTupleRemap_H -#define vtkFOAMTupleRemap_H - -// FOAM includes -#include "StaticAssert.H" -#include "Swap.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -template -inline void vtkFOAMTupleRemap(float vec[]); - - -// a symmTensor specialization to remap FOAM -> ParaView naming order -// Qt/Core/pqScalarBarRepresentation.cxx defines this order -// { "XX", "YY", "ZZ", "XY", "YZ", "XZ" } -// in pqScalarBarRepresentation::getDefaultComponentLabel() -// whereas FOAM uses this order -// { XX, XY, XZ, YY, YZ, ZZ } -// -// for extra safety, assert that symmTensor indeed has 6 components -StaticAssert(Foam::symmTensor::nComponents == 6); - - -// Template specialization for symmTensor -template<> -inline void vtkFOAMTupleRemap(float vec[]) -{ - Foam::Swap(vec[1], vec[3]); // swap XY <-> YY - Foam::Swap(vec[2], vec[5]); // swap XZ <-> ZZ -} - - -template -inline void vtkFOAMTupleRemap(float vec[]) -{} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H deleted file mode 100644 index d7d231322..000000000 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H +++ /dev/null @@ -1,757 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | foam-extend: Open Source CFD - \\ / O peration | Version: 4.0 - \\ / A nd | Web: http://www.foam-extend.org - \\/ M anipulation | For copyright notice see file Copyright -------------------------------------------------------------------------------- -License - This file is part of foam-extend. - - foam-extend is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your - option) any later version. - - foam-extend is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with foam-extend. If not, see . - -Class - Foam::vtkPV3Foam - -Description - Provides a reader interface for FOAM to VTK interaction. - -SourceFiles - vtkPV3Foam.C - vtkPV3Foam.H - vtkPV3FoamI.H - vtkPV3FoamFields.C - vtkPV3FoamMesh.C - vtkPV3FoamMeshLagrangian.C - vtkPV3FoamMeshPatch.C - vtkPV3FoamMeshSet.C - vtkPV3FoamMeshVolume.C - vtkPV3FoamMeshZone.C - vtkPV3FoamFaceField.H - vtkPV3FoamLagrangianFields.H - vtkPV3FoamPatchField.H - vtkPV3FoamPointFields.H - vtkPV3FoamPoints.H - vtkPV3FoamUpdateInfo.C - vtkPV3FoamUpdateInfoFields.H - vtkPV3FoamUtilities.C - vtkPV3FoamVolFields.H - vtkPV3FoamAddToSelection.H - - // Needed by VTK: - vtkDataArrayTemplateImplicit.txx - -\*---------------------------------------------------------------------------*/ - -#ifndef vtkPV3Foam_H -#define vtkPV3Foam_H - -// do not include legacy strstream headers -#ifndef VTK_EXCLUDE_STRSTREAM_HEADERS -# define VTK_EXCLUDE_STRSTREAM_HEADERS -#endif - -#include "className.H" -#include "fileName.H" -#include "stringList.H" -#include "wordList.H" -#include "primitivePatch.H" -#include "PrimitivePatchInterpolation.H" -#include "volPointInterpolation.H" - -#undef VTKPV3FOAM_DUALPORT - -// * * * * * * * * * * * * * Forward Declarations * * * * * * * * * * * * * // - -class vtkDataArraySelection; -class vtkDataSet; -class vtkPoints; -class vtkPV3FoamReader; -class vtkRenderer; -class vtkTextActor; -class vtkMultiBlockDataSet; -class vtkPolyData; -class vtkUnstructuredGrid; -class vtkIndent; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Foam class forward declarations -class argList; -class Time; -class fvMesh; -class IOobjectList; -class polyPatch; -class faceSet; -class pointSet; - -template class IOField; -template class List; - -/*---------------------------------------------------------------------------*\ - Class vtkPV3Foam Declaration -\*---------------------------------------------------------------------------*/ - -class vtkPV3Foam -{ - // Private classes - - //- Bookkeeping for GUI checklists and the multi-block organization - class partInfo - { - const char *name_; - int block_; - int start_; - int size_; - - public: - - partInfo(const char *name, const int blockNo=0) - : - name_(name), - block_(blockNo), - start_(-1), - size_(0) - {} - - //- Return the block holding these datasets - int block() const - { - return block_; - } - - //- Assign block number, return previous value - int block(int blockNo) - { - int prev = block_; - block_ = blockNo; - return prev; - } - - const char* name() const - { - return name_; - } - - int start() const - { - return start_; - } - - int end() const - { - return start_ + size_; - } - - int size() const - { - return size_; - } - - bool empty() const - { - return !size_; - } - - void reset() - { - start_ = -1; - size_ = 0; - } - - //- Assign new start and reset the size - void operator=(const int i) - { - start_ = i; - size_ = 0; - } - - //- Increment the size - void operator+=(const int n) - { - size_ += n; - } - }; - - //- bookkeeping for polyhedral cell decomposition - // hide in extra pointMap (cellSet/cellZone) for now - class polyDecomp - { - labelList superCells_; - labelList addPointCellLabels_; - labelList pointMap_; - - public: - - polyDecomp() - {} - - //- Label of original cell for decomposed cells - labelList& superCells() - { - return superCells_; - } - - //- Label of original cell for decomposed cells - const labelList& superCells() const - { - return superCells_; - } - - //- Cell-centre labels for additional points of decomposed cells - labelList& addPointCellLabels() - { - return addPointCellLabels_; - } - - //- Cell-centre labels for additional points of decomposed cells - const labelList& addPointCellLabels() const - { - return addPointCellLabels_; - } - - //- Point labels for subsetted meshes - labelList& pointMap() - { - return pointMap_; - } - - //- Point labels for subsetted meshes - const labelList& pointMap() const - { - return pointMap_; - } - - - //- Clear - void clear() - { - superCells_.clear(); - addPointCellLabels_.clear(); - pointMap_.clear(); - } - }; - - - // Private Data - - //- Access to the controlling vtkPV3FoamReader - vtkPV3FoamReader* reader_; - - //- Foam time control - autoPtr