Merge branch 'HJ/AdjointImmersedBoundary' into masterSF
Conflicts: ThirdParty/AllMake.stage1 ThirdParty/AllMake.stage4 ThirdParty/rpmBuild/SOURCES/libccmio-2.6.1.patch_0 ThirdParty/rpmBuild/SPECS/ParaView-3.12.0.spec ThirdParty/rpmBuild/SPECS/libccmio-2.6.1.spec ThirdParty/rpmBuild/SPECS/mesquite-2.1.2.spec ThirdParty/rpmBuild/SPECS/qt-everywhere-opensource-src-4.7.4.spec etc/prefs.csh-EXAMPLE etc/prefs.sh-EXAMPLE etc/settings.csh etc/settings.sh src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.C src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.C src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/reconCentral/reconCentral.C testHarness/OSIG/Turbomachinery/README.txt testHarness/OpenFOAM/1.6-ext/CMakeFiles/CMakeLists.txt
This commit is contained in:
commit
e394390d8f
1363 changed files with 293569 additions and 17724 deletions
6
ThirdParty/AllMake
vendored
6
ThirdParty/AllMake
vendored
|
@ -71,6 +71,12 @@ echo
|
||||||
# Running stage 4
|
# Running stage 4
|
||||||
./AllMake.stage4
|
./AllMake.stage4
|
||||||
|
|
||||||
|
# Running stage 5
|
||||||
|
# This stage depends on a properly compiled installation
|
||||||
|
# of OpenFOAM. On a brand new installation of OpenFOAM-1.6-ext,
|
||||||
|
# this stage should be called last in your compilation process
|
||||||
|
./AllMake.stage5
|
||||||
|
|
||||||
echo ========================================
|
echo ========================================
|
||||||
echo Done ThirdParty Allwmake
|
echo Done ThirdParty Allwmake
|
||||||
echo ========================================
|
echo ========================================
|
||||||
|
|
11
ThirdParty/AllMake.stage3
vendored
11
ThirdParty/AllMake.stage3
vendored
|
@ -125,6 +125,17 @@ fi
|
||||||
# echo ""
|
# echo ""
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
|
# PyFoam
|
||||||
|
if [ -z "$PYFOAM_SYSTEM" ]
|
||||||
|
then
|
||||||
|
# ( rpm_make -p PyFoam-0.5.6 -s PyFoam-0.5.6.spec -u http://openfoamwiki.net/images/b/b8/PyFoam-0.5.6.tar.gz -n PyFoam-0.5.6-1.noarch -a noarch)
|
||||||
|
( rpm_make -p PyFoam-0.5.7 -s PyFoam-0.5.7.spec -u http://openfoamwiki.net/images/d/dc/PyFoam-0.5.7.tar.gz -n PyFoam-0.5.7-1.noarch -a noarch)
|
||||||
|
else
|
||||||
|
echo "Using system installed PyFoam"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
echo ========================================
|
echo ========================================
|
||||||
echo Done ThirdParty AllMake: Stage3
|
echo Done ThirdParty AllMake: Stage3
|
||||||
echo ========================================
|
echo ========================================
|
||||||
|
|
113
ThirdParty/AllMake.stage5
vendored
Executable file
113
ThirdParty/AllMake.stage5
vendored
Executable file
|
@ -0,0 +1,113 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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 Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# AllMake.stage5
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# Build script for ThirdParty packages not requiring rpm packaging
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# 1: Your OpenFOAM environment must be properly initialized
|
||||||
|
# 2: OpenFOAM must already been compiled because swak4Foam depends on
|
||||||
|
# OpenFOAM include files and libraries
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2012)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# run from Third-party directory only
|
||||||
|
cd ${0%/*} || exit 1
|
||||||
|
|
||||||
|
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||||
|
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||||
|
echo " The environment variables are inconsistent with the installation."
|
||||||
|
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "Starting ThirdParty AllMake: Stage5 "
|
||||||
|
echo "========================================"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# swak4Foam - Version 0.2.0
|
||||||
|
# In fact, we are basically tracking the head branch from the Mercurial repository
|
||||||
|
# which is also replicated under the Breeder_1.7 section of the Subversion repository
|
||||||
|
#
|
||||||
|
if [ -z "$SWAK4FOAM_SYSTEM" ]
|
||||||
|
then
|
||||||
|
# Do we need to download the source code?
|
||||||
|
# We choose to put the source code under ./rpmBuild/BUILD prior to compiling.
|
||||||
|
# We will not generate a rpm package, but all ThirdParty source code will be
|
||||||
|
# centralized under the same scratch area
|
||||||
|
if [ ! -e ./rpmBuild/BUILD/swak4Foam-0.2.0 ];
|
||||||
|
then
|
||||||
|
echo "Checking for a Mercurial client: hg"
|
||||||
|
command -v hg >/dev/null
|
||||||
|
if [ $? -eq 0 ];
|
||||||
|
then
|
||||||
|
echo "Using Mercurial/hg to download the source code for swak4Foam"
|
||||||
|
(cd ./rpmBuild/BUILD; hg clone http://openfoam-extend.hg.sourceforge.net:8000/hgroot/openfoam-extend/swak4Foam swak4Foam-0.2.0)
|
||||||
|
else
|
||||||
|
echo "Warning: Mercurial/hg is not installed. Switching to an alternate Subversion repository"
|
||||||
|
command -v svn >/dev/null
|
||||||
|
if [ $? -eq 0 ];
|
||||||
|
then
|
||||||
|
echo "Using Subversion/svn to download the source code for swak4Foam"
|
||||||
|
(cd ./rpmBuild/BUILD; svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.7/libraries/swak4Foam swak4Foam-0.2.0)
|
||||||
|
else
|
||||||
|
echo "Error: Please install either a Mercurial or Subversion client in order to download the source code for swak4Foam"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# We move the compilation results directly to $FOAM_SITE_APPBIN and $FOAM_SITE_LIBBIN
|
||||||
|
# If you prefer to keep the libraries and tools under $FOAM_USER_LIBBIN and $FOAM_USER_APPBIN, simply
|
||||||
|
# comment out the next two lines
|
||||||
|
(cd ./rpmBuild/BUILD/swak4Foam-0.2.0; find . -name files | xargs -n 1 sed -i.old "s/FOAM_USER/FOAM_SITE/g")
|
||||||
|
(cd ./rpmBuild/BUILD/swak4Foam-0.2.0; find . -name options | xargs -n 1 sed -i.old "s/FOAM_USER/FOAM_SITE/g")
|
||||||
|
|
||||||
|
# We recompile everything
|
||||||
|
(cd ./rpmBuild/BUILD/swak4Foam-0.2.0; ./Allwclean; ./Allwmake)
|
||||||
|
else
|
||||||
|
echo "The source code for swak4Foam is already present under ./rpmBuild/BUILD/swak4Foam-0.2.0"
|
||||||
|
echo "Please remove this directory if you want to refresh your installation of swak4Foam"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "Using system installed swak4Foam"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "Done ThirdParty AllMake: Stage5 "
|
||||||
|
echo "========================================"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------- end-of-file
|
||||||
|
|
||||||
|
|
68
ThirdParty/AllMake.stage6
vendored
Executable file
68
ThirdParty/AllMake.stage6
vendored
Executable file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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 Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# AllMake.stage6
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# Build script for ThirdParty packages located under LocalDev
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# 1: Your OpenFOAM environment must be properly initialized
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2012)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# run from Third-party directory only
|
||||||
|
cd ${0%/*} || exit 1
|
||||||
|
|
||||||
|
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||||
|
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||||
|
echo " The environment variables are inconsistent with the installation."
|
||||||
|
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "Starting ThirdParty AllMake: Stage6 "
|
||||||
|
echo "========================================"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Local developments from Hydro-Quebec (Turbomachinery)
|
||||||
|
# Temporary solution until we find a more suitable place
|
||||||
|
# for this. MB
|
||||||
|
(cd ./LocalDev/Hydro-Quebec/PyFoam; ./AllMake)
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "Done ThirdParty AllMake: Stage6 "
|
||||||
|
echo "========================================"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------- end-of-file
|
||||||
|
|
||||||
|
|
73
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/AllMake
vendored
Executable file
73
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/AllMake
vendored
Executable file
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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 Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# AllMake
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# Installation script for local development
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2012)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
command -v python -V >/dev/null
|
||||||
|
if [ ! $? -eq 0 ];
|
||||||
|
then
|
||||||
|
echo "Error: You need to install python in order to run these PyFoam scripts"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$PYFOAM_DIR" ]
|
||||||
|
then
|
||||||
|
echo "Error: Missing environment variable \$PYFOAM_DIR."
|
||||||
|
echo " Please execute the script ThirdParty/AllMake.stage5 to install PyFoam."
|
||||||
|
echo " Then, make sure to freshen your OpenFOAM environment by sourcing your main"
|
||||||
|
echo " OpenFOAM configuration file."
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pythonVersion=$(python -V 2>&1 | awk -F ' ' {'print $2'} | awk -F \. {'print $1 "." $2'})
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# pyFoamChangeMixingPlaneBoundary.py
|
||||||
|
cp pyFoamChangeMixingPlaneBoundary.py $PYFOAM_DIR/bin
|
||||||
|
cp ChangeMixingPlaneBoundary.py $PYFOAM_DIR/lib/python$pythonVersion/site-packages/PyFoam/Applications
|
||||||
|
|
||||||
|
# pyFoamChangeGGIBoundary.py
|
||||||
|
# Same as pyFoamModifyGGIBoundary.py. We just harmonize the name with rest of PyFoam
|
||||||
|
cp pyFoamChangeGGIBoundary.py $PYFOAM_DIR/bin
|
||||||
|
cp ChangeGGIBoundary.py $PYFOAM_DIR/lib/python$pythonVersion/site-packages/PyFoam/Applications
|
||||||
|
|
||||||
|
set +x
|
||||||
|
echo ========================================
|
||||||
|
echo Done
|
||||||
|
echo ========================================
|
||||||
|
echo
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------- end-of-file
|
||||||
|
|
||||||
|
|
156
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/ChangeGGIBoundary.py
vendored
Normal file
156
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/ChangeGGIBoundary.py
vendored
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
"""
|
||||||
|
Application-class that implements pyFoamChangeGGIBoundary.py
|
||||||
|
|
||||||
|
Modification of GGI and cyclicGGI interface parameters in
|
||||||
|
constant/polymesh/boundary file.
|
||||||
|
|
||||||
|
Author:
|
||||||
|
Martin Beaudoin, Hydro-Quebec, 2009. All rights reserved
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from PyFoamApplication import PyFoamApplication
|
||||||
|
from PyFoam.RunDictionary.ParsedParameterFile import ParsedParameterFile
|
||||||
|
from os import path
|
||||||
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
|
class ChangeGGIBoundary(PyFoamApplication):
|
||||||
|
def __init__(self,args=None):
|
||||||
|
description="""\
|
||||||
|
Change GGI boundary condition parameters
|
||||||
|
"""
|
||||||
|
PyFoamApplication.__init__(self,
|
||||||
|
args=args,
|
||||||
|
description=description,
|
||||||
|
usage="%prog <caseDirectory> ggiPatchName",
|
||||||
|
interspersed=True,
|
||||||
|
changeVersion=False,
|
||||||
|
nr=2)
|
||||||
|
|
||||||
|
def addOptions(self):
|
||||||
|
self.parser.add_option("--shadowPatch",
|
||||||
|
action="store",
|
||||||
|
dest="shadowPatch",
|
||||||
|
default=None,
|
||||||
|
help='Name of the shadowPatch')
|
||||||
|
self.parser.add_option("--shadowName",
|
||||||
|
action="store",
|
||||||
|
dest="shadowName",
|
||||||
|
default=None,
|
||||||
|
help='Name of the shadowPatch. Deprecated. Use --shadowPatch instead')
|
||||||
|
self.parser.add_option("--zone",
|
||||||
|
action="store",
|
||||||
|
dest="zone",
|
||||||
|
default=None,
|
||||||
|
help='Name of the zone for the GGI patch')
|
||||||
|
self.parser.add_option("--patchZoneName",
|
||||||
|
action="store",
|
||||||
|
dest="patchZoneName",
|
||||||
|
default=None,
|
||||||
|
help='Name of the zone for the GGI patch. Deprecated. Use --zone instead')
|
||||||
|
self.parser.add_option("--bridgeOverlap",
|
||||||
|
action="store",
|
||||||
|
dest="bridgeOverlap",
|
||||||
|
default=None,
|
||||||
|
help='bridgeOverlap flag (on/off)')
|
||||||
|
self.parser.add_option("--bridgeOverlapFlag",
|
||||||
|
action="store",
|
||||||
|
dest="bridgeOverlapFlag",
|
||||||
|
default=None,
|
||||||
|
help='bridgeOverlap flag (on/off). Deprecated. Use --bridgeOverlap instead')
|
||||||
|
self.parser.add_option("--rotationAxis",
|
||||||
|
action="store",
|
||||||
|
dest="rotationAxis",
|
||||||
|
default=None,
|
||||||
|
help='rotation axis for cyclicGgi')
|
||||||
|
self.parser.add_option("--rotationAngle",
|
||||||
|
action="store",
|
||||||
|
dest="rotationAngle",
|
||||||
|
default=None,
|
||||||
|
help='rotation axis angle for cyclicGgi')
|
||||||
|
self.parser.add_option("--separationOffset",
|
||||||
|
action="store",
|
||||||
|
dest="separationOffset",
|
||||||
|
default=None,
|
||||||
|
help='separation offset for cyclicGgi')
|
||||||
|
|
||||||
|
self.parser.add_option("--test",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
dest="test",
|
||||||
|
help="Only print the new boundary file")
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
fName=self.parser.getArgs()[0]
|
||||||
|
bName=self.parser.getArgs()[1]
|
||||||
|
|
||||||
|
boundary=ParsedParameterFile(path.join(".",fName,"constant","polyMesh","boundary"),debug=False,boundaryDict=True)
|
||||||
|
|
||||||
|
bnd=boundary.content
|
||||||
|
|
||||||
|
if type(bnd)!=list:
|
||||||
|
self.error("Problem with boundary file (not a list)")
|
||||||
|
|
||||||
|
found=False
|
||||||
|
|
||||||
|
for val in bnd:
|
||||||
|
if val==bName:
|
||||||
|
found=True
|
||||||
|
elif found:
|
||||||
|
bcType=val["type"]
|
||||||
|
if re.match("cyclicGgi", bcType)!= None or re.match("ggi", bcType)!= None:
|
||||||
|
if self.parser.getOptions().shadowPatch!=None:
|
||||||
|
shadowPatch=self.parser.getOptions().shadowPatch
|
||||||
|
val["shadowPatch"]=shadowPatch
|
||||||
|
if shadowPatch not in bnd:
|
||||||
|
self.error("\n Option --shadowPatch for patch:",bName,": there is no patch called",shadowPatch,"\n")
|
||||||
|
|
||||||
|
if self.parser.getOptions().zone!=None:
|
||||||
|
val["zone"]=self.parser.getOptions().zone
|
||||||
|
|
||||||
|
if self.parser.getOptions().bridgeOverlap!=None:
|
||||||
|
val["bridgeOverlap"]=self.parser.getOptions().bridgeOverlap
|
||||||
|
|
||||||
|
if val["type"]=="cyclicGgi":
|
||||||
|
if self.parser.getOptions().rotationAxis!=None:
|
||||||
|
val["rotationAxis"]=self.parser.getOptions().rotationAxis
|
||||||
|
|
||||||
|
if self.parser.getOptions().rotationAngle!=None:
|
||||||
|
val["rotationAngle"]=self.parser.getOptions().rotationAngle
|
||||||
|
|
||||||
|
if self.parser.getOptions().separationOffset!=None:
|
||||||
|
val["separationOffset"]=self.parser.getOptions().separationOffset
|
||||||
|
|
||||||
|
|
||||||
|
# Deprecated
|
||||||
|
if self.parser.getOptions().shadowName!=None:
|
||||||
|
self.warning("\n PatchName:",bName,": Option --shadowName is deprecated. Use --shadowPatch instead\n")
|
||||||
|
shadowName=self.parser.getOptions().shadowName
|
||||||
|
val["shadowPatch"]=shadowName
|
||||||
|
if shadowName not in bnd:
|
||||||
|
self.error("\n Option --shadowName for patch:",bName,": there is no patch called",shadowName,"\n")
|
||||||
|
|
||||||
|
# Deprecated
|
||||||
|
if self.parser.getOptions().patchZoneName!=None:
|
||||||
|
self.warning("\n PatchName:",bName,": Option --patchZoneName is deprecated. Use --zone instead\n")
|
||||||
|
val["zone"]=self.parser.getOptions().patchZoneName
|
||||||
|
|
||||||
|
# Deprecated
|
||||||
|
if self.parser.getOptions().bridgeOverlapFlag!=None:
|
||||||
|
self.warning("\n PatchName:",bName,": Option --bridgeOverlapFlag is deprecated. Use --bridgeOverlap instead\n")
|
||||||
|
val["bridgeOverlap"]=self.parser.getOptions().bridgeOverlapFlag
|
||||||
|
|
||||||
|
|
||||||
|
else:
|
||||||
|
print "Unsupported GGI type '",bcType,"' for patch",bName
|
||||||
|
break
|
||||||
|
|
||||||
|
if not found:
|
||||||
|
self.error("Boundary",bName,"not found in",bnd[::2])
|
||||||
|
|
||||||
|
if self.parser.getOptions().test:
|
||||||
|
print boundary
|
||||||
|
else:
|
||||||
|
boundary.writeFile()
|
||||||
|
|
139
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/ChangeMixingPlaneBoundary.py
vendored
Normal file
139
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/ChangeMixingPlaneBoundary.py
vendored
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
"""
|
||||||
|
Application-class that implements pyFoamChangeMixingPlaneBoundary.py
|
||||||
|
|
||||||
|
Change various mixingPlane interface attributes in
|
||||||
|
constant/polymesh/boundary file.
|
||||||
|
|
||||||
|
Author:
|
||||||
|
Martin Beaudoin, Hydro-Quebec, 2012. All rights reserved
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from PyFoamApplication import PyFoamApplication
|
||||||
|
from PyFoam.RunDictionary.ParsedParameterFile import ParsedParameterFile
|
||||||
|
from os import path
|
||||||
|
import sys
|
||||||
|
|
||||||
|
class ChangeMixingPlaneBoundary(PyFoamApplication):
|
||||||
|
def __init__(self,args=None):
|
||||||
|
description="""
|
||||||
|
Change MixingPlane boundary condition parameters
|
||||||
|
"""
|
||||||
|
PyFoamApplication.__init__(self,
|
||||||
|
args=args,
|
||||||
|
description=description,
|
||||||
|
usage="%prog <caseDirectory> mixingPlanePatchName",
|
||||||
|
interspersed=True,
|
||||||
|
changeVersion=False,
|
||||||
|
nr=2)
|
||||||
|
|
||||||
|
def addOptions(self):
|
||||||
|
self.parser.add_option("--shadowPatch",
|
||||||
|
action="store",
|
||||||
|
dest="shadowPatch",
|
||||||
|
default=None,
|
||||||
|
help='Name of the shadowPatch')
|
||||||
|
self.parser.add_option("--coordinateSystemName",
|
||||||
|
action="store",
|
||||||
|
dest="coordinateSystemName",
|
||||||
|
default="mixingCS",
|
||||||
|
help='coordinateSystemName (mixingCS)')
|
||||||
|
self.parser.add_option("--coordinateSystemType",
|
||||||
|
action="store",
|
||||||
|
dest="coordinateSystemType",
|
||||||
|
default=None,
|
||||||
|
help='coordinateSystemType (cyindrical/spherical)')
|
||||||
|
self.parser.add_option("--coordinateSystemOrigin",
|
||||||
|
action="store",
|
||||||
|
dest="coordinateSystemOrigin",
|
||||||
|
default=None,
|
||||||
|
help='origin for coordinate system of mixingPlane')
|
||||||
|
self.parser.add_option("--coordinateSystemE1",
|
||||||
|
action="store",
|
||||||
|
dest="coordinateSystemE1",
|
||||||
|
default=None,
|
||||||
|
help='axis E1 for coordinate system of mixingPlane')
|
||||||
|
self.parser.add_option("--coordinateSystemE3",
|
||||||
|
action="store",
|
||||||
|
dest="coordinateSystemE3",
|
||||||
|
default=None,
|
||||||
|
help='axis E3 for coordinate system of mixingPlane')
|
||||||
|
self.parser.add_option("--assembly",
|
||||||
|
action="store",
|
||||||
|
dest="assembly",
|
||||||
|
default=None,
|
||||||
|
help='Assembly (master|slave|both|userdefined')
|
||||||
|
self.parser.add_option("--orientation",
|
||||||
|
action="store",
|
||||||
|
dest="orientation",
|
||||||
|
default=None,
|
||||||
|
help='Orientation of profile (\
|
||||||
|
dirX_spanY| \
|
||||||
|
dirX_spanZ|dirY_spanX|dirY_spanZ|dirZ_spanX|dirZ_spanY|dirR_spanTheta|dirR_spanZ|dirTheta_spanZ|dirTheta_spanR|dirZ_spanTheta|dirZ_spanR|unknown)')
|
||||||
|
|
||||||
|
self.parser.add_option("--test",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
dest="test",
|
||||||
|
help="Only print the new boundary file")
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
fName=self.parser.getArgs()[0]
|
||||||
|
bName=self.parser.getArgs()[1]
|
||||||
|
|
||||||
|
boundary=ParsedParameterFile(path.join(".",fName,"constant","polyMesh","boundary"),debug=False,boundaryDict=True)
|
||||||
|
|
||||||
|
bnd=boundary.content
|
||||||
|
|
||||||
|
if type(bnd)!=list:
|
||||||
|
print "Problem with boundary file (not a list)"
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
|
found=False
|
||||||
|
|
||||||
|
for val in bnd:
|
||||||
|
if val==bName:
|
||||||
|
found=True
|
||||||
|
elif found:
|
||||||
|
if val["type"]=="mixingPlane":
|
||||||
|
if self.parser.getOptions().shadowPatch!=None:
|
||||||
|
val["shadowPatch"]=self.parser.getOptions().shadowPatch
|
||||||
|
|
||||||
|
if self.parser.getOptions().orientation!=None:
|
||||||
|
val["orientation"]=self.parser.getOptions().orientation
|
||||||
|
|
||||||
|
if val.has_key("coordinateSystem")==False:
|
||||||
|
val["coordinateSystem"]={}
|
||||||
|
|
||||||
|
if self.parser.getOptions().coordinateSystemName!=None:
|
||||||
|
val["coordinateSystem"]["name"]=self.parser.getOptions().coordinateSystemName
|
||||||
|
|
||||||
|
if self.parser.getOptions().coordinateSystemType!=None:
|
||||||
|
val["coordinateSystem"]["type"]=self.parser.getOptions().coordinateSystemType
|
||||||
|
|
||||||
|
if self.parser.getOptions().coordinateSystemOrigin!=None:
|
||||||
|
val["coordinateSystem"]["origin"]=self.parser.getOptions().coordinateSystemOrigin
|
||||||
|
|
||||||
|
if self.parser.getOptions().coordinateSystemE1!=None:
|
||||||
|
val["coordinateSystem"]["e1"]=self.parser.getOptions().coordinateSystemE1
|
||||||
|
|
||||||
|
if self.parser.getOptions().coordinateSystemE3!=None:
|
||||||
|
val["coordinateSystem"]["e3"]=self.parser.getOptions().coordinateSystemE3
|
||||||
|
|
||||||
|
if self.parser.getOptions().assembly!=None:
|
||||||
|
val["assembly"]=self.parser.getOptions().assembly
|
||||||
|
|
||||||
|
if self.parser.getOptions().orientation!=None:
|
||||||
|
val["orientation"]=self.parser.getOptions().orientation
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
if not found:
|
||||||
|
print "Boundary",bName,"not found in",bnd[::2]
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
|
if self.parser.getOptions().test:
|
||||||
|
print boundary
|
||||||
|
else:
|
||||||
|
boundary.writeFile()
|
||||||
|
|
6
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/Readme.txt
vendored
Normal file
6
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/Readme.txt
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
PyFoam scripts for handling GGI and mixingPlane cases.
|
||||||
|
|
||||||
|
--
|
||||||
|
Martin Beaudoin
|
||||||
|
Hydro-Quebec
|
||||||
|
April 2012
|
5
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/pyFoamChangeGGIBoundary.py
vendored
Executable file
5
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/pyFoamChangeGGIBoundary.py
vendored
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from PyFoam.Applications.ChangeGGIBoundary import ChangeGGIBoundary
|
||||||
|
|
||||||
|
ChangeGGIBoundary()
|
5
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/pyFoamChangeMixingPlaneBoundary.py
vendored
Executable file
5
ThirdParty/LocalDev/Hydro-Quebec/PyFoam/pyFoamChangeMixingPlaneBoundary.py
vendored
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from PyFoam.Applications.ChangeMixingPlaneBoundary import ChangeMixingPlaneBoundary
|
||||||
|
|
||||||
|
ChangeMixingPlaneBoundary()
|
13
ThirdParty/LocalDev/Readme.txt
vendored
Normal file
13
ThirdParty/LocalDev/Readme.txt
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
This directory contains ThirdParty developments specific to the mixingPlane_RC1 branch.
|
||||||
|
Those developments might eventually find a more suitable home elsewhere.
|
||||||
|
|
||||||
|
Instead of spreading these developments around in various repositories, I find
|
||||||
|
it more convenient to regroup them under this directory.
|
||||||
|
|
||||||
|
So expect this ThirdParty/LocalDev directory to disappear eventually, once its
|
||||||
|
content will prove it usefulness.
|
||||||
|
|
||||||
|
--
|
||||||
|
Martin Beaudoin
|
||||||
|
Hydro-Quebec
|
||||||
|
April 2012
|
0
ThirdParty/rpmBuild/BUILD/.emptyFileForGit
vendored
0
ThirdParty/rpmBuild/BUILD/.emptyFileForGit
vendored
0
ThirdParty/rpmBuild/RPMS/.emptyFileForGit
vendored
0
ThirdParty/rpmBuild/RPMS/.emptyFileForGit
vendored
243901
ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_0_ParaView.git_0f43430
vendored
Normal file
243901
ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_0_ParaView.git_0f43430
vendored
Normal file
File diff suppressed because it is too large
Load diff
16
ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_1
vendored
Normal file
16
ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_1
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
diff a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -403,6 +403,12 @@
|
||||||
|
DESTINATION ${PV_INSTALL_CMAKE_DIR}
|
||||||
|
COMPONENT Development)
|
||||||
|
|
||||||
|
+ # install ParaViewUse.cmake
|
||||||
|
+ INSTALL(
|
||||||
|
+ FILES ${ParaView_SOURCE_DIR}/ParaViewUse.cmake
|
||||||
|
+ DESTINATION ${PV_INSTALL_CMAKE_DIR}
|
||||||
|
+ COMPONENT Development)
|
||||||
|
+
|
||||||
|
# Re-configure for the install.
|
||||||
|
SET(SOURCE_TREE ${ParaView_SOURCE_DIR})
|
||||||
|
SET(BUILD_TREE ${ParaView_BINARY_DIR})
|
12
ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_darwin
vendored
Normal file
12
ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_darwin
vendored
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
diff -ruN ParaView-3.14.1_orig/Applications/ParaView-3.14.1_extra_install_Darwin.cmake ParaView-3.14.1/Applications/ParaView-3.14.1_extra_install_Darwin.cmake
|
||||||
|
--- ParaView-3.14.1_orig/Applications/ParaView-3.14.1_extra_install_Darwin.cmake 1969-12-31 19:00:00.000000000 -0500
|
||||||
|
+++ ParaView-3.14.1/Applications/ParaView-3.14.1_extra_install_Darwin.cmake 2010-11-06 19:34:12.000000000 -0400
|
||||||
|
@@ -0,0 +1,8 @@
|
||||||
|
+#
|
||||||
|
+# Additional install rules for Mac OS X platforms
|
||||||
|
+#
|
||||||
|
+INSTALL (DIRECTORY ../../buildObj/bin/paraview.app
|
||||||
|
+ DESTINATION ${PV_INSTALL_BIN_DIR}
|
||||||
|
+ USE_SOURCE_PERMISSIONS
|
||||||
|
+ COMPONENT Runtime)
|
||||||
|
+
|
12
ThirdParty/rpmBuild/SOURCES/mesquite-2.1.2.patch
vendored
Normal file
12
ThirdParty/rpmBuild/SOURCES/mesquite-2.1.2.patch
vendored
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
*** include/Mesquite.hpp 2009-12-07 22:48:45.000000000 +0000
|
||||||
|
--- /home/hjasak/OpenFOAM/OpenFOAM-1.6-ext/ThirdParty/rpmBuild/BUILD/mesquite-2.1.2/include/Mesquite.hpp 2011-11-03 21:59:55.734930462 +0000
|
||||||
|
***************
|
||||||
|
*** 69,74 ****
|
||||||
|
--- 69,75 ----
|
||||||
|
namespace MESQUITE_NS { }
|
||||||
|
namespace Mesquite = MESQUITE_NS;
|
||||||
|
|
||||||
|
+ using std::size_t;
|
||||||
|
|
||||||
|
/*! \file Mesquite.hpp
|
||||||
|
*/
|
|
@ -73,7 +73,7 @@ License: Unkown
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Release: %{release}
|
Release: %{release}
|
||||||
URL: http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis
|
URL: http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD
|
||||||
Source: %url/%{name}-%{version}.tar.gz
|
Source: %url/%{name}-%{version}.tar.gz
|
||||||
Prefix: %{_prefix}
|
Prefix: %{_prefix}
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
|
|
289
ThirdParty/rpmBuild/SPECS/ParaView-3.14.1.spec
vendored
Normal file
289
ThirdParty/rpmBuild/SPECS/ParaView-3.14.1.spec
vendored
Normal file
|
@ -0,0 +1,289 @@
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# RPM spec file for ParaView-3.14.1
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# RPM spec file for creating a relocatable RPM
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2010)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 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 thi 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 3.14.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/v3.14/
|
||||||
|
Source: %url/%{name}-%{version}-Source.tar.gz
|
||||||
|
Prefix: %{_prefix}
|
||||||
|
Group: Development/Tools
|
||||||
|
Patch0: ParaView-3.14.1.patch_0_ParaView.git_0f43430
|
||||||
|
Patch1: ParaView-3.14.1.patch_1
|
||||||
|
Patch2: ParaView-3.14.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 ParaView-3.14.1-Source
|
||||||
|
|
||||||
|
# Patch from ParaView.git
|
||||||
|
# BUG #13065. CMake files were not being installed correctly.
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
|
# Correction to BUG #13065.
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
|
%ifos darwin
|
||||||
|
# Patch for proper install of paraview binary under Mac OS X
|
||||||
|
%patch2 -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 VTK_USE_TK:BOOL=OFF
|
||||||
|
addCMakeVariable BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF
|
||||||
|
addCMakeVariable CMAKE_BUILD_TYPE:STRING=Release
|
||||||
|
|
||||||
|
# include development files in "make install"
|
||||||
|
addCMakeVariable PARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON
|
||||||
|
|
||||||
|
# new alternative to "make HTMLDocumentation"
|
||||||
|
addCMakeVariable PARAVIEW_GENERATE_PROXY_DOCUMENTATION:BOOL=OFF
|
||||||
|
|
||||||
|
%ifos darwin
|
||||||
|
# Additional installation rules for Mac OS X
|
||||||
|
addCMakeVariable PARAVIEW_EXTRA_INSTALL_RULES_FILE:FILEPATH=%{_topdir}/BUILD/%{name}-%{version}-Source/Applications/ParaView-3.14.1_extra_install_Darwin.cmake
|
||||||
|
%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.6.3 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
|
||||||
|
|
||||||
|
# Creation of OpenFOAM specific .csh and .sh files"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Generating OpenFOAM specific .csh and .sh files for the package %{name}-%{version}"
|
||||||
|
echo ""
|
||||||
|
#
|
||||||
|
# Generate package specific .sh file for OpenFOAM
|
||||||
|
#
|
||||||
|
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-3.14
|
||||||
|
|
||||||
|
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_plugins
|
||||||
|
|
||||||
|
[ -d \$PARAVIEW_LIB_DIR/paraview-3.14 ] && _foamAddLib \$PARAVIEW_LIB_DIR/paraview-3.14
|
||||||
|
|
||||||
|
# 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 OpenFOAM
|
||||||
|
#
|
||||||
|
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-3.14
|
||||||
|
|
||||||
|
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_plugins
|
||||||
|
|
||||||
|
if ( -e \$PARAVIEW_BIN_DIR ) then
|
||||||
|
_foamAddPath \$PARAVIEW_BIN_DIR
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ( -e \$PARAVIEW_LIB_DIR/paraview-3.14 ) then
|
||||||
|
_foamAddLib \$PARAVIEW_LIB_DIR/paraview-3.14
|
||||||
|
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})
|
||||||
|
|
||||||
|
# Make sure we clean the installation directory. Somehow, make install generates files there. Need to revisit this eventually.
|
||||||
|
(rm -rf %{_prefix}/packages/%{name}-%{version} )
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
rm -rf %{_prefix}/packages/%{name}-%{version}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_installPrefix}
|
||||||
|
|
|
@ -206,7 +206,7 @@ cat << DOT_SH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.sh
|
||||||
export PARAVIEW_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS
|
export PARAVIEW_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS
|
||||||
export PARAVIEW_BIN_DIR=\$PARAVIEW_DIR/bin
|
export PARAVIEW_BIN_DIR=\$PARAVIEW_DIR/bin
|
||||||
export PARAVIEW_LIB_DIR=\$PARAVIEW_DIR/lib
|
export PARAVIEW_LIB_DIR=\$PARAVIEW_DIR/lib
|
||||||
export PARAVIEW_INCLUDE_DIR=\$PARAVIEW_DIR/include
|
export PARAVIEW_INCLUDE_DIR=\$PARAVIEW_DIR/include/paraview-3.8
|
||||||
|
|
||||||
export PARAVIEW_VERSION=%{version}
|
export PARAVIEW_VERSION=%{version}
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ cat << DOT_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.cs
|
||||||
setenv PARAVIEW_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS
|
setenv PARAVIEW_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/\$WM_OPTIONS
|
||||||
setenv PARAVIEW_BIN_DIR \$PARAVIEW_DIR/bin
|
setenv PARAVIEW_BIN_DIR \$PARAVIEW_DIR/bin
|
||||||
setenv PARAVIEW_LIB_DIR \$PARAVIEW_DIR/lib
|
setenv PARAVIEW_LIB_DIR \$PARAVIEW_DIR/lib
|
||||||
setenv PARAVIEW_INCLUDE_DIR \$PARAVIEW_DIR/include
|
setenv PARAVIEW_INCLUDE_DIR \$PARAVIEW_DIR/include/paraview-3.8
|
||||||
|
|
||||||
setenv PARAVIEW_VERSION %{version}
|
setenv PARAVIEW_VERSION %{version}
|
||||||
|
|
||||||
|
|
183
ThirdParty/rpmBuild/SPECS/PyFoam-0.5.6.spec
vendored
Normal file
183
ThirdParty/rpmBuild/SPECS/PyFoam-0.5.6.spec
vendored
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# RPM spec file for PyFoam-0.5.6
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# RPM spec file for PyFoam version 0.5.6
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2012)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 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 thi 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 PyFoam
|
||||||
|
%define release 1
|
||||||
|
%define version 0.5.6
|
||||||
|
|
||||||
|
%define buildroot %{_topdir}/BUILD/%{name}-%{version}-root
|
||||||
|
|
||||||
|
BuildRoot: %{buildroot}
|
||||||
|
Summary: PyFoam
|
||||||
|
License: Unkown
|
||||||
|
Name: %{name}
|
||||||
|
Version: %{version}
|
||||||
|
Release: %{release}
|
||||||
|
BuildArch: noarch
|
||||||
|
URL: http://openfoamwiki.net/images/b/b8/PyFoam-0.5.6.tar.gz
|
||||||
|
Source: %url/%{name}-%{version}.tar.gz
|
||||||
|
Prefix: %{_prefix}
|
||||||
|
Group: Development/Tools
|
||||||
|
|
||||||
|
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{summary}
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Make the shebang line portable
|
||||||
|
python setup.py build --executable "/usr/bin/env python"
|
||||||
|
|
||||||
|
%install
|
||||||
|
python setup.py install --prefix=$RPM_BUILD_ROOT/%{_installPrefix}
|
||||||
|
|
||||||
|
%define pythonVersion $(python -V 2>&1 | awk -F ' ' {'print $2'} | awk -F \. {'print $1 "." $2'})
|
||||||
|
|
||||||
|
# Creation of OpenFOAM specific .csh and .sh files"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Generating OpenFOAM specific .csh and .sh files for the package %{name}-%{version}"
|
||||||
|
echo ""
|
||||||
|
#
|
||||||
|
# Generate package specific .sh file for OpenFOAM
|
||||||
|
#
|
||||||
|
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 PYFOAM_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
export PYTHONPATH=\$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
# Enable access to the package applications if present
|
||||||
|
[ -d \$PYFOAM_DIR/bin ] && _foamAddPath \$PYFOAM_DIR/bin
|
||||||
|
|
||||||
|
DOT_SH_EOF
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate package specific .csh file for OpenFOAM
|
||||||
|
#
|
||||||
|
cat << DOT_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.csh
|
||||||
|
# Load %{name}-%{version} libraries and binaries if available
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
setenv PYFOAM_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
|
||||||
|
setenv PYTHONPATH \$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
if ( -e \$PYFOAM_DIR/bin ) then
|
||||||
|
_foamAddPath \$PYFOAM_DIR/bin
|
||||||
|
endif
|
||||||
|
|
||||||
|
DOT_CSH_EOF
|
||||||
|
|
||||||
|
cat << DOT_HARDCODED_SH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}_hardcoded.sh
|
||||||
|
# In this version of the configuration script, the paths are hardcoded,
|
||||||
|
# which makes it easier to load PyFoam without the OpenFOAM environment
|
||||||
|
# variables
|
||||||
|
#
|
||||||
|
# Load %{name}-%{version} libraries and binaries if available
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
export PYFOAM_DIR=$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
export PYTHONPATH=\$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
# Enable access to the package applications if present
|
||||||
|
[ -d \$PYFOAM_DIR/bin ] && export PATH=\$PYFOAM_DIR/bin:\$PATH
|
||||||
|
|
||||||
|
DOT_HARDCODED_SH_EOF
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate package specific .csh file for OpenFOAM
|
||||||
|
#
|
||||||
|
cat << DOT_HARDCODED_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}_hardcoded.csh
|
||||||
|
# In this version of the configuration script, the paths are hardcoded,
|
||||||
|
# which makes it easier to load PyFoam without the OpenFOAM environment
|
||||||
|
# variables
|
||||||
|
#
|
||||||
|
# Load %{name}-%{version} libraries and binaries if available
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
setenv PYFOAM_DIR $WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
|
||||||
|
setenv PYTHONPATH \$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
if ( -e \$PYFOAM_DIR/bin ) then
|
||||||
|
setenv PATH \$PYFOAM_DIR/bin:\$PATH
|
||||||
|
endif
|
||||||
|
|
||||||
|
DOT_HARDCODED_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}
|
||||||
|
|
183
ThirdParty/rpmBuild/SPECS/PyFoam-0.5.7.spec
vendored
Normal file
183
ThirdParty/rpmBuild/SPECS/PyFoam-0.5.7.spec
vendored
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# RPM spec file for PyFoam-0.5.7
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# RPM spec file for PyFoam version 0.5.7
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2012)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 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 thi 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 PyFoam
|
||||||
|
%define release 1
|
||||||
|
%define version 0.5.7
|
||||||
|
|
||||||
|
%define buildroot %{_topdir}/BUILD/%{name}-%{version}-root
|
||||||
|
|
||||||
|
BuildRoot: %{buildroot}
|
||||||
|
Summary: PyFoam
|
||||||
|
License: Unkown
|
||||||
|
Name: %{name}
|
||||||
|
Version: %{version}
|
||||||
|
Release: %{release}
|
||||||
|
BuildArch: noarch
|
||||||
|
URL: http://openfoamwiki.net/images/d/dc/PyFoam-0.5.7.tar.gz
|
||||||
|
Source: %url/%{name}-%{version}.tar.gz
|
||||||
|
Prefix: %{_prefix}
|
||||||
|
Group: Development/Tools
|
||||||
|
|
||||||
|
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{summary}
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Make the shebang line portable
|
||||||
|
python setup.py build --executable "/usr/bin/env python"
|
||||||
|
|
||||||
|
%install
|
||||||
|
python setup.py install --prefix=$RPM_BUILD_ROOT/%{_installPrefix}
|
||||||
|
|
||||||
|
%define pythonVersion $(python -V 2>&1 | awk -F ' ' {'print $2'} | awk -F \. {'print $1 "." $2'})
|
||||||
|
|
||||||
|
# Creation of OpenFOAM specific .csh and .sh files"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Generating OpenFOAM specific .csh and .sh files for the package %{name}-%{version}"
|
||||||
|
echo ""
|
||||||
|
#
|
||||||
|
# Generate package specific .sh file for OpenFOAM
|
||||||
|
#
|
||||||
|
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 PYFOAM_DIR=\$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
export PYTHONPATH=\$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
# Enable access to the package applications if present
|
||||||
|
[ -d \$PYFOAM_DIR/bin ] && _foamAddPath \$PYFOAM_DIR/bin
|
||||||
|
|
||||||
|
DOT_SH_EOF
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate package specific .csh file for OpenFOAM
|
||||||
|
#
|
||||||
|
cat << DOT_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}.csh
|
||||||
|
# Load %{name}-%{version} libraries and binaries if available
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
setenv PYFOAM_DIR \$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
|
||||||
|
setenv PYTHONPATH \$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
if ( -e \$PYFOAM_DIR/bin ) then
|
||||||
|
_foamAddPath \$PYFOAM_DIR/bin
|
||||||
|
endif
|
||||||
|
|
||||||
|
DOT_CSH_EOF
|
||||||
|
|
||||||
|
cat << DOT_HARDCODED_SH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}_hardcoded.sh
|
||||||
|
# In this version of the configuration script, the paths are hardcoded,
|
||||||
|
# which makes it easier to load PyFoam without the OpenFOAM environment
|
||||||
|
# variables
|
||||||
|
#
|
||||||
|
# Load %{name}-%{version} libraries and binaries if available
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
export PYFOAM_DIR=$WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
export PYTHONPATH=\$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
# Enable access to the package applications if present
|
||||||
|
[ -d \$PYFOAM_DIR/bin ] && export PATH=\$PYFOAM_DIR/bin:\$PATH
|
||||||
|
|
||||||
|
DOT_HARDCODED_SH_EOF
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate package specific .csh file for OpenFOAM
|
||||||
|
#
|
||||||
|
cat << DOT_HARDCODED_CSH_EOF > $RPM_BUILD_ROOT/%{_installPrefix}/etc/%{name}-%{version}_hardcoded.csh
|
||||||
|
# In this version of the configuration script, the paths are hardcoded,
|
||||||
|
# which makes it easier to load PyFoam without the OpenFOAM environment
|
||||||
|
# variables
|
||||||
|
#
|
||||||
|
# Load %{name}-%{version} libraries and binaries if available
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
setenv PYFOAM_DIR $WM_THIRD_PARTY_DIR/packages/%{name}-%{version}/platforms/noarch
|
||||||
|
|
||||||
|
setenv PYTHONPATH \$PYFOAM_DIR/lib/python%{pythonVersion}/site-packages
|
||||||
|
|
||||||
|
if ( -e \$PYFOAM_DIR/bin ) then
|
||||||
|
setenv PATH \$PYFOAM_DIR/bin:\$PATH
|
||||||
|
endif
|
||||||
|
|
||||||
|
DOT_HARDCODED_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}
|
||||||
|
|
151
ThirdParty/rpmBuild/SPECS/cmake-2.8.5.spec
vendored
Normal file
151
ThirdParty/rpmBuild/SPECS/cmake-2.8.5.spec
vendored
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# RPM spec file for cmake-2.8.5
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# RPM spec file for creating a relocatable RPM
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2010)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 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 thi 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 2.8.5
|
||||||
|
|
||||||
|
%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/v2.8/
|
||||||
|
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 \
|
||||||
|
--prefix=%{_installPrefix}
|
||||||
|
|
||||||
|
[ -z "$WM_NCOMPPROCS" ] && WM_NCOMPPROCS=1
|
||||||
|
make -j $WM_NCOMPPROCS
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
# Creation of OpenFOAM specific .csh and .sh files"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Generating OpenFOAM specific .csh and .sh files for the package %{name}-%{version}"
|
||||||
|
echo ""
|
||||||
|
#
|
||||||
|
# Generate package specific .sh file for OpenFOAM
|
||||||
|
#
|
||||||
|
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 OpenFOAM
|
||||||
|
#
|
||||||
|
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}
|
||||||
|
|
151
ThirdParty/rpmBuild/SPECS/cmake-2.8.6.spec
vendored
Normal file
151
ThirdParty/rpmBuild/SPECS/cmake-2.8.6.spec
vendored
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright held by original author
|
||||||
|
# \\/ M anipulation |
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# License
|
||||||
|
# This file is part of OpenFOAM.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# RPM spec file for cmake-2.8.6
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# RPM spec file for creating a relocatable RPM
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Martin Beaudoin, Hydro-Quebec, (2010)
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 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 thi 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 2.8.6
|
||||||
|
|
||||||
|
%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/v2.8/
|
||||||
|
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 \
|
||||||
|
--prefix=%{_installPrefix}
|
||||||
|
|
||||||
|
[ -z "$WM_NCOMPPROCS" ] && WM_NCOMPPROCS=1
|
||||||
|
make -j $WM_NCOMPPROCS
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
# Creation of OpenFOAM specific .csh and .sh files"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Generating OpenFOAM specific .csh and .sh files for the package %{name}-%{version}"
|
||||||
|
echo ""
|
||||||
|
#
|
||||||
|
# Generate package specific .sh file for OpenFOAM
|
||||||
|
#
|
||||||
|
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 OpenFOAM
|
||||||
|
#
|
||||||
|
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}
|
||||||
|
|
16
ThirdParty/tools/makeThirdPartyFunctionsForRPM
vendored
16
ThirdParty/tools/makeThirdPartyFunctionsForRPM
vendored
|
@ -60,7 +60,7 @@ rpm_make()
|
||||||
_PACKAGE_URL=''
|
_PACKAGE_URL=''
|
||||||
_ADDITIONALFLAGS=''
|
_ADDITIONALFLAGS=''
|
||||||
|
|
||||||
while getopts p:s:u:a: flags
|
while getopts p:s:u:f:n:a: flags
|
||||||
do
|
do
|
||||||
case $flags in
|
case $flags in
|
||||||
p) _PACKAGE=$OPTARG
|
p) _PACKAGE=$OPTARG
|
||||||
|
@ -69,7 +69,11 @@ rpm_make()
|
||||||
;;
|
;;
|
||||||
s) _SPECFILE=$OPTARG
|
s) _SPECFILE=$OPTARG
|
||||||
;;
|
;;
|
||||||
a) _ADDITIONALFLAGS=$OPTARG
|
f) _ADDITIONALFLAGS=$OPTARG
|
||||||
|
;;
|
||||||
|
n) _RPMFILENAME=$OPTARG
|
||||||
|
;;
|
||||||
|
a) architecture=$OPTARG
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -82,13 +86,11 @@ rpm_make()
|
||||||
# Shift options
|
# Shift options
|
||||||
shift `expr $OPTIND - 1`
|
shift `expr $OPTIND - 1`
|
||||||
|
|
||||||
# Make sure the ThirdParty environment is up-to-date
|
|
||||||
echo "Updating the ThirdParty environment variables before building package $_PACKAGE"
|
|
||||||
. $WM_PROJECT_DIR/etc/settings.sh
|
|
||||||
|
|
||||||
rpmName=$_PACKAGE-$WM_OPTIONS.$architecture
|
rpmName=$_PACKAGE-$WM_OPTIONS.$architecture
|
||||||
rpmFile=$buildBase/RPMS/$architecture/$rpmName.rpm
|
rpmFile=$buildBase/RPMS/$architecture/$rpmName.rpm
|
||||||
|
|
||||||
|
echo "RPM file name : $rpmFile"
|
||||||
|
|
||||||
# We check immediatly if the RPM binary package is available in the local RPMs vault.
|
# We check immediatly if the RPM binary package is available in the local RPMs vault.
|
||||||
# If so, we basically uninstall/reinstall the package. This is handy for installation
|
# If so, we basically uninstall/reinstall the package. This is handy for installation
|
||||||
# on machines with no Internet access, so without downloading capabilities. If one wants to
|
# on machines with no Internet access, so without downloading capabilities. If one wants to
|
||||||
|
@ -184,7 +186,7 @@ rpm_uninstall()
|
||||||
rpm_install()
|
rpm_install()
|
||||||
{
|
{
|
||||||
package="$1";
|
package="$1";
|
||||||
rpmName=$package-$WM_OPTIONS.$architecture;
|
rpmName=$package.$architecture;
|
||||||
rpmFile=$buildBase/RPMS/$architecture/$rpmName.rpm;
|
rpmFile=$buildBase/RPMS/$architecture/$rpmName.rpm;
|
||||||
|
|
||||||
echo " Installing $package using RPM file: $rpmFile";
|
echo " Installing $package using RPM file: $rpmFile";
|
||||||
|
|
|
@ -12,8 +12,7 @@
|
||||||
mesh
|
mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
p = dimensionedScalar("zero", p.dimensions(), 0.0);
|
p.internalField() = 0;
|
||||||
|
|
||||||
|
|
||||||
Info<< "Reading field U\n" << endl;
|
Info<< "Reading field U\n" << endl;
|
||||||
volVectorField U
|
volVectorField U
|
||||||
|
@ -29,7 +28,10 @@
|
||||||
mesh
|
mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
U = dimensionedVector("0", U.dimensions(), vector::zero);
|
if (args.optionFound("resetU"))
|
||||||
|
{
|
||||||
|
U.internalField() = vector::zero;
|
||||||
|
}
|
||||||
|
|
||||||
surfaceScalarField phi
|
surfaceScalarField phi
|
||||||
(
|
(
|
||||||
|
|
|
@ -38,7 +38,7 @@ Description
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
argList::validOptions.insert("resetU", "");
|
||||||
argList::validOptions.insert("writep", "");
|
argList::validOptions.insert("writep", "");
|
||||||
|
|
||||||
# include "setRootCase.H"
|
# include "setRootCase.H"
|
||||||
|
|
|
@ -36,7 +36,6 @@ Description
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|
||||||
# include "setRootCase.H"
|
# include "setRootCase.H"
|
||||||
|
|
||||||
# include "createTime.H"
|
# include "createTime.H"
|
||||||
|
|
|
@ -29,4 +29,5 @@ EXE_LIBS = \
|
||||||
-llaminarFlameSpeedModels \
|
-llaminarFlameSpeedModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -299,7 +299,9 @@ void PDRkEpsilon::correct()
|
||||||
|
|
||||||
epsEqn().relax();
|
epsEqn().relax();
|
||||||
|
|
||||||
epsEqn().boundaryManipulate(epsilon_.boundaryField());
|
// No longer needed: matrix completes at the point of solution
|
||||||
|
// HJ, 17/Apr/2012
|
||||||
|
// epsEqn().completeAssembly();
|
||||||
|
|
||||||
solve(epsEqn);
|
solve(epsEqn);
|
||||||
bound(epsilon_, epsilon0_);
|
bound(epsilon_, epsilon0_);
|
||||||
|
|
|
@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phi,
|
phi,
|
||||||
mesh.divScheme("div(phi,ft_b_h_hu)")
|
mesh.schemesDict().divScheme("div(phi,ft_b_h_hu)")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -19,4 +19,5 @@ EXE_LIBS = \
|
||||||
-llaminarFlameSpeedModels \
|
-llaminarFlameSpeedModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phi,
|
phi,
|
||||||
mesh.divScheme("div(phi,ft_b_h_hu)")
|
mesh.schemesDict().divScheme("div(phi,ft_b_h_hu)")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -16,4 +16,5 @@ EXE_LIBS = \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -34,4 +34,5 @@ EXE_LIBS = \
|
||||||
-lchemistryModel \
|
-lchemistryModel \
|
||||||
-lODE \
|
-lODE \
|
||||||
-lpdf \
|
-lpdf \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phi,
|
phi,
|
||||||
mesh.divScheme("div(phi,Yi_h)")
|
mesh.schemesDict().divScheme("div(phi,Yi_h)")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
==
|
==
|
||||||
dieselSpray.evaporationSource(i)
|
dieselSpray.evaporationSource(i)
|
||||||
+ kappa*chemistry.RR(i),
|
+ kappa*chemistry.RR(i),
|
||||||
mesh.solver("Yi")
|
mesh.solutionDict().solver("Yi")
|
||||||
);
|
);
|
||||||
|
|
||||||
Yi.max(0.0);
|
Yi.max(0.0);
|
||||||
|
|
|
@ -18,4 +18,5 @@ EXE_LIBS = \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-llaminarFlameSpeedModels \
|
-llaminarFlameSpeedModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -18,7 +18,7 @@ if (oCorr == nOuterCorr - 1)
|
||||||
fvc::interpolate(rho)*(g & mesh.Sf())
|
fvc::interpolate(rho)*(g & mesh.Sf())
|
||||||
- fvc::snGrad(p)*mesh.magSf()
|
- fvc::snGrad(p)*mesh.magSf()
|
||||||
),
|
),
|
||||||
mesh.solver("UFinal")
|
mesh.solutionDict().solver("UFinal")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phi,
|
phi,
|
||||||
mesh.divScheme("div(phi,ft_b_h)")
|
mesh.schemesDict().divScheme("div(phi,ft_b_h)")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -32,11 +32,11 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
|
||||||
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -8,12 +8,12 @@ EXE_INC = \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
|
-lbasicThermophysicalModels \
|
||||||
-lcompressibleTurbulenceModel \
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lbasicThermophysicalModels \
|
|
||||||
-lchemistryModel \
|
-lchemistryModel \
|
||||||
-lODE \
|
-lODE \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
|
|
|
@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phi,
|
phi,
|
||||||
mesh.divScheme("div(phi,Yi_h)")
|
mesh.schemesDict().divScheme("div(phi,Yi_h)")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
- fvm::laplacian(turbulence->muEff(), Yi)
|
- fvm::laplacian(turbulence->muEff(), Yi)
|
||||||
==
|
==
|
||||||
kappa*chemistry.RR(i),
|
kappa*chemistry.RR(i),
|
||||||
mesh.solver("Yi")
|
mesh.solutionDict().solver("Yi")
|
||||||
);
|
);
|
||||||
|
|
||||||
Yi.max(0.0);
|
Yi.max(0.0);
|
||||||
|
|
|
@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phi,
|
phi,
|
||||||
mesh.divScheme("div(phi,Yi_h)")
|
mesh.schemesDict().divScheme("div(phi,Yi_h)")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
||||||
- fvm::laplacian(turbulence->muEff(), Yi)
|
- fvm::laplacian(turbulence->muEff(), Yi)
|
||||||
==
|
==
|
||||||
kappa*chemistry.RR(i),
|
kappa*chemistry.RR(i),
|
||||||
mesh.solver("Yi")
|
mesh.solutionDict().solver("Yi")
|
||||||
);
|
);
|
||||||
|
|
||||||
Yi.max(0.0);
|
Yi.max(0.0);
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -163,13 +163,13 @@ void smoluchowskiJumpTFvPatchScalarField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchScalarField& pmu =
|
const fvPatchScalarField& pmu =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
lookupPatchField<volScalarField, scalar>("mu");
|
||||||
const fvPatchScalarField& prho =
|
const fvPatchScalarField& prho =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
lookupPatchField<volScalarField, scalar>("rho");
|
||||||
const fvPatchField<scalar>& ppsi =
|
const fvPatchField<scalar>& ppsi =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("psi");
|
lookupPatchField<volScalarField, scalar>("psi");
|
||||||
const fvPatchVectorField& pU =
|
const fvPatchVectorField& pU =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
lookupPatchField<volVectorField, vector>("U");
|
||||||
|
|
||||||
// Prandtl number reading consistent with rhoCentralFoam
|
// Prandtl number reading consistent with rhoCentralFoam
|
||||||
const dictionary& thermophysicalProperties =
|
const dictionary& thermophysicalProperties =
|
||||||
|
|
|
@ -141,11 +141,11 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchScalarField& pmu =
|
const fvPatchScalarField& pmu =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
lookupPatchField<volScalarField, scalar>("mu");
|
||||||
const fvPatchScalarField& prho =
|
const fvPatchScalarField& prho =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
lookupPatchField<volScalarField, scalar>("rho");
|
||||||
const fvPatchField<scalar>& ppsi =
|
const fvPatchField<scalar>& ppsi =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("psi");
|
lookupPatchField<volScalarField, scalar>("psi");
|
||||||
|
|
||||||
Field<scalar> C1 = sqrt(ppsi*mathematicalConstant::pi/2.0)
|
Field<scalar> C1 = sqrt(ppsi*mathematicalConstant::pi/2.0)
|
||||||
*(2.0 - accommodationCoeff_)/accommodationCoeff_;
|
*(2.0 - accommodationCoeff_)/accommodationCoeff_;
|
||||||
|
@ -170,7 +170,7 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs()
|
||||||
if(curvature_)
|
if(curvature_)
|
||||||
{
|
{
|
||||||
const fvPatchTensorField& ptauMC =
|
const fvPatchTensorField& ptauMC =
|
||||||
patch().lookupPatchField<volTensorField, tensor>("tauMC");
|
lookupPatchField<volTensorField, tensor>("tauMC");
|
||||||
vectorField n = patch().nf();
|
vectorField n = patch().nf();
|
||||||
|
|
||||||
refValue() -= C1/prho*transform(I - n*n, (n & ptauMC));
|
refValue() -= C1/prho*transform(I - n*n, (n & ptauMC));
|
||||||
|
|
|
@ -100,10 +100,10 @@ void fixedRhoFvPatchScalarField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchField<scalar>& psip =
|
const fvPatchField<scalar>& psip =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("psi");
|
lookupPatchField<volScalarField, scalar>("psi");
|
||||||
|
|
||||||
const fvPatchField<scalar>& pp =
|
const fvPatchField<scalar>& pp =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("p");
|
lookupPatchField<volScalarField, scalar>("p");
|
||||||
|
|
||||||
operator==(psip*pp);
|
operator==(psip*pp);
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,16 @@ tmp<fvVectorMatrix> UEqn
|
||||||
);
|
);
|
||||||
|
|
||||||
if (oCorr == nOuterCorr - 1)
|
if (oCorr == nOuterCorr - 1)
|
||||||
|
{
|
||||||
|
if (mesh.solutionDict().relax("UFinal"))
|
||||||
|
{
|
||||||
|
UEqn().relax(mesh.solutionDict().relaxationFactor("UFinal"));
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
UEqn().relax(1);
|
UEqn().relax(1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UEqn().relax();
|
UEqn().relax();
|
||||||
|
@ -22,7 +29,7 @@ if (momentumPredictor)
|
||||||
{
|
{
|
||||||
if (oCorr == nOuterCorr-1)
|
if (oCorr == nOuterCorr-1)
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p), mesh.solver("UFinal"));
|
solve(UEqn() == -fvc::grad(p), mesh.solutionDict().solver("UFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
if (oCorr == nOuterCorr-1)
|
if (oCorr == nOuterCorr-1)
|
||||||
{
|
{
|
||||||
hEqn.relax();
|
hEqn.relax();
|
||||||
hEqn.solve(mesh.solver("hFinal"));
|
hEqn.solve(mesh.solutionDict().solver("hFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,7 +36,7 @@ if (transonic)
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver("pFinal"));
|
pEqn.solve(mesh.solutionDict().solver("pFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ else
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver("pFinal"));
|
pEqn.solve(mesh.solutionDict().solver("pFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,9 +8,16 @@ tmp<fvVectorMatrix> UEqn
|
||||||
);
|
);
|
||||||
|
|
||||||
if (oCorr == nOuterCorr-1)
|
if (oCorr == nOuterCorr-1)
|
||||||
|
{
|
||||||
|
if (mesh.solutionDict().relax("UFinal"))
|
||||||
|
{
|
||||||
|
UEqn().relax(mesh.solutionDict().relaxationFactor("UFinal"));
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
UEqn().relax(1);
|
UEqn().relax(1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UEqn().relax();
|
UEqn().relax();
|
||||||
|
@ -25,7 +32,7 @@ if (momentumPredictor)
|
||||||
{
|
{
|
||||||
if (oCorr == nOuterCorr-1)
|
if (oCorr == nOuterCorr-1)
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p), mesh.solver("UFinal"));
|
solve(UEqn() == -fvc::grad(p), mesh.solutionDict().solver("UFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@ if (transonic)
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver("pFinal"));
|
pEqn.solve(mesh.solutionDict().solver("pFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -77,7 +77,7 @@ else
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver("pFinal"));
|
pEqn.solve(mesh.solutionDict().solver("pFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@ if (transonic)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relax the pressure equation to ensure diagonal-dominance
|
// Relax the pressure equation to ensure diagonal-dominance
|
||||||
pEqn.relax(mesh.relaxationFactor("pEqn"));
|
pEqn.relax(mesh.solutionDict().relaxationFactor("pEqn"));
|
||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
|
|
|
@ -129,13 +129,13 @@ void inviscidWallPFvPatchScalarField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchField<vector>& rhoUp =
|
const fvPatchField<vector>& rhoUp =
|
||||||
patch().lookupPatchField<volVectorField, vector>("rhoU");
|
lookupPatchField<volVectorField, vector>("rhoU");
|
||||||
|
|
||||||
const fvsPatchField<scalar>& phip =
|
const fvsPatchField<scalar>& phip =
|
||||||
patch().lookupPatchField<surfaceScalarField, scalar>("phi");
|
lookupPatchField<surfaceScalarField, scalar>("phi");
|
||||||
|
|
||||||
const fvsPatchField<scalar>& rAp =
|
const fvsPatchField<scalar>& rAp =
|
||||||
patch().lookupPatchField<surfaceScalarField, scalar>("rrhoUAf");
|
lookupPatchField<surfaceScalarField, scalar>("rrhoUAf");
|
||||||
|
|
||||||
gradient() = (fluxFraction_*phip - (patch().Sf() & rhoUp))/
|
gradient() = (fluxFraction_*phip - (patch().Sf() & rhoUp))/
|
||||||
(rAp*patch().magSf());
|
(rAp*patch().magSf());
|
||||||
|
|
|
@ -98,10 +98,10 @@ void fixedRhoFvPatchScalarField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchField<scalar>& psip =
|
const fvPatchField<scalar>& psip =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("psi");
|
lookupPatchField<volScalarField, scalar>("psi");
|
||||||
|
|
||||||
const fvPatchField<scalar>& pp =
|
const fvPatchField<scalar>& pp =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("p");
|
lookupPatchField<volScalarField, scalar>("p");
|
||||||
|
|
||||||
operator==(psip*pp);
|
operator==(psip*pp);
|
||||||
|
|
||||||
|
|
|
@ -111,10 +111,10 @@ void gradientRhoFvPatchScalarField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchField<scalar>& psip =
|
const fvPatchField<scalar>& psip =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("psi");
|
lookupPatchField<volScalarField, scalar>("psi");
|
||||||
|
|
||||||
const fvPatchField<scalar>& pp =
|
const fvPatchField<scalar>& pp =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("p");
|
lookupPatchField<volScalarField, scalar>("p");
|
||||||
|
|
||||||
gradient() = psip*pp.snGrad() + psip.snGrad()*pp;
|
gradient() = psip*pp.snGrad() + psip.snGrad()*pp;
|
||||||
|
|
||||||
|
|
|
@ -105,13 +105,13 @@ void fixedRhoEFvPatchScalarField::updateCoeffs()
|
||||||
dimensionedScalar Cv(thermodynamicProperties.lookup("Cv"));
|
dimensionedScalar Cv(thermodynamicProperties.lookup("Cv"));
|
||||||
|
|
||||||
const fvPatchScalarField& rhop =
|
const fvPatchScalarField& rhop =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
lookupPatchField<volScalarField, scalar>("rho");
|
||||||
|
|
||||||
const fvPatchVectorField& rhoUp =
|
const fvPatchVectorField& rhoUp =
|
||||||
patch().lookupPatchField<volVectorField, vector>("rhoU");
|
lookupPatchField<volVectorField, vector>("rhoU");
|
||||||
|
|
||||||
const fvPatchScalarField& Tp =
|
const fvPatchScalarField& Tp =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("T");
|
lookupPatchField<volScalarField, scalar>("T");
|
||||||
|
|
||||||
operator==(rhop*(Cv.value()*Tp + 0.5*magSqr(rhoUp/rhop)));
|
operator==(rhop*(Cv.value()*Tp + 0.5*magSqr(rhoUp/rhop)));
|
||||||
|
|
||||||
|
|
|
@ -137,11 +137,11 @@ void mixedRhoEFvPatchScalarField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchField<scalar>& rhop =
|
const fvPatchField<scalar>& rhop =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
lookupPatchField<volScalarField, scalar>("rho");
|
||||||
const fvPatchField<vector>& rhoUp =
|
const fvPatchField<vector>& rhoUp =
|
||||||
patch().lookupPatchField<volVectorField, vector>("rhoU");
|
lookupPatchField<volVectorField, vector>("rhoU");
|
||||||
// fvPatchField<scalar>& Tp =
|
// fvPatchField<scalar>& Tp =
|
||||||
// patch().lookupPatchField<volScalarField, scalar>("T");
|
// lookupPatchField<volScalarField, scalar>("T");
|
||||||
|
|
||||||
const volScalarField& T = db().lookupObject<volScalarField>("T");
|
const volScalarField& T = db().lookupObject<volScalarField>("T");
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
|
@ -98,10 +98,10 @@ void fixedRhoUFvPatchVectorField::updateCoeffs()
|
||||||
}
|
}
|
||||||
|
|
||||||
const fvPatchScalarField& rhop =
|
const fvPatchScalarField& rhop =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
lookupPatchField<volScalarField, scalar>("rho");
|
||||||
|
|
||||||
const fvPatchVectorField& Up =
|
const fvPatchVectorField& Up =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
lookupPatchField<volVectorField, vector>("U");
|
||||||
|
|
||||||
operator==(rhop*Up);
|
operator==(rhop*Up);
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ int main(int argc, char *argv[])
|
||||||
mesh,
|
mesh,
|
||||||
fields,
|
fields,
|
||||||
phiv,
|
phiv,
|
||||||
mesh.divScheme("div(phiv,rhoUH)")
|
mesh.schemesDict().divScheme("div(phiv,rhoUH)")
|
||||||
);
|
);
|
||||||
|
|
||||||
solve
|
solve
|
||||||
|
|
|
@ -95,25 +95,28 @@ int main(int argc, char *argv[])
|
||||||
// Prepare block system
|
// Prepare block system
|
||||||
BlockLduMatrix<vector2> blockM(mesh);
|
BlockLduMatrix<vector2> blockM(mesh);
|
||||||
|
|
||||||
|
//- Transfer the coupled interface list for processor/cyclic/etc.
|
||||||
|
// boundaries
|
||||||
|
blockM.interfaces() = blockT.boundaryField().blockInterfaces();
|
||||||
|
|
||||||
// Grab block diagonal and set it to zero
|
// Grab block diagonal and set it to zero
|
||||||
Field<tensor2>& d = blockM.diag().asSquare();
|
Field<tensor2>& d = blockM.diag().asSquare();
|
||||||
d = tensor2::zero;
|
d = tensor2::zero;
|
||||||
|
|
||||||
// Grab linear off-diagonal and set it to zero
|
// Grab linear off-diagonal and set it to zero
|
||||||
Field<vector2>& u = blockM.upper().asLinear();
|
|
||||||
Field<vector2>& l = blockM.lower().asLinear();
|
Field<vector2>& l = blockM.lower().asLinear();
|
||||||
|
Field<vector2>& u = blockM.upper().asLinear();
|
||||||
u = vector2::zero;
|
u = vector2::zero;
|
||||||
l = vector2::zero;
|
l = vector2::zero;
|
||||||
|
|
||||||
vector2Field& blockX = blockT.internalField();
|
vector2Field& blockX = blockT.internalField();
|
||||||
// vector2Field blockX(mesh.nCells(), vector2::zero);
|
|
||||||
vector2Field blockB(mesh.nCells(), vector2::zero);
|
vector2Field blockB(mesh.nCells(), vector2::zero);
|
||||||
|
|
||||||
//- Inset equations into block Matrix
|
//- Inset equations into block Matrix
|
||||||
blockMatrixTools::insertEquation(0, TEqn, blockM, blockX, blockB);
|
blockMatrixTools::insertEquation(0, TEqn, blockM, blockX, blockB);
|
||||||
blockMatrixTools::insertEquation(1, TsEqn, blockM, blockX, blockB);
|
blockMatrixTools::insertEquation(1, TsEqn, blockM, blockX, blockB);
|
||||||
|
|
||||||
//- Add off-diagonal terms and remove from Block source
|
//- Add off-diagonal terms and remove from block source
|
||||||
forAll(d, i)
|
forAll(d, i)
|
||||||
{
|
{
|
||||||
d[i](0, 1) = -alpha.value()*mesh.V()[i];
|
d[i](0, 1) = -alpha.value()*mesh.V()[i];
|
||||||
|
@ -123,36 +126,13 @@ int main(int argc, char *argv[])
|
||||||
blockB[i][1] -= alpha.value()*blockX[i][0]*mesh.V()[i];
|
blockB[i][1] -= alpha.value()*blockX[i][0]*mesh.V()[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Transfer the coupled interface list for processor/cyclic/etc. boundaries
|
|
||||||
blockM.interfaces() = blockT.boundaryField().blockInterfaces();
|
|
||||||
|
|
||||||
//- Transfer the coupled interface coefficients
|
|
||||||
forAll(mesh.boundaryMesh(), patchI)
|
|
||||||
{
|
|
||||||
if (blockM.interfaces().set(patchI))
|
|
||||||
{
|
|
||||||
Field<vector2>& coupledLower = blockM.coupleLower()[patchI].asLinear();
|
|
||||||
Field<vector2>& coupledUpper = blockM.coupleUpper()[patchI].asLinear();
|
|
||||||
|
|
||||||
const scalarField& TLower = TEqn.internalCoeffs()[patchI];
|
|
||||||
const scalarField& TUpper = TEqn.boundaryCoeffs()[patchI];
|
|
||||||
const scalarField& TsLower = TsEqn.internalCoeffs()[patchI];
|
|
||||||
const scalarField& TsUpper = TsEqn.boundaryCoeffs()[patchI];
|
|
||||||
|
|
||||||
blockMatrixTools::blockInsert(0, TLower, coupledLower);
|
|
||||||
blockMatrixTools::blockInsert(1, TsLower, coupledLower);
|
|
||||||
blockMatrixTools::blockInsert(0, TUpper, coupledUpper);
|
|
||||||
blockMatrixTools::blockInsert(1, TsUpper, coupledUpper);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Block coupled solver call
|
//- Block coupled solver call
|
||||||
BlockSolverPerformance<vector2> solverPerf =
|
BlockSolverPerformance<vector2> solverPerf =
|
||||||
BlockLduSolver<vector2>::New
|
BlockLduSolver<vector2>::New
|
||||||
(
|
(
|
||||||
word("blockVar"),
|
blockT.name(),
|
||||||
blockM,
|
blockM,
|
||||||
mesh.solver("blockVar")
|
mesh.solutionDict().solver(blockT.name())
|
||||||
)->solve(blockX, blockB);
|
)->solve(blockX, blockB);
|
||||||
|
|
||||||
solverPerf.print();
|
solverPerf.print();
|
||||||
|
|
|
@ -1,247 +0,0 @@
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright held by original author
|
|
||||||
\\/ M anipulation |
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
License
|
|
||||||
This file is part of OpenFOAM.
|
|
||||||
|
|
||||||
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
|
|
||||||
Free Software Foundation; either version 2 of the License, or (at your
|
|
||||||
option) any later version.
|
|
||||||
|
|
||||||
OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
|
||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace blockMatrixTools
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
template<class BlockType>
|
|
||||||
void blockInsert
|
|
||||||
(
|
|
||||||
const direction dir,
|
|
||||||
const scalarField& x,
|
|
||||||
Field<BlockType>& blockX
|
|
||||||
)
|
|
||||||
{
|
|
||||||
forAll (x, i)
|
|
||||||
{
|
|
||||||
blockX[i](dir) = x[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class BlockType>
|
|
||||||
void blockRetrieve
|
|
||||||
(
|
|
||||||
const direction dir,
|
|
||||||
scalarField& x,
|
|
||||||
const Field<BlockType>& blockX
|
|
||||||
)
|
|
||||||
{
|
|
||||||
forAll (x, i)
|
|
||||||
{
|
|
||||||
x[i] = blockX[i](dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class BlockType>
|
|
||||||
void insertDiagSource
|
|
||||||
(
|
|
||||||
const direction dir,
|
|
||||||
const fvScalarMatrix& m,
|
|
||||||
BlockLduMatrix<BlockType>& blockM,
|
|
||||||
Field<BlockType>& blockB
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// Prepare the diagonal and source
|
|
||||||
|
|
||||||
scalarField diag = m.diag();
|
|
||||||
scalarField source = m.source();
|
|
||||||
|
|
||||||
// Add boundary source contribution
|
|
||||||
m.addBoundaryDiag(diag, 0);
|
|
||||||
m.addBoundarySource(source, false);
|
|
||||||
|
|
||||||
if (blockM.diag().activeType() == blockCoeffBase::UNALLOCATED)
|
|
||||||
{
|
|
||||||
blockM.diag().asScalar() = diag;
|
|
||||||
}
|
|
||||||
else if
|
|
||||||
(
|
|
||||||
blockM.diag().activeType() == blockCoeffBase::SCALAR
|
|
||||||
|| blockM.diag().activeType() == blockCoeffBase::LINEAR
|
|
||||||
)
|
|
||||||
{
|
|
||||||
typename CoeffField<BlockType>::linearTypeField& blockDiag =
|
|
||||||
blockM.diag().asLinear();
|
|
||||||
|
|
||||||
forAll (diag, i)
|
|
||||||
{
|
|
||||||
blockDiag[i](dir) = diag[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (blockM.diag().activeType() == blockCoeffBase::SQUARE)
|
|
||||||
{
|
|
||||||
typename CoeffField<BlockType>::squareTypeField& blockDiag =
|
|
||||||
blockM.diag().asSquare();
|
|
||||||
|
|
||||||
forAll (diag, i)
|
|
||||||
{
|
|
||||||
blockDiag[i](dir, dir) = diag[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
blockInsert(dir, source, blockB);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class BlockType>
|
|
||||||
void insertUpperLower
|
|
||||||
(
|
|
||||||
const direction dir,
|
|
||||||
const fvScalarMatrix& m,
|
|
||||||
BlockLduMatrix<BlockType>& blockM
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (m.diagonal())
|
|
||||||
{
|
|
||||||
// Matrix for insertion is diagonal-only: nothing to do
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m.hasUpper())
|
|
||||||
{
|
|
||||||
const scalarField& upper = m.upper();
|
|
||||||
|
|
||||||
if (blockM.upper().activeType() == blockCoeffBase::UNALLOCATED)
|
|
||||||
{
|
|
||||||
blockM.upper().asScalar() = upper;
|
|
||||||
}
|
|
||||||
else if
|
|
||||||
(
|
|
||||||
blockM.upper().activeType() == blockCoeffBase::SCALAR
|
|
||||||
|| blockM.upper().activeType() == blockCoeffBase::LINEAR
|
|
||||||
)
|
|
||||||
{
|
|
||||||
typename CoeffField<BlockType>::linearTypeField& blockUpper =
|
|
||||||
blockM.upper().asLinear();
|
|
||||||
|
|
||||||
forAll (upper, i)
|
|
||||||
{
|
|
||||||
blockUpper[i](dir) = upper[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (blockM.upper().activeType() == blockCoeffBase::SQUARE)
|
|
||||||
{
|
|
||||||
typename CoeffField<BlockType>::squareTypeField& blockUpper =
|
|
||||||
blockM.upper().asSquare();
|
|
||||||
|
|
||||||
forAll (upper, i)
|
|
||||||
{
|
|
||||||
blockUpper[i](dir, dir) = upper[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"void insertUpperLower\n"
|
|
||||||
"(\n"
|
|
||||||
" const direction dir,\n"
|
|
||||||
" const fvScalarMatrix& m,\n"
|
|
||||||
" BlockLduMatrix<BlockType>& blockM\n"
|
|
||||||
")"
|
|
||||||
) << "Error in matrix insertion: problem with block structure"
|
|
||||||
<< abort(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m.symmetric() && blockM.symmetric())
|
|
||||||
{
|
|
||||||
Info<< "Both m and blockM are symmetric: inserting only upper triangle"
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Either scalar or block matrix is asymmetric: insert lower triangle
|
|
||||||
const scalarField& lower = m.lower();
|
|
||||||
|
|
||||||
if (blockM.lower().activeType() == blockCoeffBase::UNALLOCATED)
|
|
||||||
{
|
|
||||||
blockM.lower().asScalar() = lower;
|
|
||||||
}
|
|
||||||
else if
|
|
||||||
(
|
|
||||||
blockM.lower().activeType() == blockCoeffBase::SCALAR
|
|
||||||
|| blockM.lower().activeType() == blockCoeffBase::LINEAR
|
|
||||||
)
|
|
||||||
{
|
|
||||||
typename CoeffField<BlockType>::linearTypeField& blockLower =
|
|
||||||
blockM.lower().asLinear();
|
|
||||||
|
|
||||||
forAll (lower, i)
|
|
||||||
{
|
|
||||||
blockLower[i](dir) = lower[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (blockM.lower().activeType() == blockCoeffBase::SQUARE)
|
|
||||||
{
|
|
||||||
typename CoeffField<BlockType>::squareTypeField& blockLower =
|
|
||||||
blockM.lower().asSquare();
|
|
||||||
|
|
||||||
forAll (lower, i)
|
|
||||||
{
|
|
||||||
blockLower[i](dir, dir) = lower[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class BlockType>
|
|
||||||
void insertEquation
|
|
||||||
(
|
|
||||||
const direction dir,
|
|
||||||
const fvScalarMatrix& m,
|
|
||||||
BlockLduMatrix<BlockType>& blockM,
|
|
||||||
Field<BlockType>& blockX,
|
|
||||||
Field<BlockType>& blockB
|
|
||||||
)
|
|
||||||
{
|
|
||||||
insertDiagSource(dir, m, blockM, blockB);
|
|
||||||
insertUpperLower(dir, m, blockM);
|
|
||||||
blockInsert(dir, m.psi(), blockX);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace blockMatrixTools
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -113,6 +113,7 @@ addSolverToBlockMatrix(Vector2, blockCGSolverVector2, symMatrix);
|
||||||
typedef BlockGaussSeidelSolver<vector2> blockGaussSeidelSolverVector2;
|
typedef BlockGaussSeidelSolver<vector2> blockGaussSeidelSolverVector2;
|
||||||
makeBlockSolverTypeName(blockGaussSeidelSolverVector2);
|
makeBlockSolverTypeName(blockGaussSeidelSolverVector2);
|
||||||
addSolverToBlockMatrix(Vector2, blockGaussSeidelSolverVector2, symMatrix);
|
addSolverToBlockMatrix(Vector2, blockGaussSeidelSolverVector2, symMatrix);
|
||||||
|
addSolverToBlockMatrix(Vector2, blockGaussSeidelSolverVector2, asymMatrix);
|
||||||
|
|
||||||
typedef BlockGMRESSolver<vector2> blockGMRESSolverVector2;
|
typedef BlockGMRESSolver<vector2> blockGMRESSolverVector2;
|
||||||
makeBlockSolverTypeName(blockGMRESSolverVector2);
|
makeBlockSolverTypeName(blockGMRESSolverVector2);
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedVector2(word(), dimless, vector2::zero)
|
dimensionedVector2("zero", dimless, vector2::zero)
|
||||||
);
|
);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -53,38 +53,6 @@
|
||||||
|
|
||||||
blockT.write();
|
blockT.write();
|
||||||
|
|
||||||
// Removed comparison with the reference field. HJ, 17/Jun/2010
|
|
||||||
#if (0)
|
|
||||||
Info<< "Reading field Tref\n" << endl;
|
|
||||||
volScalarField Tref
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"Tref",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
Info<< "Reading field Tsref\n" << endl;
|
|
||||||
volScalarField Tsref
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"Tsref",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Info<< "Reading field U\n" << endl;
|
Info<< "Reading field U\n" << endl;
|
||||||
|
|
||||||
volVectorField U
|
volVectorField U
|
||||||
|
|
|
@ -114,7 +114,7 @@ int main(int argc, char *argv[])
|
||||||
(
|
(
|
||||||
"HrvsVar",
|
"HrvsVar",
|
||||||
blockMatrix,
|
blockMatrix,
|
||||||
mesh.solver("HrvsVar")
|
mesh.solutionDict().solver("HrvsVar")
|
||||||
)->solve(psi, source);
|
)->solve(psi, source);
|
||||||
|
|
||||||
Info << "Psi: " << psi << endl;
|
Info << "Psi: " << psi << endl;
|
||||||
|
|
|
@ -5,4 +5,5 @@ EXE_INC = \
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lcoupledLduMatrix \
|
-lcoupledLduMatrix \
|
||||||
-lfiniteVolume
|
-lfiniteVolume \
|
||||||
|
-llduSolvers
|
||||||
|
|
|
@ -46,6 +46,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
# include "createTime.H"
|
# include "createTime.H"
|
||||||
# include "createFluidMesh.H"
|
# include "createFluidMesh.H"
|
||||||
|
# include "attachPatches.H"
|
||||||
# include "createSolidMesh.H"
|
# include "createSolidMesh.H"
|
||||||
# include "createFields.H"
|
# include "createFields.H"
|
||||||
# include "createSolidFields.H"
|
# include "createSolidFields.H"
|
||||||
|
|
|
@ -64,13 +64,10 @@
|
||||||
|
|
||||||
# include "createPhi.H"
|
# include "createPhi.H"
|
||||||
|
|
||||||
|
|
||||||
label pRefCell = 0;
|
label pRefCell = 0;
|
||||||
scalar pRefValue = 0.0;
|
scalar pRefValue = 0.0;
|
||||||
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
|
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
|
||||||
|
|
||||||
# include "attachPatches.H"
|
|
||||||
|
|
||||||
Info<< "Reading field DT\n" << endl;
|
Info<< "Reading field DT\n" << endl;
|
||||||
volScalarField DT
|
volScalarField DT
|
||||||
(
|
(
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Info<< "Create mesh for time = "
|
Info<< "Create mesh for time = "
|
||||||
<< runTime.timeName() << nl << endl;
|
<< runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
Info << "f1" << endl;
|
||||||
|
|
||||||
fvMesh mesh
|
fvMesh mesh
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
|
@ -11,3 +13,6 @@
|
||||||
IOobject::MUST_READ
|
IOobject::MUST_READ
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Info << "f2" << endl;
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
Info << "s1" << endl;
|
||||||
|
|
||||||
fvMesh solidMesh
|
fvMesh solidMesh
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
|
@ -8,3 +10,6 @@
|
||||||
IOobject::MUST_READ
|
IOobject::MUST_READ
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Info << "s2" << endl;
|
||||||
|
|
||||||
|
|
|
@ -14,4 +14,5 @@ EXE_LIBS = \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
$(WM_DECOMP_LIBS) \
|
$(WM_DECOMP_LIBS) \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -69,6 +69,7 @@ int main(int argc, char *argv[])
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
bool meshChanged = mesh.update();
|
bool meshChanged = mesh.update();
|
||||||
|
reduce(meshChanged, orOp<bool>());
|
||||||
|
|
||||||
if (meshChanged)
|
if (meshChanged)
|
||||||
{
|
{
|
||||||
|
@ -110,11 +111,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -4,10 +4,12 @@ EXE_INC = \
|
||||||
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel
|
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
|
||||||
|
-I$(LIB_SRC)/engine/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
|
-lfiniteVolume \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
-ldynamicMesh \
|
-ldynamicMesh \
|
||||||
-ltopoChangerFvMesh \
|
-ltopoChangerFvMesh \
|
||||||
|
@ -17,6 +19,6 @@ EXE_LIBS = \
|
||||||
-lbasicThermophysicalModels \
|
-lbasicThermophysicalModels \
|
||||||
-lspecie \
|
-lspecie \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lfiniteVolume \
|
|
||||||
$(WM_DECOMP_LIBS) \
|
$(WM_DECOMP_LIBS) \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -6,6 +6,13 @@
|
||||||
+ turbulence->divDevRhoReff(U)
|
+ turbulence->divDevRhoReff(U)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (oCorr == nOuterCorr - 1)
|
||||||
|
{
|
||||||
|
UEqn.relax(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
|
}
|
||||||
|
|
||||||
solve(UEqn == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
);
|
);
|
||||||
basicPsiThermo& thermo = pThermo();
|
basicPsiThermo& thermo = pThermo();
|
||||||
|
|
||||||
|
// Make density field with zero gradient boundary conditions to handle
|
||||||
|
// attach-detach cases. HJ, 20/Mar/2011
|
||||||
volScalarField rho
|
volScalarField rho
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
|
@ -18,7 +20,8 @@
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
thermo.rho()
|
thermo.rho(),
|
||||||
|
zeroGradientFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
rho.oldTime();
|
rho.oldTime();
|
||||||
|
|
||||||
|
@ -73,6 +76,7 @@
|
||||||
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p)
|
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
volScalarField dpdt = fvc::ddt(p);
|
||||||
|
|
||||||
volScalarField rUA
|
volScalarField rUA
|
||||||
(
|
(
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
Pav << runTime.theta() << " " << p.weightedAverage(mesh.V()).value() << endl;
|
Pav << runTime.theta() << " " << p.weightedAverage(mesh.V()).value() << endl;
|
||||||
Tav << runTime.theta() << " " << T.weightedAverage(mesh.V()).value() << endl;
|
Tav << runTime.theta() << " " << T.weightedAverage(mesh.V()).value() << endl;
|
||||||
|
|
||||||
Info << "Max T = " << max(T) << " K" << endl;
|
Info << "Max T = " << max(T).value() << " K" << endl;
|
||||||
Info << "Min T = " << min(T) << " K" << endl;
|
Info << "Min T = " << min(T).value() << " K" << endl;
|
||||||
Info << "Max p = " << max(p)/1.0e5 << " bar" << endl;
|
Info << "Max p = " << max(p).value()/1.0e5 << " bar" << endl;
|
||||||
|
|
||||||
massBal << runTime.theta() << " "
|
massBal << runTime.theta() << " "
|
||||||
<< fvc::domainIntegrate(rho).value() << endl;
|
<< fvc::domainIntegrate(rho).value() << endl;
|
||||||
volume << runTime.theta() << " " << sum(mesh.V()) << endl;
|
volume << runTime.theta() << " " << sum(mesh.V()) << endl;
|
||||||
|
|
||||||
debugT << nl << "Crank angle: " << runTime.theta() << endl;
|
debugT << nl << "Crank angle: " << runTime.theta() << endl;
|
||||||
debugT << "Max T = " << max(T) << " K" << endl;
|
debugT << "Max T = " << max(T).value() << " K" << endl;
|
||||||
debugT << "Min T = " << min(T) << " K" << endl;
|
debugT << "Min T = " << min(T).value() << " K" << endl;
|
||||||
|
|
||||||
kav << runTime.theta() << " "
|
kav << runTime.theta() << " "
|
||||||
<< (turbulence->k())().weightedAverage(mesh.V()).value() << endl;
|
<< (turbulence->k())().weightedAverage(mesh.V()).value() << endl;
|
||||||
|
|
|
@ -2,14 +2,40 @@
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
rUA = 1.0/UEqn.A();
|
rUA = 1.0/UEqn.A();
|
||||||
H = UEqn.H();
|
|
||||||
U = rUA*UEqn.H();
|
U = rUA*UEqn.H();
|
||||||
|
|
||||||
phi = fvc::interpolate(rho)
|
if (nOuterCorr != 1)
|
||||||
*((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U));
|
{
|
||||||
|
|
||||||
// Store pressure for under-relaxation
|
|
||||||
p.storePrevIter();
|
p.storePrevIter();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transonic)
|
||||||
|
{
|
||||||
|
surfaceScalarField phid =
|
||||||
|
fvc::interpolate(thermo.psi())*
|
||||||
|
((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U));
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(psi, p)
|
||||||
|
+ fvm::div(phid, p, "div(phid,p)")
|
||||||
|
- fvm::laplacian(rho*rUA, p)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi == pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
phi = fvc::interpolate(rho)*
|
||||||
|
((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U));
|
||||||
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
{
|
{
|
||||||
|
@ -27,20 +53,20 @@
|
||||||
phi += pEqn.flux();
|
phi += pEqn.flux();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Explicitly relax pressure except for last corrector
|
||||||
|
if (oCorr != nOuterCorr - 1)
|
||||||
|
{
|
||||||
|
p.relax();
|
||||||
|
}
|
||||||
|
|
||||||
# include "rhoEqn.H"
|
# include "rhoEqn.H"
|
||||||
# include "compressibleContinuityErrs.H"
|
# include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
// Warning:
|
|
||||||
// rho does not carry working boundary conditions and needs to be updated
|
|
||||||
// strictly according to the thermodynamics package
|
|
||||||
// HJ, 22/Aug/2007
|
|
||||||
thermo.correct();
|
|
||||||
rho = thermo.rho();
|
|
||||||
|
|
||||||
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
|
||||||
|
|
||||||
U -= rUA*fvc::grad(p);
|
U -= rUA*fvc::grad(p);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
}
|
|
||||||
|
|
||||||
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
|
dpdt = fvc::ddt(p);
|
||||||
|
}
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
# include "readTimeControls.H"
|
|
||||||
# include "readPISOControls.H"
|
|
||||||
|
|
||||||
bool correctPhi = false;
|
|
||||||
if (piso.found("correctPhi"))
|
|
||||||
{
|
|
||||||
correctPhi = Switch(piso.lookup("correctPhi"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool checkMeshCourantNo = false;
|
|
||||||
if (piso.found("checkMeshCourantNo"))
|
|
||||||
{
|
|
||||||
checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo"));
|
|
||||||
}
|
|
|
@ -49,8 +49,8 @@ int main(int argc, char *argv[])
|
||||||
# include "setRootCase.H"
|
# include "setRootCase.H"
|
||||||
|
|
||||||
# include "createEngineTime.H"
|
# include "createEngineTime.H"
|
||||||
# include "createDynamicFvMesh.H"
|
# include "createEngineDynamicMesh.H"
|
||||||
# include "readPISOControls.H"
|
# include "readPIMPLEControls.H"
|
||||||
# include "createFields.H"
|
# include "createFields.H"
|
||||||
# include "initContinuityErrs.H"
|
# include "initContinuityErrs.H"
|
||||||
# include "readEngineTimeControls.H"
|
# include "readEngineTimeControls.H"
|
||||||
|
@ -67,7 +67,9 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
# include "readControls.H"
|
# include "readPIMPLEControls.H"
|
||||||
|
# include "checkTotalVolume.H"
|
||||||
|
# include "readEngineTimeControls.H"
|
||||||
# include "compressibleCourantNo.H"
|
# include "compressibleCourantNo.H"
|
||||||
# include "setDeltaT.H"
|
# include "setDeltaT.H"
|
||||||
|
|
||||||
|
@ -75,38 +77,48 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl;
|
Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl;
|
||||||
|
|
||||||
// make phi relative
|
// Make flux absolute
|
||||||
|
|
||||||
phi += meshFlux;
|
phi += meshFlux;
|
||||||
|
|
||||||
bool meshChanged = mesh.update();
|
bool meshChanged = mesh.update();
|
||||||
|
|
||||||
|
# include "volContinuity.H"
|
||||||
|
|
||||||
|
mesh.setBoundaryVelocity(U);
|
||||||
|
|
||||||
if (meshChanged)
|
if (meshChanged)
|
||||||
{
|
{
|
||||||
thermo.correct();
|
thermo.correct();
|
||||||
|
rho = thermo.rho();
|
||||||
# include "checkTotalVolume.H"
|
rho.correctBoundaryConditions();
|
||||||
# include "compressibleCorrectPhi.H"
|
|
||||||
# include "CourantNo.H"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
meshFlux = fvc::interpolate(rho)*fvc::meshPhi(rho, U);
|
meshFlux = fvc::interpolate(rho)*fvc::meshPhi(rho, U);
|
||||||
|
|
||||||
// Make phi absolute
|
phi = fvc::interpolate(rho)
|
||||||
|
*((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U));
|
||||||
|
|
||||||
phi -= meshFlux;
|
DpDt = dpdt + fvc::div(phi/fvc::interpolate(rho), p)
|
||||||
|
- fvc::div(phi/fvc::interpolate(rho) + fvc::meshPhi(U))*p;
|
||||||
|
|
||||||
# include "rhoEqn.H"
|
|
||||||
|
|
||||||
// --- SIMPLE loop
|
|
||||||
for (int corr=1; corr<=nCorr; corr++)
|
|
||||||
{
|
{
|
||||||
|
# include "compressibleCourantNo.H"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pressure-velocity corrector
|
||||||
|
int oCorr = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
# include "rhoEqn.H"
|
||||||
# include "UEqn.H"
|
# include "UEqn.H"
|
||||||
|
|
||||||
# include "hEqn.H"
|
// --- PISO loop
|
||||||
|
for (int corr = 1; corr <= nCorr; corr++)
|
||||||
|
{
|
||||||
# include "pEqn.H"
|
# include "pEqn.H"
|
||||||
|
# include "hEqn.H"
|
||||||
}
|
}
|
||||||
|
} while (++oCorr < nOuterCorr);
|
||||||
|
|
||||||
turbulence->correct();
|
turbulence->correct();
|
||||||
|
|
||||||
|
|
|
@ -21,4 +21,5 @@ EXE_LIBS = \
|
||||||
-lincompressibleTransportModels \
|
-lincompressibleTransportModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
$(WM_DECOMP_LIBS) \
|
$(WM_DECOMP_LIBS) \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -69,6 +69,7 @@ int main(int argc, char *argv[])
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
bool meshChanged = mesh.update();
|
bool meshChanged = mesh.update();
|
||||||
|
reduce(meshChanged, orOp<bool>());
|
||||||
|
|
||||||
if (meshChanged)
|
if (meshChanged)
|
||||||
{
|
{
|
||||||
|
@ -109,11 +110,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -21,11 +21,11 @@
|
||||||
|
|
||||||
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -34,11 +34,11 @@
|
||||||
|
|
||||||
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -132,12 +132,12 @@ Foam::solidWallHeatFluxTemperatureFvPatchScalarField::K() const
|
||||||
|
|
||||||
if (mesh.objectRegistry::foundObject<volScalarField>(KName_))
|
if (mesh.objectRegistry::foundObject<volScalarField>(KName_))
|
||||||
{
|
{
|
||||||
return patch().lookupPatchField<volScalarField, scalar>(KName_);
|
return lookupPatchField<volScalarField, scalar>(KName_);
|
||||||
}
|
}
|
||||||
else if (mesh.objectRegistry::foundObject<volSymmTensorField>(KName_))
|
else if (mesh.objectRegistry::foundObject<volSymmTensorField>(KName_))
|
||||||
{
|
{
|
||||||
const symmTensorField& KWall =
|
const symmTensorField& KWall =
|
||||||
patch().lookupPatchField<volSymmTensorField, scalar>(KName_);
|
lookupPatchField<volSymmTensorField, scalar>(KName_);
|
||||||
|
|
||||||
vectorField n = patch().nf();
|
vectorField n = patch().nf();
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ solidWallMixedTemperatureCoupledFvPatchScalarField
|
||||||
const Foam::fvPatchScalarField&
|
const Foam::fvPatchScalarField&
|
||||||
Foam::solidWallMixedTemperatureCoupledFvPatchScalarField::K() const
|
Foam::solidWallMixedTemperatureCoupledFvPatchScalarField::K() const
|
||||||
{
|
{
|
||||||
return this->patch().lookupPatchField<volScalarField, scalar>(KName_);
|
return this->lookupPatchField<volScalarField, scalar>(KName_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
if (oCorr == nOuterCorr-1)
|
if (oCorr == nOuterCorr-1)
|
||||||
{
|
{
|
||||||
hEqn.relax();
|
hEqn.relax();
|
||||||
hEqn.solve(mesh.solver("hFinal"));
|
hEqn.solve(mesh.solutionDict().solver("hFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,11 +35,11 @@
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -132,7 +132,7 @@ void Foam::solidWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const scalarField& Kw = patch().lookupPatchField<volScalarField, scalar>
|
const scalarField& Kw = lookupPatchField<volScalarField, scalar>
|
||||||
(
|
(
|
||||||
KName_
|
KName_
|
||||||
);
|
);
|
||||||
|
|
|
@ -99,11 +99,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -10,4 +10,5 @@ EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -24,6 +24,16 @@
|
||||||
pcorrTypes
|
pcorrTypes
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Initialise flux with interpolated velocity
|
||||||
|
phi = fvc::interpolate(U) & mesh.Sf();
|
||||||
|
|
||||||
|
if (pcorr.needReference())
|
||||||
|
{
|
||||||
|
fvc::makeRelative(phi, U);
|
||||||
|
adjustPhi(phi, U, pcorr);
|
||||||
|
fvc::makeAbsolute(phi, U);
|
||||||
|
}
|
||||||
|
|
||||||
for(int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
|
for(int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
|
||||||
{
|
{
|
||||||
fvScalarMatrix pcorrEqn
|
fvScalarMatrix pcorrEqn
|
||||||
|
|
|
@ -56,22 +56,23 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
# include "readControls.H"
|
# include "readControls.H"
|
||||||
# include "checkTotalVolume.H"
|
# include "checkTotalVolume.H"
|
||||||
# include "CourantNo.H"
|
|
||||||
|
|
||||||
# include "setDeltaT.H"
|
|
||||||
|
|
||||||
// Make the fluxes absolute
|
// Make the fluxes absolute
|
||||||
fvc::makeAbsolute(phi, U);
|
fvc::makeAbsolute(phi, U);
|
||||||
|
|
||||||
|
# include "CourantNo.H"
|
||||||
|
# include "setDeltaT.H"
|
||||||
|
|
||||||
runTime++;
|
runTime++;
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
bool meshChanged = mesh.update();
|
bool meshChanged = mesh.update();
|
||||||
|
reduce(meshChanged, orOp<bool>());
|
||||||
|
|
||||||
# include "volContinuity.H"
|
# include "volContinuity.H"
|
||||||
|
|
||||||
if (correctPhi && meshChanged)
|
if (correctPhi && (mesh.moving() || meshChanged))
|
||||||
{
|
{
|
||||||
// Fluxes will be corrected to absolute velocity
|
// Fluxes will be corrected to absolute velocity
|
||||||
// HJ, 6/Feb/2009
|
// HJ, 6/Feb/2009
|
||||||
|
@ -81,9 +82,9 @@ int main(int argc, char *argv[])
|
||||||
// Make the fluxes relative to the mesh motion
|
// Make the fluxes relative to the mesh motion
|
||||||
fvc::makeRelative(phi, U);
|
fvc::makeRelative(phi, U);
|
||||||
|
|
||||||
if (meshChanged)
|
if (mesh.moving() && checkMeshCourantNo)
|
||||||
{
|
{
|
||||||
# include "CourantNo.H"
|
# include "meshCourantNo.H"
|
||||||
}
|
}
|
||||||
|
|
||||||
# include "UEqn.H"
|
# include "UEqn.H"
|
||||||
|
@ -111,11 +112,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -10,4 +10,5 @@ EXE_LIBS = \
|
||||||
-lengine \
|
-lengine \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
|
@ -69,6 +69,7 @@ int main(int argc, char *argv[])
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
bool meshChanged = mesh.update();
|
bool meshChanged = mesh.update();
|
||||||
|
reduce(meshChanged, orOp<bool>());
|
||||||
|
|
||||||
# include "volContinuity.H"
|
# include "volContinuity.H"
|
||||||
|
|
||||||
|
@ -120,11 +121,11 @@ int main(int argc, char *argv[])
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -17,4 +17,5 @@ EXE_LIBS = \
|
||||||
-lincompressibleRASModels \
|
-lincompressibleRASModels \
|
||||||
-lincompressibleLESModels \
|
-lincompressibleLESModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-llduSolvers
|
-llduSolvers \
|
||||||
|
-L$(MESQUITE_LIB_DIR) -lmesquite
|
||||||
|
|
|
@ -5,7 +5,18 @@
|
||||||
+ turbulence->divDevReff(U)
|
+ turbulence->divDevReff(U)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (ocorr != nOuterCorr-1)
|
if (ocorr == nOuterCorr - 1)
|
||||||
|
{
|
||||||
|
if (mesh.solutionDict().relax("UFinal"))
|
||||||
|
{
|
||||||
|
UEqn.relax(mesh.solutionDict().relaxationFactor("UFinal"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UEqn.relax(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,16 @@
|
||||||
pcorrTypes
|
pcorrTypes
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Initialise flux with interpolated velocity
|
||||||
|
phi = fvc::interpolate(U) & mesh.Sf();
|
||||||
|
|
||||||
|
if (pcorr.needReference())
|
||||||
|
{
|
||||||
|
fvc::makeRelative(phi, U);
|
||||||
|
adjustPhi(phi, U, pcorr);
|
||||||
|
fvc::makeAbsolute(phi, U);
|
||||||
|
}
|
||||||
|
|
||||||
for(int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
|
for(int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
|
||||||
{
|
{
|
||||||
fvScalarMatrix pcorrEqn
|
fvScalarMatrix pcorrEqn
|
||||||
|
|
|
@ -58,11 +58,11 @@ int main(int argc, char *argv[])
|
||||||
while (runTime.run())
|
while (runTime.run())
|
||||||
{
|
{
|
||||||
# include "readControls.H"
|
# include "readControls.H"
|
||||||
# include "CourantNo.H"
|
|
||||||
|
|
||||||
// Make the fluxes absolute
|
// Make the fluxes absolute
|
||||||
fvc::makeAbsolute(phi, U);
|
fvc::makeAbsolute(phi, U);
|
||||||
|
|
||||||
|
# include "CourantNo.H"
|
||||||
# include "setDeltaT.H"
|
# include "setDeltaT.H"
|
||||||
|
|
||||||
runTime++;
|
runTime++;
|
||||||
|
@ -70,8 +70,9 @@ int main(int argc, char *argv[])
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
bool meshChanged = mesh.update();
|
bool meshChanged = mesh.update();
|
||||||
|
reduce(meshChanged, orOp<bool>());
|
||||||
|
|
||||||
if (correctPhi && (mesh.moving() || meshChanged))
|
if (correctPhi && meshChanged)
|
||||||
{
|
{
|
||||||
# include "correctPhi.H"
|
# include "correctPhi.H"
|
||||||
}
|
}
|
||||||
|
@ -79,7 +80,7 @@ int main(int argc, char *argv[])
|
||||||
// Make the fluxes relative to the mesh motion
|
// Make the fluxes relative to the mesh motion
|
||||||
fvc::makeRelative(phi, U);
|
fvc::makeRelative(phi, U);
|
||||||
|
|
||||||
if (mesh.moving() && checkMeshCourantNo)
|
if (checkMeshCourantNo)
|
||||||
{
|
{
|
||||||
# include "meshCourantNo.H"
|
# include "meshCourantNo.H"
|
||||||
}
|
}
|
||||||
|
@ -125,11 +126,14 @@ int main(int argc, char *argv[])
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
pEqn.solve
|
||||||
|
(
|
||||||
|
mesh.solutionDict().solver(p.name() + "Final")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver(p.name()));
|
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
|
|
@ -8,9 +8,16 @@ tmp<fvVectorMatrix> UEqn
|
||||||
);
|
);
|
||||||
|
|
||||||
if (oCorr == nOuterCorr - 1)
|
if (oCorr == nOuterCorr - 1)
|
||||||
|
{
|
||||||
|
if (mesh.solutionDict().relax("UFinal"))
|
||||||
|
{
|
||||||
|
UEqn().relax(mesh.solutionDict().relaxationFactor("UFinal"));
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
UEqn().relax(1);
|
UEqn().relax(1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UEqn().relax();
|
UEqn().relax();
|
||||||
|
@ -22,7 +29,7 @@ if (momentumPredictor)
|
||||||
{
|
{
|
||||||
if (oCorr == nOuterCorr-1)
|
if (oCorr == nOuterCorr-1)
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p), mesh.solver("UFinal"));
|
solve(UEqn() == -fvc::grad(p), mesh.solutionDict().solver("UFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,7 +28,7 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
&& nonOrth == nNonOrthCorr
|
&& nonOrth == nNonOrthCorr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEqn.solve(mesh.solver("pFinal"));
|
pEqn.solve(mesh.solutionDict().solver("pFinal"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue