mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@ -60,8 +60,8 @@ doc/[Dd]oxygen/man
|
||||
# untracked configuration files
|
||||
/etc/prefs.csh
|
||||
/etc/prefs.sh
|
||||
/etc/config/*.csh
|
||||
/etc/config/*.sh
|
||||
/etc/config/prefs.csh
|
||||
/etc/config/prefs.sh
|
||||
|
||||
# source packages - anywhere
|
||||
*.tar.bz2
|
||||
|
||||
@ -126,7 +126,9 @@
|
||||
globalPointPatch. Moving mesh cases can now be run non-parallel and
|
||||
continued in parallel and reconstructed without any limitation.
|
||||
*** *New* compact binary I/O for faces and cells.
|
||||
This speeds up reading/writing meshes in binary.
|
||||
This speeds up reading/writing meshes in binary. Binary mesh reading
|
||||
is backwards (but not forwards) compatible. Use ascii mesh format or
|
||||
foamFormatConvert.
|
||||
*** *Updated* runTimeModifiable
|
||||
+ user selectable model to use for checking run-time modifiable
|
||||
dictionaries (see also doc/changes/inotify.txt):
|
||||
@ -139,8 +141,9 @@
|
||||
+ on linux optionally uses inotify instead of time stamps - more efficient
|
||||
for large numbers of monitored files. No more fileModificationSkew needed.
|
||||
+ single integer reduction instead of one reduction per monitored file.
|
||||
+ only files that can be re-read are being checked. Drastic reduction of
|
||||
number of files to check.
|
||||
+ only files that can be re-read are being checked by specifying
|
||||
in the IOobject constructor MUST_READ_IF_MODIFIED instead of
|
||||
MUST_READ. Drastic reduction of number of files to check.
|
||||
*** *New* #codeStream dictionary entry
|
||||
Uses dynamic compilation of OpenFOAM C++ code to construct dictionary.
|
||||
E.g. in blockMeshDict:
|
||||
@ -241,9 +244,11 @@
|
||||
- works in parallel
|
||||
+ =snappyHexMesh=:
|
||||
+ extrude across multi-processor boundaries
|
||||
+ preserve faceZones during layering
|
||||
+ combining patch faces after snapping
|
||||
+ preserve faceZones shape during layering
|
||||
+ combining coincident patch faces is now default after snapping
|
||||
+ *Warning*:
|
||||
- snapControls::tolerance setting fixed w.r.t. 17x. Is the
|
||||
multiplication to calculate the local search distance for nearest.
|
||||
- minMedianAxisAngle angle fixed w.r.t. 17x. Set to
|
||||
90 to get same behaviour as 130 in 17x.
|
||||
- nGrow did not work in 17x. Set to 0
|
||||
@ -308,6 +313,8 @@
|
||||
+ multipleBoxes, hotBoxes, panel, evaporationTest
|
||||
+ =interDyMFoam= tutorials:
|
||||
+ testTubeMixer: showcases =solidBodyMotionFunction=
|
||||
+ =snappyHexMesh= tutorials:
|
||||
+ flange: demonstration of feature lines in snappyHexMesh
|
||||
|
||||
* Other
|
||||
+ compilable with =clang=
|
||||
|
||||
@ -49,6 +49,10 @@ int main(int argc, char *argv[])
|
||||
|
||||
Info<< nl << "Calculating potential flow" << endl;
|
||||
|
||||
// Since solver contains no time loop it would never execute
|
||||
// function objects so do it ourselves.
|
||||
runTime.functionObjects().start();
|
||||
|
||||
adjustPhi(phi, U, p);
|
||||
|
||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
@ -99,6 +103,9 @@ int main(int argc, char *argv[])
|
||||
p.write();
|
||||
}
|
||||
|
||||
runTime.functionObjects().end();
|
||||
|
||||
|
||||
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||
<< nl << endl;
|
||||
|
||||
@ -220,7 +220,7 @@ snapControls
|
||||
//- Maximum relative distance for points to be attracted by surface.
|
||||
// True distance is this factor times local maximum edge length.
|
||||
// Note: changed(corrected) w.r.t 17x! (17x used 2* tolerance)
|
||||
tolerance 2.0;
|
||||
tolerance 1.0;
|
||||
|
||||
//- Number of mesh displacement relaxation iterations.
|
||||
nSolveIter 30;
|
||||
@ -228,6 +228,10 @@ snapControls
|
||||
//- Maximum number of snapping relaxation iterations. Should stop
|
||||
// before upon reaching a correct mesh.
|
||||
nRelaxIter 5;
|
||||
|
||||
//- Highly experimental and wip: number of feature edge snapping
|
||||
// iterations. Leave out altogether to disable.
|
||||
//nFeatureSnapIter 10;
|
||||
}
|
||||
|
||||
|
||||
@ -258,6 +262,9 @@ addLayersControls
|
||||
|
||||
|
||||
//- Wanted thickness of final added cell layer. If multiple layers
|
||||
// is the
|
||||
// thickness of the layer furthest away from the wall.
|
||||
// Relative to undistorted size of cell outside layer.
|
||||
// is the thickness of the layer furthest away from the wall.
|
||||
// See relativeSizes parameter.
|
||||
finalLayerThickness 0.3;
|
||||
@ -410,7 +417,7 @@ debug 0;
|
||||
|
||||
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
|
||||
// Note: the write tolerance needs to be higher than this.
|
||||
mergeTolerance 1E-6;
|
||||
mergeTolerance 1e-6;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -144,10 +144,30 @@ bool writeZones(const word& name, const fileName& meshDir, Time& runTime)
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
timeSelector::addOptions();
|
||||
argList::addBoolOption
|
||||
(
|
||||
"noConstant",
|
||||
"exclude the 'constant/' dir in the times list"
|
||||
);
|
||||
|
||||
# include "addRegionOption.H"
|
||||
# include "setRootCase.H"
|
||||
|
||||
// enable noConstant by switching
|
||||
if (!args.optionFound("noConstant"))
|
||||
{
|
||||
args.setOption("constant", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.unsetOption("constant");
|
||||
Info<< "Excluding the constant directory." << nl << endl;
|
||||
}
|
||||
|
||||
|
||||
# include "createTime.H"
|
||||
|
||||
|
||||
// Make sure we do not use the master-only reading since we read
|
||||
// fields (different per processor) as dictionaries.
|
||||
regIOobject::fileModificationChecking = regIOobject::timeStamp;
|
||||
|
||||
@ -98,6 +98,44 @@ autoPtr<fvMesh> createMesh
|
||||
xferCopy(labelList()),
|
||||
false
|
||||
);
|
||||
// Add some dummy zones so upon reading it does not read them
|
||||
// from the undecomposed case. Should be done as extra argument to
|
||||
// regIOobject::readStream?
|
||||
List<pointZone*> pz
|
||||
(
|
||||
1,
|
||||
new pointZone
|
||||
(
|
||||
"dummyPointZone",
|
||||
labelList(0),
|
||||
0,
|
||||
dummyMesh.pointZones()
|
||||
)
|
||||
);
|
||||
List<faceZone*> fz
|
||||
(
|
||||
1,
|
||||
new faceZone
|
||||
(
|
||||
"dummyFaceZone",
|
||||
labelList(0),
|
||||
boolList(0),
|
||||
0,
|
||||
dummyMesh.faceZones()
|
||||
)
|
||||
);
|
||||
List<cellZone*> cz
|
||||
(
|
||||
1,
|
||||
new cellZone
|
||||
(
|
||||
"dummyCellZone",
|
||||
labelList(0),
|
||||
0,
|
||||
dummyMesh.cellZones()
|
||||
)
|
||||
);
|
||||
dummyMesh.addZones(pz, fz, cz);
|
||||
//Pout<< "Writing dummy mesh to " << dummyMesh.polyMesh::objectPath()
|
||||
// << endl;
|
||||
dummyMesh.write();
|
||||
@ -239,7 +277,11 @@ autoPtr<fvMesh> createMesh
|
||||
|
||||
if (!haveMesh)
|
||||
{
|
||||
// Add the zones
|
||||
// Add the zones. Make sure to remove the old dummy ones first
|
||||
mesh.pointZones().clear();
|
||||
mesh.faceZones().clear();
|
||||
mesh.cellZones().clear();
|
||||
|
||||
List<pointZone*> pz(pointZoneNames.size());
|
||||
forAll(pointZoneNames, i)
|
||||
{
|
||||
@ -389,6 +431,12 @@ void printMeshData(const polyMesh& mesh)
|
||||
|
||||
globalIndex globalBoundaryFaces(mesh.nFaces()-mesh.nInternalFaces());
|
||||
|
||||
label maxProcCells = 0;
|
||||
label totProcFaces = 0;
|
||||
label maxProcPatches = 0;
|
||||
label totProcPatches = 0;
|
||||
label maxProcFaces = 0;
|
||||
|
||||
for (label procI = 0; procI < Pstream::nProcs(); procI++)
|
||||
{
|
||||
Info<< endl
|
||||
@ -413,7 +461,32 @@ void printMeshData(const polyMesh& mesh)
|
||||
<< " Number of processor faces = " << nProcFaces << nl
|
||||
<< " Number of boundary faces = "
|
||||
<< globalBoundaryFaces.localSize(procI) << endl;
|
||||
|
||||
maxProcCells = max(maxProcCells, globalCells.localSize(procI));
|
||||
totProcFaces += nProcFaces;
|
||||
totProcPatches += nei.size();
|
||||
maxProcPatches = max(maxProcPatches, nei.size());
|
||||
maxProcFaces = max(maxProcFaces, nProcFaces);
|
||||
}
|
||||
|
||||
// Stats
|
||||
|
||||
scalar avgProcCells = scalar(globalCells.size())/Pstream::nProcs();
|
||||
scalar avgProcPatches = scalar(totProcPatches)/Pstream::nProcs();
|
||||
scalar avgProcFaces = scalar(totProcFaces)/Pstream::nProcs();
|
||||
|
||||
Info<< nl
|
||||
<< "Number of processor faces = " << totProcFaces/2 << nl
|
||||
<< "Max number of cells = " << maxProcCells
|
||||
<< " (" << 100.0*(maxProcCells-avgProcCells)/avgProcCells
|
||||
<< "% above average " << avgProcCells << ")" << nl
|
||||
<< "Max number of processor patches = " << maxProcPatches
|
||||
<< " (" << 100.0*(maxProcPatches-avgProcPatches)/avgProcPatches
|
||||
<< "% above average " << avgProcPatches << ")" << nl
|
||||
<< "Max number of faces between processors = " << maxProcFaces
|
||||
<< " (" << 100.0*(maxProcFaces-avgProcFaces)/avgProcFaces
|
||||
<< "% above average " << avgProcFaces << ")" << nl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
|
||||
@ -641,6 +714,16 @@ int main(int argc, char *argv[])
|
||||
);
|
||||
# include "setRootCase.H"
|
||||
|
||||
if (env("FOAM_SIGFPE"))
|
||||
{
|
||||
WarningIn(args.executable())
|
||||
<< "Detected floating point exception trapping (FOAM_SIGFPE)."
|
||||
<< " This might give" << nl
|
||||
<< " problems when mapping fields. Switch it off in case"
|
||||
<< " of problems." << endl;
|
||||
}
|
||||
|
||||
|
||||
// Create processor directory if non-existing
|
||||
if (!Pstream::master() && !isDir(args.path()))
|
||||
{
|
||||
@ -906,7 +989,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// Debugging: Create additional volField that will be mapped.
|
||||
// Used to test correctness of mapping
|
||||
volVectorField mapCc("mapCc", 1*mesh.C());
|
||||
//volVectorField mapCc("mapCc", 1*mesh.C());
|
||||
|
||||
// Global matching tolerance
|
||||
const scalar tolDim = getMergeDistance
|
||||
@ -948,7 +1031,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
|
||||
// Debugging: test mapped cellcentre field.
|
||||
compareFields(tolDim, mesh.C(), mapCc);
|
||||
//compareFields(tolDim, mesh.C(), mapCc);
|
||||
|
||||
// Print nice message
|
||||
// ~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -31,6 +31,39 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Select the version of make to be used
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# normally use "make"
|
||||
make="make"
|
||||
|
||||
# set WM_NCOMPPROCS automatically when both WM_HOSTS and WM_SCHEDULER are set
|
||||
if [ -z "$WM_NCOMPPROCS" -a -n "$WM_HOSTS" -a -n "$WM_SCHEDULER" ]
|
||||
then
|
||||
WM_NCOMPPROCS=$(wmakeScheduler -count)
|
||||
[ $? -eq 0 ] || unset WM_NCOMPPROCS
|
||||
fi
|
||||
|
||||
if [ "$WM_NCOMPPROCS" ]
|
||||
then
|
||||
if [ "$WM_NCOMPPROCS" -gt 1 -a ! "$MAKEFLAGS" ]
|
||||
then
|
||||
lockDir=$HOME/.$WM_PROJECT/.wmake
|
||||
|
||||
if [ -d $lockDir ]
|
||||
then
|
||||
rm -f $lockDir/*
|
||||
else
|
||||
mkdir -p $lockDir
|
||||
fi
|
||||
|
||||
make="make --no-print-directory -j "$WM_NCOMPPROCS
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Source tutorial functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
@ -62,13 +95,15 @@ else
|
||||
fi
|
||||
done
|
||||
# Recurse to subdirectories
|
||||
for caseName in *
|
||||
do
|
||||
if [ -d $caseName ]
|
||||
then
|
||||
( cd $caseName && $thisScript )
|
||||
fi
|
||||
done
|
||||
#for caseName in *
|
||||
#do
|
||||
# if [ -d $caseName ]
|
||||
# then
|
||||
# ( cd $caseName && $thisScript )
|
||||
# fi
|
||||
#done
|
||||
FOAM_TARGETS=$(for d in *; do [ -d "$d" ] && echo "$d"; done | xargs)
|
||||
$make -k -f $WM_PROJECT_DIR/bin/tools/MakefileDirs FOAM_TARGETS="$FOAM_TARGETS" FOAM_APP=$thisScript
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
113
bin/paraFoam
113
bin/paraFoam
@ -37,7 +37,7 @@ usage() {
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
Usage: ${0##*/} [OPTION]
|
||||
Usage: ${0##*/} [OPTION] [PARAVIEW_OPTION]
|
||||
options:
|
||||
-block use blockMesh reader (uses .blockMesh extension)
|
||||
-builtin use VTK builtin OpenFOAM reader (uses .foam extension)
|
||||
@ -47,6 +47,9 @@ options:
|
||||
-touchAll create .blockMesh, .OpenFOAM files (and for all regions)
|
||||
-help print the usage
|
||||
|
||||
|
||||
paraview options start with a double dashes
|
||||
|
||||
* start paraview $ParaView_VERSION with the OpenFOAM libraries
|
||||
|
||||
USAGE
|
||||
@ -57,7 +60,7 @@ USAGE
|
||||
# to clean up
|
||||
unset FOAM_ABORT
|
||||
|
||||
unset regionName touchOpt
|
||||
unset regionName optTouch
|
||||
|
||||
# reader extension
|
||||
extension=OpenFOAM
|
||||
@ -88,19 +91,48 @@ do
|
||||
shift 2
|
||||
;;
|
||||
-touch)
|
||||
touchOpt=true
|
||||
optTouch=true
|
||||
shift
|
||||
;;
|
||||
-touchAll)
|
||||
touchOpt=all
|
||||
optTouch=all
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break # stop here, treat balance as paraview options
|
||||
;;
|
||||
--*)
|
||||
break # stop here, treat this and balance as paraview options
|
||||
;;
|
||||
*)
|
||||
usage "unknown option/argument: '$*'"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
#
|
||||
# check for --data=... argument
|
||||
#
|
||||
hasDataArg()
|
||||
{
|
||||
hasData=false
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
(--data=*)
|
||||
hasData=true
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
hasDataArg $@
|
||||
|
||||
|
||||
# get a sensible caseName from the directory name
|
||||
caseName=${PWD##*/}
|
||||
caseFile="$caseName.$extension"
|
||||
@ -112,7 +144,7 @@ then
|
||||
fvControls="$fvControls/$regionName"
|
||||
fi
|
||||
|
||||
case "${touchOpt:-false}" in
|
||||
case "${optTouch:-false}" in
|
||||
all)
|
||||
extension=OpenFOAM
|
||||
if [ -f constant/polyMesh/blockMeshDict ]
|
||||
@ -149,33 +181,56 @@ case "$caseName" in
|
||||
esac
|
||||
|
||||
|
||||
#
|
||||
# check existence of essential files
|
||||
#
|
||||
case $extension in
|
||||
blockMesh)
|
||||
for check in system/controlDict constant/polyMesh/blockMeshDict
|
||||
do
|
||||
[ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'"
|
||||
done
|
||||
;;
|
||||
if [ "${hasData:-false}" = true ]
|
||||
then
|
||||
|
||||
builtin | OpenFOAM)
|
||||
for check in system/controlDict $fvControls/fvSchemes $fvControls/fvSolution
|
||||
do
|
||||
[ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
# has --data=.., send directly to paraview
|
||||
exec paraview "$@"
|
||||
|
||||
else
|
||||
|
||||
# only create/remove caseFile if it didn't already exist
|
||||
[ -e $caseFile ] || {
|
||||
trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT
|
||||
touch "$caseFile"
|
||||
echo "created temporary '$caseFile'"
|
||||
}
|
||||
# check existence of essential files
|
||||
warn="WARN file does not exist:"
|
||||
case $extension in
|
||||
blockMesh)
|
||||
for check in \
|
||||
system/controlDict \
|
||||
constant/polyMesh/blockMeshDict \
|
||||
;
|
||||
do
|
||||
[ -s "$parentDir/$check" ] || {
|
||||
[ -n "$warn" ] && echo "$warn" 1>&2
|
||||
echo " $parentDir/$check" 1>&2
|
||||
unset warn
|
||||
}
|
||||
done
|
||||
;;
|
||||
|
||||
builtin | OpenFOAM)
|
||||
for check in \
|
||||
system/controlDict \
|
||||
$fvControls/fvSchemes \
|
||||
$fvControls/fvSolution \
|
||||
;
|
||||
do
|
||||
[ -s "$parentDir/$check" ] || {
|
||||
[ -n "$warn" ] && echo "$warn" 1>&2
|
||||
echo " $parentDir/$check" 1>&2
|
||||
unset warn
|
||||
}
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
# only create/remove caseFile if it didn't already exist
|
||||
[ -e $caseFile ] || {
|
||||
trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT
|
||||
touch "$caseFile"
|
||||
echo "created temporary '$caseFile'"
|
||||
}
|
||||
|
||||
paraview --data="$caseFile" "$@"
|
||||
fi
|
||||
|
||||
paraview --data="$caseFile"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
42
bin/tools/MakefileDirs
Normal file
42
bin/tools/MakefileDirs
Normal file
@ -0,0 +1,42 @@
|
||||
#-------------------------------*- makefile -*---------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
# \\/ 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/>.
|
||||
#
|
||||
# File
|
||||
# MakefileDirs
|
||||
#
|
||||
# Description
|
||||
# Makefile used by
|
||||
# foamRunTutorials
|
||||
# to call some script in subdirectories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
.PHONY: application $(FOAM_TARGETS)
|
||||
|
||||
application: $(FOAM_TARGETS)
|
||||
|
||||
$(FOAM_TARGETS):
|
||||
@(cd $@ && $(FOAM_APP))
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -131,7 +131,7 @@ do
|
||||
paraviewInstall="$2"
|
||||
# replace ParaView_DIR=...
|
||||
_inlineSed \
|
||||
etc/apps/paraview3/bashrc \
|
||||
etc/config/paraview.sh \
|
||||
'/^[^#]/s@ParaView_DIR=.*@ParaView_DIR='"$paraviewInstall@" \
|
||||
"Replacing ParaView_DIR setting by '$paraviewInstall'"
|
||||
shift 2
|
||||
|
||||
17
etc/bashrc
17
etc/bashrc
@ -120,7 +120,12 @@ export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
|
||||
# Location of site-specific templates etc
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# unset is equivalent to $WM_PROJECT_INST_DIR/site
|
||||
unset WM_PROJECT_SITE
|
||||
if [ -d "$WM_PROJECT_SITE" ]
|
||||
then
|
||||
export WM_PROJECT_SITE
|
||||
else
|
||||
unset WM_PROJECT_SITE
|
||||
fi
|
||||
|
||||
# Location of user files
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -177,7 +182,7 @@ _foamEval()
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh`
|
||||
|
||||
# Evaluate command-line parameters and record settings for later
|
||||
# these can be used to set/unset values, or specify prefs files
|
||||
# these can be used to set/unset values, or specify alternative pref files
|
||||
export FOAM_SETTINGS="$@"
|
||||
_foamEval $@
|
||||
|
||||
@ -200,14 +205,14 @@ export PATH LD_LIBRARY_PATH MANPATH
|
||||
|
||||
# Source project setup files
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
_foamSource $WM_PROJECT_DIR/etc/settings.sh
|
||||
_foamSource $WM_PROJECT_DIR/etc/aliases.sh
|
||||
_foamSource $WM_PROJECT_DIR/etc/config/settings.sh
|
||||
_foamSource $WM_PROJECT_DIR/etc/config/aliases.sh
|
||||
|
||||
|
||||
# Source user setup files for optional packages
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile apps/paraview3/bashrc`
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile apps/ensight/bashrc`
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/paraview.sh`
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/ensight.sh`
|
||||
|
||||
|
||||
# Clean environment paths again. Only remove duplicates
|
||||
|
||||
51
etc/config/README
Normal file
51
etc/config/README
Normal file
@ -0,0 +1,51 @@
|
||||
The main OpenFOAM settings are located in the parent etc/ directory
|
||||
|
||||
* bashrc, cshrc
|
||||
entry point for sourcing
|
||||
|
||||
* prefs.csh, prefs.sh
|
||||
these files are untracked and can be used for some site-defined
|
||||
settings
|
||||
|
||||
|
||||
The etc/config/ directory contains various configuration files in
|
||||
sh/csh variants:
|
||||
|
||||
* settings.csh, settings.sh
|
||||
core settings
|
||||
|
||||
* aliases.csh, aliases.sh
|
||||
aliases for interactive shells
|
||||
|
||||
* unset.csh, unset.sh
|
||||
sourced to clear as many OpenFOAM environment settings as possible
|
||||
|
||||
|
||||
* ensight.csh, ensight.sh
|
||||
application settings for EnSight
|
||||
|
||||
* paraview.csh, paraview.sh
|
||||
application settings for ParaView
|
||||
|
||||
* scotch.sh
|
||||
application settings for compiling against scotch
|
||||
|
||||
---
|
||||
|
||||
The config/example directory contains various example configuration files
|
||||
in sh/csh variants
|
||||
|
||||
* compiler.csh, compiler.sh
|
||||
an example of fine tuning ThirdParty compiler settings for OpenFOAM
|
||||
|
||||
* openmpi.csh, openmpi.sh
|
||||
an example of fine tuning openmpi settings for OpenFOAM
|
||||
|
||||
* paraview.csh, paraview.sh
|
||||
an example of chaining to the standard config/paraview.sh with a
|
||||
different ParaView_VERSION
|
||||
|
||||
* prefs.csh, prefs.sh
|
||||
an example of supplying alternative site-defined settings
|
||||
|
||||
---
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/aliases.csh
|
||||
# etc/config/aliases.csh
|
||||
#
|
||||
# Description
|
||||
# Aliases for working with OpenFOAM
|
||||
@ -39,7 +39,7 @@ alias wmSP 'wmSET WM_PRECISION_OPTION=SP'
|
||||
alias wmDP 'wmSET WM_PRECISION_OPTION=DP'
|
||||
|
||||
# clear env
|
||||
alias wmUNSET='source $WM_PROJECT_DIR/etc/unset.csh'
|
||||
alias wmUNSET='source $WM_PROJECT_DIR/etc/config/unset.csh'
|
||||
|
||||
# Toggle wmakeScheduler on/off
|
||||
# - also need to set WM_HOSTS
|
||||
@ -49,7 +49,7 @@ alias wmSchedOFF 'unsetenv WM_SCHEDULER'
|
||||
|
||||
# Change ParaView version
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
alias foamPV 'source `$WM_PROJECT_DIR/etc/apps/paraview3/cshrc` ParaView_VERSION=\!*; echo paraview-$ParaView_VERSION'
|
||||
alias foamPV 'source `$WM_PROJECT_DIR/etc/config/paraview.csh` ParaView_VERSION=\!*; echo paraview-$ParaView_VERSION'
|
||||
|
||||
|
||||
# Change directory aliases
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/aliases.sh
|
||||
# etc/config/aliases.sh
|
||||
#
|
||||
# Description
|
||||
# Aliases for working with OpenFOAM
|
||||
@ -39,7 +39,7 @@ alias wmSP='wmSET WM_PRECISION_OPTION=SP'
|
||||
alias wmDP='wmSET WM_PRECISION_OPTION=DP'
|
||||
|
||||
# clear env
|
||||
alias wmUNSET='. $WM_PROJECT_DIR/etc/unset.sh'
|
||||
alias wmUNSET='. $WM_PROJECT_DIR/etc/config/unset.sh'
|
||||
|
||||
# Toggle wmakeScheduler on/off
|
||||
# - also need to set WM_HOSTS
|
||||
@ -52,7 +52,7 @@ alias wmSchedOFF='unset WM_SCHEDULER'
|
||||
unset foamPV
|
||||
foamPV()
|
||||
{
|
||||
. $WM_PROJECT_DIR/etc/apps/paraview3/bashrc ParaView_VERSION=$1
|
||||
. $WM_PROJECT_DIR/etc/config/paraview.sh ParaView_VERSION=$1
|
||||
echo "paraview-$ParaView_VERSION (major: $ParaView_MAJOR)"
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#-------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# ensight/cshrc
|
||||
# config/ensight.csh
|
||||
#
|
||||
# Description
|
||||
# Setup file for Ensight
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# ensight/bashrc
|
||||
# config/ensight.sh
|
||||
#
|
||||
# Description
|
||||
# Setup file for Ensight
|
||||
@ -22,11 +22,11 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# config/compiler.csh
|
||||
# config/example/compiler.csh
|
||||
#
|
||||
# Description
|
||||
# Fine tuning of ThirdParty compiler settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/settings.csh
|
||||
# Example of fine tuning ThirdParty compiler settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/config/settings.csh
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -22,11 +22,11 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# config/compiler.sh
|
||||
# config/example/compiler.sh
|
||||
#
|
||||
# Description
|
||||
# Fine tuning of ThirdParty compiler settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/settings.sh
|
||||
# Example of fine tuning ThirdParty compiler settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/config/settings.sh
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -22,11 +22,11 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# config/openmpi.csh
|
||||
# config/example/openmpi.csh
|
||||
#
|
||||
# Description
|
||||
# Fine tuning of openmpi settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/settings.csh
|
||||
# Example of fine tuning openmpi settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/config/settings.csh
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -22,11 +22,11 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# config/openmpi.sh
|
||||
# config/example/openmpi.sh
|
||||
#
|
||||
# Description
|
||||
# Fine tuning of openmpi settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/settings.sh
|
||||
# Example of fine tuning openmpi settings for OpenFOAM
|
||||
# Sourced from OpenFOAM-<VERSION>/etc/config/settings.sh
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -22,10 +22,10 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# paraview3/cshrc-EXAMPLE
|
||||
# config/example/paraview.csh
|
||||
#
|
||||
# Description
|
||||
# Example of chaining to the standard paraview3/cshrc with a
|
||||
# Example of chaining to the standard config/paraview.csh with a
|
||||
# different ParaView_VERSION
|
||||
#
|
||||
# Note
|
||||
@ -35,10 +35,10 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Use other (shipped) cshrc with a different ParaView_VERSION
|
||||
# Use other (shipped) paraview.csh with a different ParaView_VERSION
|
||||
#
|
||||
|
||||
set foamFile=`$WM_PROJECT_DIR/bin/foamEtcFile -mode o apps/paraview3/cshrc`
|
||||
set foamFile=`$WM_PROJECT_DIR/bin/foamEtcFile -mode o config/paraview.csh`
|
||||
if ( $status == 0 ) source $foamFile ParaView_VERSION=3.9.0
|
||||
|
||||
unset foamFile
|
||||
@ -22,10 +22,10 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# paraview3/bashrc-EXAMPLE
|
||||
# config/example/paraview.sh
|
||||
#
|
||||
# Description
|
||||
# Example of chaining to the standard paraview3/bashrc with a
|
||||
# Example of chaining to the standard config/paraview.sh with a
|
||||
# different ParaView_VERSION
|
||||
#
|
||||
# Note
|
||||
@ -35,10 +35,10 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Use other (shipped) bashrc with a different ParaView_VERSION
|
||||
# Use other (shipped) paraview.sh with a different ParaView_VERSION
|
||||
#
|
||||
|
||||
foamFile=$($WM_PROJECT_DIR/bin/foamEtcFile -mode o apps/paraview3/bashrc 2>/dev/null)
|
||||
foamFile=$($WM_PROJECT_DIR/bin/foamEtcFile -mode o config/paraview.sh 2>/dev/null)
|
||||
[ $? -eq 0 ] && . $foamFile ParaView_VERSION=3.9.0
|
||||
|
||||
unset foamFile
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/prefs.csh
|
||||
# config/example/prefs.csh
|
||||
#
|
||||
# Description
|
||||
# Preset variables for the OpenFOAM configuration - C-Shell shell syntax.
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/prefs.sh
|
||||
# config/example/prefs.sh
|
||||
#
|
||||
# Description
|
||||
# Preset variables for the OpenFOAM configuration - POSIX shell syntax.
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# paraview3/cshrc
|
||||
# config/paraview.csh
|
||||
#
|
||||
# Description
|
||||
# Setup file for paraview-3.x
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# paraview3/bashrc
|
||||
# config/paraview.sh
|
||||
#
|
||||
# Description
|
||||
# Setup file for paraview-3.x
|
||||
@ -113,7 +113,6 @@ else
|
||||
unset PV_PLUGIN_PATH
|
||||
fi
|
||||
|
||||
|
||||
unset _foamParaviewEval
|
||||
unset cleaned cmake paraviewInstDir paraviewPython
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# scotch/bashrc
|
||||
# config/scotch.sh
|
||||
#
|
||||
# Description
|
||||
# Setup file for scotch include/libraries.
|
||||
@ -36,5 +36,4 @@
|
||||
export SCOTCH_VERSION=scotch_5.1.11
|
||||
export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$SCOTCH_VERSION
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/settings.csh
|
||||
# etc/config/settings.csh
|
||||
#
|
||||
# Description
|
||||
# Startup file for OpenFOAM
|
||||
@ -193,7 +193,7 @@ unsetenv MPFR_ARCH_PATH GMP_ARCH_PATH
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
if ( ! $?foamCompiler ) then
|
||||
set foamCompiler=system
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.csh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.csh:"
|
||||
echo " foamCompiler not set, using '$foamCompiler'"
|
||||
endif
|
||||
|
||||
@ -241,7 +241,7 @@ case ThirdParty:
|
||||
breaksw
|
||||
default:
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.csh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.csh:"
|
||||
echo " Unknown OpenFOAM compiler type '$WM_COMPILER'"
|
||||
echo " Please check your settings"
|
||||
echo
|
||||
@ -262,7 +262,7 @@ case ThirdParty:
|
||||
# Check that the compiler directory can be found
|
||||
if ( ! -d "$gccDir" ) then
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.csh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.csh:"
|
||||
echo " Cannot find $gccDir installation."
|
||||
echo " Please install this compiler version or if you wish to use the system compiler,"
|
||||
echo " change the 'foamCompiler' setting to 'system'"
|
||||
@ -302,7 +302,7 @@ case ThirdParty:
|
||||
# Check that the compiler directory can be found
|
||||
if ( ! -d "$clangDir" ) then
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.csh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.csh:"
|
||||
echo " Cannot find $clangDir installation."
|
||||
echo " Please install this compiler version or if you wish to use the system compiler,"
|
||||
echo " change the 'foamCompiler' setting to 'system'"
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/settings.sh
|
||||
# etc/config/settings.sh
|
||||
#
|
||||
# Description
|
||||
# Startup file for OpenFOAM
|
||||
@ -215,7 +215,7 @@ unset MPFR_ARCH_PATH GMP_ARCH_PATH
|
||||
if [ -z "$foamCompiler" ]
|
||||
then
|
||||
foamCompiler=system
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.sh:" 1>&2
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.sh:" 1>&2
|
||||
echo " foamCompiler not set, using '$foamCompiler'" 1>&2
|
||||
fi
|
||||
|
||||
@ -258,7 +258,7 @@ OpenFOAM | ThirdParty)
|
||||
;;
|
||||
*)
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.sh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.sh:"
|
||||
echo " Unknown OpenFOAM compiler type '$WM_COMPILER'"
|
||||
echo " Please check your settings"
|
||||
echo
|
||||
@ -278,7 +278,7 @@ OpenFOAM | ThirdParty)
|
||||
# Check that the compiler directory can be found
|
||||
[ -d "$gccDir" ] || {
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.sh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.sh:"
|
||||
echo " Cannot find $gccDir installation."
|
||||
echo " Please install this compiler version or if you wish to use the system compiler,"
|
||||
echo " change the 'foamCompiler' setting to 'system'"
|
||||
@ -322,7 +322,7 @@ OpenFOAM | ThirdParty)
|
||||
# Check that the compiler directory can be found
|
||||
[ -d "$clangDir" ] || {
|
||||
echo
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/settings.sh:"
|
||||
echo "Warning in $WM_PROJECT_DIR/etc/config/settings.sh:"
|
||||
echo " Cannot find $clangDir installation."
|
||||
echo " Please install this compiler version or if you wish to use the system compiler,"
|
||||
echo " change the 'foamCompiler' setting to 'system'"
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/unset.csh
|
||||
# etc/config/unset.csh
|
||||
#
|
||||
# Description
|
||||
# Clear as many OpenFOAM environment settings as possible
|
||||
@ -22,7 +22,7 @@
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/unset.sh
|
||||
# etc/config/unset.sh
|
||||
#
|
||||
# Description
|
||||
# Clear as many OpenFOAM environment settings as possible
|
||||
@ -492,6 +492,7 @@ DebugSwitches
|
||||
geomCellLooper 0;
|
||||
geometricSurfacePatch 0;
|
||||
global 0;
|
||||
globalIndexAndTransform 0;
|
||||
globalMeshData 0;
|
||||
globalPoints 0;
|
||||
gnuplot 0;
|
||||
|
||||
20
etc/cshrc
20
etc/cshrc
@ -107,9 +107,6 @@ if ( $?WM_PROJECT_INST_DIR ) then
|
||||
set foamOldDirs="$WM_PROJECT_INST_DIR $foamOldDirs"
|
||||
endif
|
||||
endif
|
||||
if ( $?WM_PROJECT_SITE ) then
|
||||
set foamOldDirs="$WM_PROJECT_SITE $foamOldDirs"
|
||||
endif
|
||||
|
||||
|
||||
# Location of installation
|
||||
@ -124,7 +121,12 @@ setenv WM_THIRD_PARTY_DIR $WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
|
||||
# Location of site-specific templates etc
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# unset is equivalent to $WM_PROJECT_INST_DIR/site
|
||||
unsetenv WM_PROJECT_SITE
|
||||
if ( $?WM_PROJECT_SITE ) then
|
||||
set foamOldDirs="$WM_PROJECT_SITE $foamOldDirs"
|
||||
if ( ! -d "$WM_PROJECT_SITE" ) unsetenv WM_PROJECT_SITE
|
||||
else
|
||||
unsetenv WM_PROJECT_SITE
|
||||
endif
|
||||
|
||||
# Location of user files
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -138,7 +140,7 @@ alias _foamSource 'if ($?FOAM_VERBOSE && $?prompt) echo "Sourcing: \!*"; if (\!*
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.csh`
|
||||
|
||||
# Evaluate command-line parameters and record settings for later
|
||||
# these can be used to set/unset values, or specify prefs files
|
||||
# these can be used to set/unset values, or specify alternative pref files
|
||||
setenv FOAM_SETTINGS "${*}"
|
||||
while ( $#argv > 0 )
|
||||
switch ($argv[1])
|
||||
@ -194,13 +196,13 @@ if ( $status == 0 ) setenv MANPATH $cleaned
|
||||
|
||||
# Source project setup files
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
_foamSource $WM_PROJECT_DIR/etc/settings.csh
|
||||
_foamSource $WM_PROJECT_DIR/etc/aliases.csh
|
||||
_foamSource $WM_PROJECT_DIR/etc/config/settings.csh
|
||||
_foamSource $WM_PROJECT_DIR/etc/config/aliases.csh
|
||||
|
||||
# Source user setup files for optional packages
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile apps/paraview3/cshrc`
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile apps/ensight/cshrc`
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/paraview.csh`
|
||||
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/ensight.csh`
|
||||
|
||||
|
||||
# Clean environment paths again. Only remove duplicates
|
||||
|
||||
@ -71,6 +71,27 @@ void Foam::dynamicCode::checkSecurity
|
||||
<< "using dlopen)"
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
|
||||
if (!allowSystemOperations)
|
||||
{
|
||||
FatalIOErrorIn
|
||||
(
|
||||
title,
|
||||
dict
|
||||
) << "Loading a shared library using case-supplied code is not"
|
||||
<< " enabled by default" << nl
|
||||
<< "because of security issues. If you trust the code you can"
|
||||
<< " enable this" << nl
|
||||
<< "facility be adding to the InfoSwitches setting in the system"
|
||||
<< " controlDict:" << nl << nl
|
||||
<< " allowSystemOperations 1" << nl << nl
|
||||
<< "The system controlDict is either" << nl << nl
|
||||
<< " ~/.OpenFOAM/$WM_PROJECT_VERSION/controlDict" << nl << nl
|
||||
<< "or" << nl << nl
|
||||
<< " $WM_PROJECT_DIR/etc/controlDict" << nl
|
||||
<< endl
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -400,26 +421,6 @@ bool Foam::dynamicCode::copyOrCreateFiles(const bool verbose) const
|
||||
Info<< "Creating new library in " << this->libRelPath() << endl;
|
||||
}
|
||||
|
||||
if (!allowSystemOperations)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"dynamicCode::copyOrCreateFiles() const"
|
||||
) << "Loading a shared library using case-supplied code is not"
|
||||
<< " enabled by default" << nl
|
||||
<< "because of security issues. If you trust the code you can"
|
||||
<< " enable this" << nl
|
||||
<< "facility be adding to the InfoSwitches setting in the system"
|
||||
<< " controlDict:" << nl << nl
|
||||
<< " allowSystemOperations 1" << nl << nl
|
||||
<< "The system controlDict is either" << nl << nl
|
||||
<< " ~/.OpenFOAM/$WM_PROJECT_VERSION/controlDict" << nl << nl
|
||||
<< "or" << nl << nl
|
||||
<< " $WM_PROJECT_DIR/etc/controlDict" << nl
|
||||
<< endl
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
const label nFiles = compileFiles_.size() + copyFiles_.size();
|
||||
|
||||
DynamicList<fileName> resolvedFiles(nFiles);
|
||||
|
||||
@ -414,11 +414,11 @@ Foam::argList::argList
|
||||
(
|
||||
(
|
||||
validOptions.found(optionName)
|
||||
&& validOptions[optionName] != ""
|
||||
&& !validOptions[optionName].empty()
|
||||
)
|
||||
|| (
|
||||
validParOptions.found(optionName)
|
||||
&& validParOptions[optionName] != ""
|
||||
&& !validParOptions[optionName].empty()
|
||||
)
|
||||
)
|
||||
{
|
||||
@ -833,6 +833,116 @@ Foam::argList::~argList()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
bool Foam::argList::setOption(const word& opt, const string& param)
|
||||
{
|
||||
bool changed = false;
|
||||
|
||||
// only allow valid options
|
||||
if (validOptions.found(opt))
|
||||
{
|
||||
// some options are to be protected
|
||||
if
|
||||
(
|
||||
opt == "case"
|
||||
|| opt == "parallel"
|
||||
|| opt == "roots"
|
||||
)
|
||||
{
|
||||
FatalError
|
||||
<<"used argList::setOption on a protected option: '"
|
||||
<< opt << "'" << endl;
|
||||
FatalError.exit();
|
||||
}
|
||||
|
||||
if (validOptions[opt].empty())
|
||||
{
|
||||
// bool option
|
||||
if (!param.empty())
|
||||
{
|
||||
// disallow change of type
|
||||
FatalError
|
||||
<<"used argList::setOption to change bool to non-bool: '"
|
||||
<< opt << "'" << endl;
|
||||
FatalError.exit();
|
||||
}
|
||||
else
|
||||
{
|
||||
// did not previously exist
|
||||
changed = !options_.found(opt);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// non-bool option
|
||||
if (param.empty())
|
||||
{
|
||||
// disallow change of type
|
||||
FatalError
|
||||
<<"used argList::setOption to change non-bool to bool: '"
|
||||
<< opt << "'" << endl;
|
||||
FatalError.exit();
|
||||
}
|
||||
else
|
||||
{
|
||||
// existing value needs changing, or did not previously exist
|
||||
changed = options_.found(opt) ? options_[opt] != param : true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalError
|
||||
<<"used argList::setOption on an invalid option: '"
|
||||
<< opt << "'" << nl << "allowed are the following:"
|
||||
<< validOptions << endl;
|
||||
FatalError.exit();
|
||||
}
|
||||
|
||||
// set/change the option as required
|
||||
if (changed)
|
||||
{
|
||||
options_.set(opt, param);
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::argList::unsetOption(const word& opt)
|
||||
{
|
||||
// only allow valid options
|
||||
if (validOptions.found(opt))
|
||||
{
|
||||
// some options are to be protected
|
||||
if
|
||||
(
|
||||
opt == "case"
|
||||
|| opt == "parallel"
|
||||
|| opt == "roots"
|
||||
)
|
||||
{
|
||||
FatalError
|
||||
<<"used argList::unsetOption on a protected option: '"
|
||||
<< opt << "'" << endl;
|
||||
FatalError.exit();
|
||||
}
|
||||
|
||||
// remove the option, return true if state changed
|
||||
return options_.erase(opt);
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalError
|
||||
<<"used argList::unsetOption on an invalid option: '"
|
||||
<< opt << "'" << nl << "allowed are the following:"
|
||||
<< validOptions << endl;
|
||||
FatalError.exit();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void Foam::argList::printNotes() const
|
||||
{
|
||||
// output notes directly - no automatic text wrapping
|
||||
|
||||
@ -334,6 +334,19 @@ public:
|
||||
static void noParallel();
|
||||
|
||||
|
||||
//- Set option directly (use with caution)
|
||||
// An option with an empty param is a bool option.
|
||||
// Not all valid options can also be set: eg, -case, -roots, ...
|
||||
// Return true if the existing option value needed changing,
|
||||
// or if the option did not previously exist.
|
||||
bool setOption(const word& opt, const string& param = "");
|
||||
|
||||
//- Unset option directly (use with caution)
|
||||
// Not all valid options can also be unset: eg, -case, -roots ...
|
||||
// Return true if the option existed before being unset.
|
||||
bool unsetOption(const word& opt);
|
||||
|
||||
|
||||
// Print
|
||||
|
||||
//- Print notes (if any)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -124,7 +124,7 @@ bool Foam::matchPoints
|
||||
{
|
||||
label faceI = pts1MagSqr.indices()[j];
|
||||
|
||||
Pout<< "Compared coord:" << pts1[faceI]
|
||||
Pout<< " Compared coord:" << pts1[faceI]
|
||||
<< " with difference to point "
|
||||
<< mag(pts1[faceI] - pts0[face0I]) << endl;
|
||||
}
|
||||
|
||||
@ -57,6 +57,30 @@ Foam::label Foam::globalPoints::countPatchPoints
|
||||
}
|
||||
|
||||
|
||||
Foam::label Foam::globalPoints::findSamePoint
|
||||
(
|
||||
const labelPairList& allInfo,
|
||||
const labelPair& info
|
||||
) const
|
||||
{
|
||||
const label procI = globalIndexAndTransform::processor(info);
|
||||
const label index = globalIndexAndTransform::index(info);
|
||||
|
||||
forAll(allInfo, i)
|
||||
{
|
||||
if
|
||||
(
|
||||
globalIndexAndTransform::processor(allInfo[i]) == procI
|
||||
&& globalIndexAndTransform::index(allInfo[i]) == index
|
||||
)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
Foam::labelPairList Foam::globalPoints::addSendTransform
|
||||
(
|
||||
const label patchI,
|
||||
@ -67,6 +91,15 @@ Foam::labelPairList Foam::globalPoints::addSendTransform
|
||||
|
||||
forAll(info, i)
|
||||
{
|
||||
//Pout<< " adding send transform to" << nl
|
||||
// << " proc:" << globalIndexAndTransform::processor(info[i])
|
||||
// << nl
|
||||
// << " index:" << globalIndexAndTransform::index(info[i]) << nl
|
||||
// << " trafo:"
|
||||
// << globalTransforms_.decodeTransformIndex
|
||||
// (globalIndexAndTransform::transformIndex(info[i]))
|
||||
// << endl;
|
||||
|
||||
sendInfo[i] = globalIndexAndTransform::encode
|
||||
(
|
||||
globalIndexAndTransform::processor(info[i]),
|
||||
@ -129,72 +162,63 @@ bool Foam::globalPoints::mergeInfo
|
||||
{
|
||||
bool anyChanged = false;
|
||||
|
||||
// Extend to make space for the nbrInfo (trimmed later)
|
||||
labelPairList newInfo(myInfo);
|
||||
label newI = newInfo.size();
|
||||
newInfo.setSize(newI + nbrInfo.size());
|
||||
|
||||
forAll(nbrInfo, i)
|
||||
{
|
||||
const labelPair& info = nbrInfo[i];
|
||||
label nbrProcI = globalIndexAndTransform::processor(info);
|
||||
label nbrIndex = globalIndexAndTransform::index(info);
|
||||
label nbrTransform = globalIndexAndTransform::transformIndex(info);
|
||||
|
||||
// Check if already have information about nbr point. There are two
|
||||
// possibilities:
|
||||
// - information found about same point but different transform.
|
||||
// Combine transforms
|
||||
// - information not found.
|
||||
|
||||
label myIndex = -1;
|
||||
forAll(myInfo, myI)
|
||||
{
|
||||
if (myInfo[myI] == info)
|
||||
{
|
||||
// Fully identical. We already have nbrInfo.
|
||||
myIndex = myI;
|
||||
}
|
||||
else if
|
||||
(
|
||||
globalIndexAndTransform::processor(myInfo[myI]) == nbrProcI
|
||||
&& globalIndexAndTransform::index(myInfo[myI]) == nbrIndex
|
||||
)
|
||||
{
|
||||
// Only differing is the transform.
|
||||
label myTransform = globalIndexAndTransform::transformIndex
|
||||
(
|
||||
myInfo[myI]
|
||||
);
|
||||
label index = findSamePoint(myInfo, nbrInfo[i]);
|
||||
|
||||
// Combine mine and nbr transform
|
||||
label t = globalTransforms_.mergeTransformIndex
|
||||
(
|
||||
nbrTransform,
|
||||
myTransform
|
||||
);
|
||||
myIndex = myI;
|
||||
|
||||
if (t != myTransform)
|
||||
{
|
||||
// Same point but different transformation
|
||||
newInfo[myI] = globalIndexAndTransform::encode
|
||||
(
|
||||
nbrProcI,
|
||||
nbrIndex,
|
||||
t
|
||||
);
|
||||
anyChanged = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (myIndex == -1)
|
||||
if (index == -1)
|
||||
{
|
||||
// New point
|
||||
newInfo[newI++] = nbrInfo[i];
|
||||
anyChanged = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Same point. So we already have a connection between localPointI
|
||||
// and the nbrIndex. Two situations:
|
||||
// - same transform
|
||||
// - one transform takes two steps, the other just a single.
|
||||
if (myInfo[index] == nbrInfo[i])
|
||||
{
|
||||
// Everything same (so also transform). Nothing changed.
|
||||
}
|
||||
else
|
||||
{
|
||||
label myTransform = globalIndexAndTransform::transformIndex
|
||||
(
|
||||
myInfo[index]
|
||||
);
|
||||
label nbrTransform = globalIndexAndTransform::transformIndex
|
||||
(
|
||||
nbrInfo[i]
|
||||
);
|
||||
|
||||
// Different transform. See which is 'simplest'.
|
||||
label minTransform = globalTransforms_.minimumTransformIndex
|
||||
(
|
||||
myTransform,
|
||||
nbrTransform
|
||||
);
|
||||
|
||||
if (minTransform != myTransform)
|
||||
{
|
||||
// Use nbr info.
|
||||
newInfo[index] = nbrInfo[i];
|
||||
anyChanged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
newInfo.setSize(newI);
|
||||
@ -327,7 +351,7 @@ void Foam::globalPoints::printProcPoints
|
||||
label index = globalIndexAndTransform::index(pointInfo[i]);
|
||||
label trafoI = globalIndexAndTransform::transformIndex(pointInfo[i]);
|
||||
|
||||
Pout<< "proc:" << procI;
|
||||
Pout<< " proc:" << procI;
|
||||
Pout<< " localpoint:";
|
||||
Pout<< index;
|
||||
Pout<< " through transform:"
|
||||
@ -386,6 +410,10 @@ void Foam::globalPoints::initOwnPoints
|
||||
)
|
||||
);
|
||||
|
||||
//Pout<< "For point "<< pp.points()[meshPointI]
|
||||
// << " inserting info " << knownInfo
|
||||
// << endl;
|
||||
|
||||
// Update changedpoints info.
|
||||
if (storeInitialInfo(knownInfo, localPointI))
|
||||
{
|
||||
@ -613,80 +641,59 @@ void Foam::globalPoints::receivePatchPoints
|
||||
label meshPointA = meshPoints[i];
|
||||
label meshPointB = coupledMeshPoints[i];
|
||||
|
||||
//Pout<< "Connection between point " << meshPointA
|
||||
// << " at " << mesh_.points()[meshPointA]
|
||||
// << " and " << meshPointB
|
||||
// << " at " << mesh_.points()[meshPointB] << endl;
|
||||
|
||||
label localA = meshToLocalPoint
|
||||
(
|
||||
meshToPatchPoint,
|
||||
meshPointA
|
||||
);
|
||||
label localB = meshToLocalPoint
|
||||
(
|
||||
meshToPatchPoint,
|
||||
meshPointB
|
||||
);
|
||||
|
||||
|
||||
// Do we have information on pointA?
|
||||
Map<label>::iterator procPointA =
|
||||
meshToProcPoint_.find(localA);
|
||||
|
||||
labelPairList infoA;
|
||||
if (procPointA != meshToProcPoint_.end())
|
||||
if (meshPointA != meshPointB)
|
||||
{
|
||||
infoA = addSendTransform
|
||||
//Pout<< "Connection between point " << meshPointA
|
||||
// << " at " << mesh_.points()[meshPointA]
|
||||
// << " and " << meshPointB
|
||||
// << " at " << mesh_.points()[meshPointB] << endl;
|
||||
|
||||
label localA = meshToLocalPoint
|
||||
(
|
||||
cycPatch.index(),
|
||||
procPoints_[procPointA()]
|
||||
meshToPatchPoint,
|
||||
meshPointA
|
||||
);
|
||||
}
|
||||
|
||||
// Same for info on pointB
|
||||
Map<label>::iterator procPointB =
|
||||
meshToProcPoint_.find(localB);
|
||||
|
||||
labelPairList infoB;
|
||||
if (procPointB != meshToProcPoint_.end())
|
||||
{
|
||||
infoB = addSendTransform
|
||||
label localB = meshToLocalPoint
|
||||
(
|
||||
cycPatch.neighbPatchID(),
|
||||
procPoints_[procPointB()]
|
||||
meshToPatchPoint,
|
||||
meshPointB
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
if (infoA.size())
|
||||
{
|
||||
if (mergeInfo(infoA, localB))
|
||||
// Do we have information on pointA?
|
||||
Map<label>::iterator procPointA =
|
||||
meshToProcPoint_.find(localA);
|
||||
|
||||
if (procPointA != meshToProcPoint_.end())
|
||||
{
|
||||
//Pout<< " Combined info at point "
|
||||
// << mesh_.points()[meshPointB]
|
||||
// << " now " << endl;
|
||||
//printProcPoints
|
||||
//(
|
||||
// patchToMeshPoint,
|
||||
// procPoints_[meshToProcPoint_[localB]]
|
||||
//);
|
||||
changedPoints.insert(localB);
|
||||
const labelPairList infoA = addSendTransform
|
||||
(
|
||||
cycPatch.index(),
|
||||
procPoints_[procPointA()]
|
||||
);
|
||||
|
||||
if (mergeInfo(infoA, localB))
|
||||
{
|
||||
changedPoints.insert(localB);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (infoB.size())
|
||||
{
|
||||
if (mergeInfo(infoB, localA))
|
||||
|
||||
// Same for info on pointB
|
||||
Map<label>::iterator procPointB =
|
||||
meshToProcPoint_.find(localB);
|
||||
|
||||
if (procPointB != meshToProcPoint_.end())
|
||||
{
|
||||
//Pout<< " Combined info at point "
|
||||
// << mesh_.points()[meshPointA]
|
||||
// << " now " << endl;
|
||||
//printProcPoints
|
||||
//(
|
||||
// patchToMeshPoint,
|
||||
// procPoints_[meshToProcPoint_[localA]]
|
||||
//);
|
||||
changedPoints.insert(localA);
|
||||
const labelPairList infoB = addSendTransform
|
||||
(
|
||||
cycPatch.neighbPatchID(),
|
||||
procPoints_[procPointB()]
|
||||
);
|
||||
|
||||
if (mergeInfo(infoB, localA))
|
||||
{
|
||||
changedPoints.insert(localA);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -842,6 +849,9 @@ void Foam::globalPoints::calculateSharedPoints
|
||||
{
|
||||
Pout<< "globalPoints::calculateSharedPoints(..) : "
|
||||
<< "doing processor to processor communication to get sharedPoints"
|
||||
<< endl
|
||||
<< " keepAllPoints :" << keepAllPoints << endl
|
||||
<< " mergeSeparated:" << mergeSeparated << endl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
@ -948,7 +958,7 @@ void Foam::globalPoints::calculateSharedPoints
|
||||
// printProcPoints(patchToMeshPoint, pointInfo);
|
||||
// Pout<< endl;
|
||||
//}
|
||||
//
|
||||
|
||||
|
||||
// Remove direct neighbours from point equivalences.
|
||||
if (!keepAllPoints)
|
||||
|
||||
@ -143,6 +143,13 @@ class globalPoints
|
||||
// information is collected.
|
||||
static label countPatchPoints(const polyBoundaryMesh&);
|
||||
|
||||
//- Find index of same processor+index
|
||||
label findSamePoint
|
||||
(
|
||||
const labelPairList& allInfo,
|
||||
const labelPair& info
|
||||
) const;
|
||||
|
||||
labelPairList addSendTransform
|
||||
(
|
||||
const label patchI,
|
||||
|
||||
@ -136,7 +136,19 @@ void Foam::globalIndexAndTransform::determineTransforms()
|
||||
{
|
||||
const polyPatch& pp = patches[patchI];
|
||||
|
||||
if (isA<coupledPolyPatch>(pp))
|
||||
// Note: special check for unordered cyclics. These are in fact
|
||||
// transform bcs and should probably be split off.
|
||||
if
|
||||
(
|
||||
isA<coupledPolyPatch>(pp)
|
||||
&& !(
|
||||
isA<cyclicPolyPatch>(pp)
|
||||
&& (
|
||||
refCast<const cyclicPolyPatch>(pp).transform()
|
||||
== cyclicPolyPatch::NOORDERING
|
||||
)
|
||||
)
|
||||
)
|
||||
{
|
||||
const coupledPolyPatch& cpp = refCast<const coupledPolyPatch>(pp);
|
||||
|
||||
@ -164,21 +176,19 @@ void Foam::globalIndexAndTransform::determineTransforms()
|
||||
) == 0
|
||||
)
|
||||
{
|
||||
if (nextTrans == 6)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"void Foam::globalIndexAndTransform::"
|
||||
"determineTransforms()"
|
||||
) << "More than six unsigned transforms"
|
||||
<< " detected:" << nl << transforms_
|
||||
<< exit(FatalError);
|
||||
}
|
||||
transforms_[nextTrans] = transform;
|
||||
maxTol[nextTrans++] = cpp.matchTolerance();
|
||||
}
|
||||
|
||||
if (nextTrans > 6)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"void Foam::globalIndexAndTransform::"
|
||||
"determineTransforms()"
|
||||
)
|
||||
<< "More than six unsigned transforms detected:"
|
||||
<< nl << transforms_
|
||||
<< exit(FatalError);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -206,21 +216,19 @@ void Foam::globalIndexAndTransform::determineTransforms()
|
||||
) == 0
|
||||
)
|
||||
{
|
||||
if (nextTrans == 6)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"void Foam::globalIndexAndTransform::"
|
||||
"determineTransforms()"
|
||||
) << "More than six unsigned transforms"
|
||||
<< " detected:" << nl << transforms_
|
||||
<< exit(FatalError);
|
||||
}
|
||||
transforms_[nextTrans] = transform;
|
||||
maxTol[nextTrans++] = cpp.matchTolerance();
|
||||
}
|
||||
|
||||
if (nextTrans > 6)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"void Foam::globalIndexAndTransform::"
|
||||
"determineTransforms()"
|
||||
)
|
||||
<< "More than six unsigned transforms detected:"
|
||||
<< nl << transforms_
|
||||
<< exit(FatalError);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -363,7 +371,19 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
|
||||
|
||||
// Pout<< nl << patchI << " " << pp.name() << endl;
|
||||
|
||||
if (isA<coupledPolyPatch>(pp))
|
||||
// Note: special check for unordered cyclics. These are in fact
|
||||
// transform bcs and should probably be split off.
|
||||
if
|
||||
(
|
||||
isA<coupledPolyPatch>(pp)
|
||||
&& !(
|
||||
isA<cyclicPolyPatch>(pp)
|
||||
&& (
|
||||
refCast<const cyclicPolyPatch>(pp).transform()
|
||||
== cyclicPolyPatch::NOORDERING
|
||||
)
|
||||
)
|
||||
)
|
||||
{
|
||||
const coupledPolyPatch& cpp =
|
||||
refCast<const coupledPolyPatch>(pp);
|
||||
@ -480,26 +500,28 @@ Foam::globalIndexAndTransform::globalIndexAndTransform
|
||||
|
||||
determinePatchTransformSign();
|
||||
|
||||
if (debug && transforms_.size() > 1)
|
||||
if (debug && transforms_.size() > 0)
|
||||
{
|
||||
const polyBoundaryMesh& patches = mesh_.boundaryMesh();
|
||||
|
||||
Info<< "Determined global transforms :" << endl;
|
||||
Info<< "\t\ttranslation\trotation" << endl;
|
||||
forAll(transforms_, i)
|
||||
{
|
||||
Info<< '\t' << i << '\t';
|
||||
if (transforms_[i].hasR())
|
||||
const vectorTensorTransform& trafo = transforms_[i];
|
||||
if (trafo.hasR())
|
||||
{
|
||||
Info<< transforms_[i].t() << '\t' << transforms_[i].R();
|
||||
Info<< trafo.t() << '\t' << trafo.R();
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< transforms_[i].t() << '\t' << "---";
|
||||
Info<< trafo.t() << '\t' << "---";
|
||||
}
|
||||
Info<< endl;
|
||||
}
|
||||
Info<< endl;
|
||||
|
||||
const polyBoundaryMesh& patches = mesh_.boundaryMesh();
|
||||
|
||||
Info<< "\tpatch\ttransform\tsign" << endl;
|
||||
forAll(patchTransformSign_, patchI)
|
||||
@ -513,6 +535,26 @@ Foam::globalIndexAndTransform::globalIndexAndTransform
|
||||
}
|
||||
}
|
||||
Info<< endl;
|
||||
|
||||
|
||||
Info<< "Permutations of transformations:" << endl
|
||||
<< "\t\ttranslation\trotation" << endl;
|
||||
forAll(transformPermutations_, i)
|
||||
{
|
||||
Info<< '\t' << i << '\t';
|
||||
const vectorTensorTransform& trafo = transformPermutations_[i];
|
||||
if (trafo.hasR())
|
||||
{
|
||||
Info<< trafo.t() << '\t' << trafo.R();
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< trafo.t() << '\t' << "---";
|
||||
}
|
||||
Info<< endl;
|
||||
}
|
||||
Info<< "nullTransformIndex:" << nullTransformIndex() << endl
|
||||
<< endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -267,85 +267,47 @@ Foam::label Foam::globalIndexAndTransform::addToTransformIndex
|
||||
}
|
||||
|
||||
|
||||
Foam::label Foam::globalIndexAndTransform::mergeTransformIndex
|
||||
(
|
||||
const label transformIndex0,
|
||||
const label transformIndex1
|
||||
) const
|
||||
{
|
||||
FixedList<label, 3> permutation0 = decodeTransformIndex(transformIndex0);
|
||||
FixedList<label, 3> permutation1 = decodeTransformIndex(transformIndex1);
|
||||
|
||||
forAll(permutation0, i)
|
||||
{
|
||||
if (permutation0[i] == 0)
|
||||
{
|
||||
// Take over whatever sign 1 has
|
||||
permutation0[i] = permutation1[i];
|
||||
}
|
||||
else if (permutation1[i] != 0 && permutation0[i] != permutation1[i])
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"Foam::label "
|
||||
"Foam::globalIndexAndTransform::addToTransformIndex\n"
|
||||
"(\n"
|
||||
"const label,\n"
|
||||
"const label\n"
|
||||
") const\n"
|
||||
) << "More than one patch accessing the same transform "
|
||||
<< "but not of the same sign." << endl
|
||||
<< "Trying to combine two transforms " << transformIndex0
|
||||
<< " with signs " << permutation0
|
||||
<< " and " << transformIndex1
|
||||
<< " with signs " << permutation1
|
||||
<< exit(FatalError);
|
||||
}
|
||||
}
|
||||
return encodeTransformIndex(permutation0);
|
||||
}
|
||||
|
||||
|
||||
Foam::label Foam::globalIndexAndTransform::minimumTransformIndex
|
||||
(
|
||||
const label transformIndex0,
|
||||
const label transformIndex1
|
||||
) const
|
||||
{
|
||||
FixedList<label, 3> permutation0 = decodeTransformIndex(transformIndex0);
|
||||
FixedList<label, 3> permutation1 = decodeTransformIndex(transformIndex1);
|
||||
if (transformIndex0 == transformIndex1)
|
||||
{
|
||||
return transformIndex0;
|
||||
}
|
||||
|
||||
|
||||
// Count number of transforms
|
||||
FixedList<label, 3> permutation0 = decodeTransformIndex(transformIndex0);
|
||||
label n0 = 0;
|
||||
forAll(permutation0, i)
|
||||
{
|
||||
if (permutation0[i] == 0)
|
||||
if (permutation0[i] != 0)
|
||||
{
|
||||
// 0 wins.
|
||||
}
|
||||
else if (permutation1[i] == 0)
|
||||
{
|
||||
// 0 wins.
|
||||
permutation0[i] = permutation1[i];
|
||||
}
|
||||
else if (permutation0[i] != permutation1[i])
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"Foam::label "
|
||||
"Foam::globalIndexAndTransform::minimumTransformIndex\n"
|
||||
"(\n"
|
||||
"const label,\n"
|
||||
"const label\n"
|
||||
") const\n"
|
||||
) << "More than one patch accessing the same transform "
|
||||
<< "but not of the same sign." << endl
|
||||
<< "Trying to combine two transforms " << transformIndex0
|
||||
<< " with signs " << permutation0
|
||||
<< " and " << transformIndex1
|
||||
<< " with signs " << permutation1
|
||||
<< exit(FatalError);
|
||||
n0++;
|
||||
}
|
||||
}
|
||||
return encodeTransformIndex(permutation0);
|
||||
|
||||
FixedList<label, 3> permutation1 = decodeTransformIndex(transformIndex1);
|
||||
label n1 = 0;
|
||||
forAll(permutation1, i)
|
||||
{
|
||||
if (permutation1[i] != 0)
|
||||
{
|
||||
n1++;
|
||||
}
|
||||
}
|
||||
|
||||
if (n0 <= n1)
|
||||
{
|
||||
return transformIndex0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return transformIndex1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -40,6 +40,48 @@ Foam::dynamicFvMesh::dynamicFvMesh(const IOobject& io)
|
||||
{}
|
||||
|
||||
|
||||
Foam::dynamicFvMesh::dynamicFvMesh
|
||||
(
|
||||
const IOobject& io,
|
||||
const Xfer<pointField>& points,
|
||||
const Xfer<faceList>& faces,
|
||||
const Xfer<labelList>& allOwner,
|
||||
const Xfer<labelList>& allNeighbour,
|
||||
const bool syncPar
|
||||
)
|
||||
:
|
||||
fvMesh
|
||||
(
|
||||
io,
|
||||
points,
|
||||
faces,
|
||||
allOwner,
|
||||
allNeighbour,
|
||||
syncPar
|
||||
)
|
||||
{}
|
||||
|
||||
|
||||
Foam::dynamicFvMesh::dynamicFvMesh
|
||||
(
|
||||
const IOobject& io,
|
||||
const Xfer<pointField>& points,
|
||||
const Xfer<faceList>& faces,
|
||||
const Xfer<cellList>& cells,
|
||||
const bool syncPar
|
||||
)
|
||||
:
|
||||
fvMesh
|
||||
(
|
||||
io,
|
||||
points,
|
||||
faces,
|
||||
cells,
|
||||
syncPar
|
||||
)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dynamicFvMesh::~dynamicFvMesh()
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -85,6 +85,29 @@ public:
|
||||
//- Construct from objectRegistry, and read/write options
|
||||
explicit dynamicFvMesh(const IOobject& io);
|
||||
|
||||
//- Construct from components without boundary.
|
||||
// Boundary is added using addFvPatches() member function
|
||||
dynamicFvMesh
|
||||
(
|
||||
const IOobject& io,
|
||||
const Xfer<pointField>& points,
|
||||
const Xfer<faceList>& faces,
|
||||
const Xfer<labelList>& allOwner,
|
||||
const Xfer<labelList>& allNeighbour,
|
||||
const bool syncPar = true
|
||||
);
|
||||
|
||||
//- Construct without boundary from cells rather than owner/neighbour.
|
||||
// Boundary is added using addPatches() member function
|
||||
dynamicFvMesh
|
||||
(
|
||||
const IOobject& io,
|
||||
const Xfer<pointField>& points,
|
||||
const Xfer<faceList>& faces,
|
||||
const Xfer<cellList>& cells,
|
||||
const bool syncPar = true
|
||||
);
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -149,6 +149,7 @@ Foam::octree<Type>::octree
|
||||
// - has some guaranteed maximum size (maxShapeRatio)
|
||||
|
||||
label oldNLeaves = -1; // make test below pass first time.
|
||||
label oldNNodes = -1;
|
||||
deepestLevel_ = 1;
|
||||
while
|
||||
(
|
||||
@ -169,11 +170,11 @@ Foam::octree<Type>::octree
|
||||
break;
|
||||
}
|
||||
|
||||
if (oldNLeaves == nLeaves())
|
||||
if ((oldNLeaves == nLeaves()) && (oldNNodes == nNodes()))
|
||||
{
|
||||
if (debug & 1)
|
||||
{
|
||||
Pout<< "octree : exiting since nLeaves does not change"
|
||||
Pout<< "octree : exiting since nLeaves and nNodes do not change"
|
||||
<< endl;
|
||||
}
|
||||
break;
|
||||
@ -185,6 +186,7 @@ Foam::octree<Type>::octree
|
||||
}
|
||||
|
||||
oldNLeaves = nLeaves();
|
||||
oldNNodes = nNodes();
|
||||
|
||||
topNode_->redistribute
|
||||
(
|
||||
|
||||
@ -3,13 +3,13 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
makeType=${1:-libso}
|
||||
|
||||
# get SCOTCH_VERSION, SCOTCH_ARCH_PATH
|
||||
if settings=`$WM_PROJECT_DIR/bin/foamEtcFile apps/scotch/bashrc`
|
||||
if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config/scotch.sh`
|
||||
then
|
||||
. $settings
|
||||
echo "using SCOTCH_ARCH_PATH=$SCOTCH_ARCH_PATH"
|
||||
else
|
||||
echo
|
||||
echo "Error: no apps/scotch/bashrc settings"
|
||||
echo "Error: no config/scotch.sh settings"
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
@ -399,7 +399,7 @@ void kOmegaSSTSAS::correct(const tmp<volTensorField>& gradU)
|
||||
*max
|
||||
(
|
||||
dimensionedScalar("zero",dimensionSet(0, 0, -2, 0, 0), 0.0),
|
||||
zetaTilda2_*kappa_*S2*(L/Lvk2(S2))
|
||||
zetaTilda2_*kappa_*S2*sqr(L/Lvk2(S2))
|
||||
- 2.0/alphaPhi_*k_*grad_omega_k
|
||||
)
|
||||
);
|
||||
|
||||
@ -27,22 +27,12 @@ Class
|
||||
Description
|
||||
kOmegaSSTSAS LES turbulence model for incompressible flows
|
||||
|
||||
References:
|
||||
Evaluation of the SST-SAS model: Channel flow, asymmetric diffuser and axi-
|
||||
symmetric hill
|
||||
European Conference on Computational Fluid Dynamics
|
||||
ECCOMAS CFD 2006
|
||||
Lars Davison
|
||||
|
||||
A Scale-Adaptive Simulation Model using Two-Equation Models
|
||||
AIAA 2005-1095
|
||||
F. R. Menter and Y. Egorov
|
||||
|
||||
DESider A European Effort on Hybrid RANS-LES Modelling:
|
||||
Results of the European-Union Funded Project, 2004 - 2007
|
||||
(Notes on Numerical Fluid Mechanics and Multidisciplinary Design).
|
||||
Chapter 8 Formulation of the Scale-Adaptive Simulation (SAS) Model during
|
||||
the DESIDER Project.
|
||||
the DESIDER Project. Published in Springer-Verlag Berlin Heidelberg 2009.
|
||||
F. R. Menter and Y. Egorov.
|
||||
|
||||
SourceFiles
|
||||
|
||||
@ -16,7 +16,7 @@ FoamFile
|
||||
|
||||
convertToMeters 1;
|
||||
|
||||
vertices
|
||||
vertices
|
||||
(
|
||||
(0 0 0)
|
||||
(1 0 0)
|
||||
@ -28,32 +28,71 @@ vertices
|
||||
(0 1 1)
|
||||
);
|
||||
|
||||
blocks
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) (16 16 16) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
cyclic patch0
|
||||
(
|
||||
(0 3 2 1)
|
||||
(4 5 6 7)
|
||||
)
|
||||
cyclic patch1
|
||||
(
|
||||
(0 4 7 3)
|
||||
(2 6 5 1)
|
||||
)
|
||||
cyclic patch2
|
||||
(
|
||||
(3 7 6 2)
|
||||
(1 5 4 0)
|
||||
)
|
||||
patch0_half0
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch patch0_half1;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
patch0_half1
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch patch0_half0;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
patch1_half0
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch patch1_half1;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
patch1_half1
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch patch1_half0;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
patch2_half0
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch patch2_half1;
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
patch2_half1
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch patch2_half0;
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -22,6 +22,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 256;
|
||||
startFace 11520;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch patch0_half1;
|
||||
}
|
||||
patch0_half1
|
||||
@ -29,6 +30,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 256;
|
||||
startFace 11776;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch patch0_half0;
|
||||
}
|
||||
patch1_half0
|
||||
@ -36,6 +38,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 256;
|
||||
startFace 12032;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch patch1_half1;
|
||||
}
|
||||
patch1_half1
|
||||
@ -43,6 +46,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 256;
|
||||
startFace 12288;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch patch1_half0;
|
||||
}
|
||||
patch2_half0
|
||||
@ -50,6 +54,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 256;
|
||||
startFace 12544;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch patch2_half1;
|
||||
}
|
||||
patch2_half1
|
||||
@ -57,6 +62,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 256;
|
||||
startFace 12800;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch patch2_half0;
|
||||
}
|
||||
)
|
||||
|
||||
11
tutorials/basic/potentialFoam/cylinder/Allclean
Executable file
11
tutorials/basic/potentialFoam/cylinder/Allclean
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
rm -rf 0 > /dev/null 2>&1
|
||||
|
||||
cleanCase
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
@ -6,10 +6,9 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
application=`getApplication`
|
||||
|
||||
cp -r 0.org 0 > /dev/null 2>&1
|
||||
runApplication blockMesh
|
||||
runApplication $application
|
||||
compileApplication analyticalCylinder
|
||||
runApplication analyticalCylinder
|
||||
runApplication streamFunction
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
analyticalCylinder.C
|
||||
|
||||
EXE = $(FOAM_USER_APPBIN)/analyticalCylinder
|
||||
@ -1,5 +0,0 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume
|
||||
@ -1,70 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\/ 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/>.
|
||||
|
||||
Application
|
||||
analyticalCylinder
|
||||
|
||||
Description
|
||||
Generates an analytical solution for potential flow around a cylinder.
|
||||
Can be compared with the solution from the potentialFlow/cylinder example.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "fvCFD.H"
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
||||
# include "setRootCase.H"
|
||||
|
||||
# include "createTime.H"
|
||||
# include "createMesh.H"
|
||||
# include "createFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info<< "\nEvaluating analytical solution" << endl;
|
||||
|
||||
volVectorField centres = UA.mesh().C();
|
||||
volScalarField magCentres = mag(centres);
|
||||
volScalarField theta = acos((centres & vector(1,0,0))/magCentres);
|
||||
|
||||
volVectorField cs2theta =
|
||||
cos(2*theta)*vector(1,0,0)
|
||||
+ sin(2*theta)*vector(0,1,0);
|
||||
|
||||
UA = uInfX*(dimensionedVector(vector(1,0,0))
|
||||
- pow((radius/magCentres),2)*cs2theta);
|
||||
|
||||
// Force writing of UA (since time has not changed)
|
||||
UA.write();
|
||||
|
||||
Info<< "end" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,45 +0,0 @@
|
||||
Info<< "Reading field U\n" << endl;
|
||||
volVectorField U
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"U",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh
|
||||
);
|
||||
|
||||
Info<< "Reading inlet velocity uInfX\n" << endl;
|
||||
|
||||
dimensionedScalar uInfX
|
||||
(
|
||||
"uInfx",
|
||||
dimensionSet(0, 1, -1, 0, 0),
|
||||
U.boundaryField()[3][0].x()
|
||||
);
|
||||
Info << "U at inlet = " << uInfX.value() << " m/s" << endl;
|
||||
|
||||
dimensionedScalar radius
|
||||
(
|
||||
"radius",
|
||||
dimensionSet(0, 1, 0, 0, 0),
|
||||
mag(U.mesh().boundary()[4].Cf()[0])
|
||||
);
|
||||
|
||||
Info << "Cylinder radius = " << radius.value() << " m" << endl;
|
||||
|
||||
volVectorField UA
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"UA",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
U
|
||||
);
|
||||
@ -92,39 +92,59 @@ edges
|
||||
arc 34 28 (-0.34202 0.939693 0.5)
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
symmetryPlane down
|
||||
(
|
||||
(0 1 20 19)
|
||||
(1 2 21 20)
|
||||
(12 11 30 31)
|
||||
(13 12 31 32)
|
||||
)
|
||||
patch right
|
||||
(
|
||||
(2 3 22 21)
|
||||
(3 6 25 22)
|
||||
)
|
||||
symmetryPlane up
|
||||
(
|
||||
(7 8 27 26)
|
||||
(6 7 26 25)
|
||||
(8 18 37 27)
|
||||
(18 17 36 37)
|
||||
)
|
||||
patch left
|
||||
(
|
||||
(14 13 32 33)
|
||||
(17 14 33 36)
|
||||
)
|
||||
symmetryPlane cylinder
|
||||
(
|
||||
(10 5 24 29)
|
||||
(5 0 19 24)
|
||||
(16 10 29 35)
|
||||
(11 16 35 30)
|
||||
)
|
||||
down
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 1 20 19)
|
||||
(1 2 21 20)
|
||||
(12 11 30 31)
|
||||
(13 12 31 32)
|
||||
);
|
||||
}
|
||||
right
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 3 22 21)
|
||||
(3 6 25 22)
|
||||
);
|
||||
}
|
||||
up
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(7 8 27 26)
|
||||
(6 7 26 25)
|
||||
(8 18 37 27)
|
||||
(18 17 36 37)
|
||||
);
|
||||
}
|
||||
left
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(14 13 32 33)
|
||||
(17 14 33 36)
|
||||
);
|
||||
}
|
||||
cylinder
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(10 5 24 29)
|
||||
(5 0 19 24)
|
||||
(16 10 29 35)
|
||||
(11 16 35 30)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -45,5 +45,74 @@ timePrecision 6;
|
||||
|
||||
runTimeModifiable true;
|
||||
|
||||
functions
|
||||
{
|
||||
difference
|
||||
{
|
||||
functionObjectLibs ("libutilityFunctionObjects.so");
|
||||
type coded;
|
||||
redirectType error;
|
||||
code
|
||||
#{
|
||||
// Lookup U
|
||||
Info<< "Looking up field U\n" << endl;
|
||||
const volVectorField& U = mesh().lookupObject<volVectorField>("U");
|
||||
|
||||
Info<< "Reading inlet velocity uInfX\n" << endl;
|
||||
|
||||
dimensionedScalar uInfX
|
||||
(
|
||||
"uInfx",
|
||||
dimensionSet(0, 1, -1, 0, 0),
|
||||
U.boundaryField()[3][0].x()
|
||||
);
|
||||
Info << "U at inlet = " << uInfX.value() << " m/s" << endl;
|
||||
|
||||
dimensionedScalar radius
|
||||
(
|
||||
"radius",
|
||||
dimensionSet(0, 1, 0, 0, 0),
|
||||
mag(U.mesh().boundary()[4].Cf()[0])
|
||||
);
|
||||
|
||||
Info << "Cylinder radius = " << radius.value() << " m" << endl;
|
||||
|
||||
volVectorField UA
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"UA",
|
||||
mesh().time().timeName(),
|
||||
U.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
U
|
||||
);
|
||||
|
||||
Info<< "\nEvaluating analytical solution" << endl;
|
||||
|
||||
volVectorField centres = UA.mesh().C();
|
||||
volScalarField magCentres = mag(centres);
|
||||
volScalarField theta = acos((centres & vector(1,0,0))/magCentres);
|
||||
|
||||
volVectorField cs2theta =
|
||||
cos(2*theta)*vector(1,0,0)
|
||||
+ sin(2*theta)*vector(0,1,0);
|
||||
|
||||
UA = uInfX*(dimensionedVector(vector(1,0,0))
|
||||
- pow((radius/magCentres),2)*cs2theta);
|
||||
|
||||
// Force writing of UA (since time has not changed)
|
||||
UA.write();
|
||||
|
||||
volScalarField error("error", mag(U-UA)/mag(UA));
|
||||
Info<<"Writing relative error in U to " << error.objectPath()
|
||||
<< endl;
|
||||
error.write();
|
||||
#};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -85,65 +85,85 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
)
|
||||
wall upperWall
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
)
|
||||
wall lowerWall
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
);
|
||||
}
|
||||
upperWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
);
|
||||
}
|
||||
lowerWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -85,65 +85,85 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
)
|
||||
wall upperWall
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
)
|
||||
wall lowerWall
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
);
|
||||
}
|
||||
upperWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
);
|
||||
}
|
||||
lowerWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -46,6 +46,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 0;
|
||||
startFace 24810;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch baffleCyclic_half1;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
@ -53,6 +54,7 @@ FoamFile
|
||||
type cyclic;
|
||||
nFaces 0;
|
||||
startFace 24810;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch baffleCyclic_half0;
|
||||
}
|
||||
)
|
||||
|
||||
@ -85,65 +85,85 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
)
|
||||
wall upperWall
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
)
|
||||
wall lowerWall
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
);
|
||||
}
|
||||
upperWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
);
|
||||
}
|
||||
lowerWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -40,11 +40,11 @@ boundaryField
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -42,11 +42,11 @@ boundaryField
|
||||
type fixedValue;
|
||||
value uniform 570;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -42,11 +42,11 @@ boundaryField
|
||||
type fixedValue;
|
||||
value uniform 570;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -44,11 +44,11 @@ boundaryField
|
||||
type fixedValue;
|
||||
value uniform ( 0 0 0 );
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -40,11 +40,11 @@ boundaryField
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -41,11 +41,11 @@ boundaryField
|
||||
hs h;
|
||||
value uniform 0;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -40,11 +40,11 @@ boundaryField
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -42,11 +42,11 @@ boundaryField
|
||||
type zeroGradient;
|
||||
value uniform 2e-05;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -39,11 +39,11 @@ boundaryField
|
||||
type muSgsUSpaldingWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -45,11 +45,11 @@ boundaryField
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ FoamFile
|
||||
|
||||
convertToMeters 0.001;
|
||||
|
||||
vertices
|
||||
vertices
|
||||
(
|
||||
(-20.6 0 0)
|
||||
(-20.6 2 0)
|
||||
@ -64,7 +64,7 @@ vertices
|
||||
(290 16.6 38.1)
|
||||
);
|
||||
|
||||
blocks
|
||||
blocks
|
||||
(
|
||||
hex (0 6 7 1 22 28 29 23) (18 7 20) simpleGrading (1 1 1)
|
||||
hex (1 7 8 2 23 29 30 24) (18 10 20) simpleGrading (1 4 1)
|
||||
@ -81,69 +81,98 @@ blocks
|
||||
hex (14 20 21 15 36 42 43 37) (25 13 20) simpleGrading (1 0.25 1)
|
||||
);
|
||||
|
||||
edges
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
)
|
||||
wall upperWall
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
)
|
||||
wall lowerWall
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
)
|
||||
cyclic frontAndBack
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
);
|
||||
}
|
||||
upperWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
);
|
||||
}
|
||||
lowerWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
);
|
||||
}
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch back;
|
||||
faces
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
);
|
||||
}
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch front;
|
||||
faces
|
||||
(
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -41,19 +41,21 @@ FoamFile
|
||||
nFaces 5000;
|
||||
startFace 721875;
|
||||
}
|
||||
frontAndBack_half0
|
||||
front
|
||||
{
|
||||
type cyclic;
|
||||
nFaces 12225;
|
||||
startFace 726875;
|
||||
neighbourPatch frontAndBack_half1;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch back;
|
||||
}
|
||||
frontAndBack_half1
|
||||
back
|
||||
{
|
||||
type cyclic;
|
||||
nFaces 12225;
|
||||
startFace 739100;
|
||||
neighbourPatch frontAndBack_half0;
|
||||
matchTolerance 0.0001;
|
||||
neighbourPatch front;
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@ -37,29 +37,49 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
symmetryPlane left
|
||||
(
|
||||
(0 4 5 1)
|
||||
)
|
||||
symmetryPlane right
|
||||
(
|
||||
(2 3 7 6)
|
||||
)
|
||||
symmetryPlane top
|
||||
(
|
||||
(1 5 7 3)
|
||||
)
|
||||
symmetryPlane bottom
|
||||
(
|
||||
(0 2 6 4)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(4 5 7 6)
|
||||
(0 1 3 2)
|
||||
)
|
||||
left
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 4 5 1)
|
||||
);
|
||||
}
|
||||
right
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(2 3 7 6)
|
||||
);
|
||||
}
|
||||
top
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(1 5 7 3)
|
||||
);
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 2 6 4)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(4 5 7 6)
|
||||
(0 1 3 2)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -37,17 +37,21 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
wall walls
|
||||
(
|
||||
(2 6 5 1)
|
||||
(0 4 7 3)
|
||||
(0 1 5 4)
|
||||
(4 5 6 7)
|
||||
(7 6 2 3)
|
||||
(3 2 1 0)
|
||||
)
|
||||
walls
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
(0 4 7 3)
|
||||
(0 1 5 4)
|
||||
(4 5 6 7)
|
||||
(7 6 2 3)
|
||||
(3 2 1 0)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -38,26 +38,42 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch base
|
||||
(
|
||||
(0 1 5 4)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(3 2 6 7)
|
||||
)
|
||||
patch sides
|
||||
(
|
||||
(1 5 6 2)
|
||||
(0 4 7 3)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(0 1 2 3)
|
||||
(4 5 6 7)
|
||||
)
|
||||
base
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 1 5 4)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(3 2 6 7)
|
||||
);
|
||||
}
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 5 6 2)
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(0 1 2 3)
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -15,37 +15,31 @@ FoamFile
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
5
|
||||
4
|
||||
(
|
||||
base
|
||||
{
|
||||
type patch;
|
||||
nFaces 134;
|
||||
nFaces 150;
|
||||
startFace 44700;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
nFaces 150;
|
||||
startFace 44834;
|
||||
startFace 44850;
|
||||
}
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
nFaces 300;
|
||||
startFace 44984;
|
||||
startFace 45000;
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
nFaces 45000;
|
||||
startFace 45284;
|
||||
}
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
nFaces 16;
|
||||
startFace 90284;
|
||||
startFace 45300;
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@ -38,23 +38,35 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch base
|
||||
(
|
||||
(0 1 5 4)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(3 2 6 7)
|
||||
)
|
||||
patch sides
|
||||
(
|
||||
(0 4 7 3)
|
||||
(0 1 2 3)
|
||||
(1 5 6 2)
|
||||
(4 5 6 7)
|
||||
)
|
||||
base
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 1 5 4)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(3 2 6 7)
|
||||
);
|
||||
}
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
(0 1 2 3)
|
||||
(1 5 6 2)
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -15,31 +15,25 @@ FoamFile
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
4
|
||||
3
|
||||
(
|
||||
base
|
||||
{
|
||||
type patch;
|
||||
nFaces 3456;
|
||||
nFaces 3600;
|
||||
startFace 637200;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
nFaces 3600;
|
||||
startFace 640656;
|
||||
startFace 640800;
|
||||
}
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
nFaces 14400;
|
||||
startFace 644256;
|
||||
}
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
nFaces 144;
|
||||
startFace 658656;
|
||||
startFace 644400;
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@ -37,26 +37,42 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch fuel
|
||||
(
|
||||
(0 4 7 3)
|
||||
)
|
||||
patch air
|
||||
(
|
||||
(1 2 6 5)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(0 1 5 4)
|
||||
(7 6 2 3)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(4 5 6 7)
|
||||
(0 3 2 1)
|
||||
)
|
||||
fuel
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
air
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 2 6 5)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 1 5 4)
|
||||
(7 6 2 3)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -40,40 +40,64 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 2 6 0)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 2 6 0)
|
||||
);
|
||||
}
|
||||
|
||||
patch outlet
|
||||
(
|
||||
(1 3 7 1)
|
||||
(3 5 9 7)
|
||||
)
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 3 7 1)
|
||||
(3 5 9 7)
|
||||
);
|
||||
}
|
||||
|
||||
patch freestreamInlet
|
||||
(
|
||||
(2 4 8 6)
|
||||
)
|
||||
freestreamInlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 4 8 6)
|
||||
);
|
||||
}
|
||||
|
||||
patch freestream
|
||||
(
|
||||
(4 8 9 5)
|
||||
)
|
||||
freestream
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 8 9 5)
|
||||
);
|
||||
}
|
||||
|
||||
wedge wedge1
|
||||
(
|
||||
(0 2 3 1)
|
||||
(2 4 5 3)
|
||||
)
|
||||
wedge1
|
||||
{
|
||||
type wedge;
|
||||
faces
|
||||
(
|
||||
(0 2 3 1)
|
||||
(2 4 5 3)
|
||||
);
|
||||
}
|
||||
|
||||
wedge wedge2
|
||||
(
|
||||
(0 1 7 6)
|
||||
(6 7 9 8)
|
||||
)
|
||||
wedge2
|
||||
{
|
||||
type wedge;
|
||||
faces
|
||||
(
|
||||
(0 1 7 6)
|
||||
(6 7 9 8)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -37,37 +37,61 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch cone
|
||||
(
|
||||
(1 5 4 0)
|
||||
)
|
||||
|
||||
patch outlet
|
||||
(
|
||||
(2 6 5 1)
|
||||
)
|
||||
cone
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
|
||||
patch freestream
|
||||
(
|
||||
(3 7 6 2)
|
||||
)
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
|
||||
symmetryPlane centreLeft
|
||||
(
|
||||
(0 4 7 3)
|
||||
)
|
||||
|
||||
patch wedge1
|
||||
(
|
||||
(0 3 2 1)
|
||||
)
|
||||
freestream
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
|
||||
patch wedge2
|
||||
(
|
||||
(4 5 6 7)
|
||||
)
|
||||
centreLeft
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
|
||||
wedge1
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
|
||||
wedge2
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -47,31 +47,51 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 8 10 2)
|
||||
(2 10 13 5)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(4 7 15 12)
|
||||
)
|
||||
symmetryPlane bottom
|
||||
(
|
||||
(0 1 9 8)
|
||||
)
|
||||
symmetryPlane top
|
||||
(
|
||||
(5 13 14 6)
|
||||
(6 14 15 7)
|
||||
)
|
||||
patch obstacle
|
||||
(
|
||||
(1 3 11 9)
|
||||
(3 4 12 11)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 8 10 2)
|
||||
(2 10 13 5)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 7 15 12)
|
||||
);
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 1 9 8)
|
||||
);
|
||||
}
|
||||
top
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(5 13 14 6)
|
||||
(6 14 15 7)
|
||||
);
|
||||
}
|
||||
obstacle
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 3 11 9)
|
||||
(3 4 12 11)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -20,35 +20,30 @@ FoamFile
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
physicalType supersonicInlet;
|
||||
nFaces 80;
|
||||
startFace 31936;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
physicalType pressureTransmissiveOutlet;
|
||||
nFaces 64;
|
||||
startFace 32016;
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
physicalType symmetryPlane;
|
||||
nFaces 48;
|
||||
startFace 32080;
|
||||
}
|
||||
top
|
||||
{
|
||||
type symmetryPlane;
|
||||
physicalType symmetryPlane;
|
||||
nFaces 240;
|
||||
startFace 32128;
|
||||
}
|
||||
obstacle
|
||||
{
|
||||
type patch;
|
||||
physicalType adiabaticWall;
|
||||
nFaces 208;
|
||||
startFace 32368;
|
||||
}
|
||||
|
||||
@ -20,28 +20,28 @@ internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
top
|
||||
top
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
bottom
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ FoamFile
|
||||
|
||||
convertToMeters 1;
|
||||
|
||||
vertices
|
||||
vertices
|
||||
(
|
||||
(0 0 0)
|
||||
(4.1 0 0)
|
||||
@ -28,41 +28,61 @@ vertices
|
||||
(0 1 0.1)
|
||||
);
|
||||
|
||||
blocks
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) (60 30 1) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
wall top
|
||||
(
|
||||
(3 7 6 2)
|
||||
)
|
||||
wall inlet
|
||||
(
|
||||
(0 4 7 3)
|
||||
)
|
||||
wall outlet
|
||||
(
|
||||
(2 6 5 1)
|
||||
)
|
||||
wall bottom
|
||||
(
|
||||
(1 5 4 0)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(0 3 2 1)
|
||||
(4 5 6 7)
|
||||
)
|
||||
top
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
mergePatchPairs
|
||||
(
|
||||
);
|
||||
|
||||
|
||||
@ -19,36 +19,31 @@ FoamFile
|
||||
(
|
||||
top
|
||||
{
|
||||
type patch;
|
||||
physicalType inlet;
|
||||
type wall;
|
||||
nFaces 60;
|
||||
startFace 3510;
|
||||
}
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
physicalType supersonicInlet;
|
||||
nFaces 30;
|
||||
startFace 3570;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
physicalType extrapolatedOutlet;
|
||||
nFaces 30;
|
||||
startFace 3600;
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
physicalType symmetryPlane;
|
||||
nFaces 60;
|
||||
startFace 3630;
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
physicalType empty;
|
||||
nFaces 3600;
|
||||
startFace 3690;
|
||||
}
|
||||
|
||||
@ -37,20 +37,28 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch sides
|
||||
(
|
||||
(1 2 6 5)
|
||||
(0 4 7 3)
|
||||
)
|
||||
empty empty
|
||||
(
|
||||
(0 1 5 4)
|
||||
(5 6 7 4)
|
||||
(3 7 6 2)
|
||||
(0 3 2 1)
|
||||
)
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 2 6 5)
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
empty
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(0 1 5 4)
|
||||
(5 6 7 4)
|
||||
(3 7 6 2)
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -20,14 +20,12 @@ FoamFile
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
physicalType outletAdiabatic;
|
||||
nFaces 2;
|
||||
startFace 99;
|
||||
}
|
||||
empty
|
||||
{
|
||||
type empty;
|
||||
physicalType empty;
|
||||
nFaces 400;
|
||||
startFace 101;
|
||||
}
|
||||
|
||||
@ -44,29 +44,49 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 6 9 3)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(2 5 11 8)
|
||||
)
|
||||
symmetryPlane bottom
|
||||
(
|
||||
(0 1 7 6)
|
||||
)
|
||||
symmetryPlane top
|
||||
(
|
||||
(3 9 10 4)
|
||||
(4 10 11 5)
|
||||
)
|
||||
patch obstacle
|
||||
(
|
||||
(1 2 8 7)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 6 9 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 5 11 8)
|
||||
);
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 1 7 6)
|
||||
);
|
||||
}
|
||||
top
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(3 9 10 4)
|
||||
(4 10 11 5)
|
||||
);
|
||||
}
|
||||
obstacle
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 2 8 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -85,65 +85,85 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
)
|
||||
wall upperWall
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
)
|
||||
wall lowerWall
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
(18 19 41 40)
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
);
|
||||
}
|
||||
upperWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
);
|
||||
}
|
||||
lowerWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
(5 4 26 27)
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
(24 30 31 25)
|
||||
(26 32 33 27)
|
||||
(27 33 34 28)
|
||||
(28 34 35 29)
|
||||
(29 35 36 30)
|
||||
(30 36 37 31)
|
||||
(32 38 39 33)
|
||||
(33 39 40 34)
|
||||
(34 40 41 35)
|
||||
(35 41 42 36)
|
||||
(36 42 43 37)
|
||||
(0 1 7 6)
|
||||
(1 2 8 7)
|
||||
(2 3 9 8)
|
||||
(4 5 11 10)
|
||||
(5 6 12 11)
|
||||
(6 7 13 12)
|
||||
(7 8 14 13)
|
||||
(8 9 15 14)
|
||||
(10 11 17 16)
|
||||
(11 12 18 17)
|
||||
(12 13 19 18)
|
||||
(13 14 20 19)
|
||||
(14 15 21 20)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -37,23 +37,35 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
wall movingWall
|
||||
(
|
||||
(3 7 6 2)
|
||||
)
|
||||
wall fixedWalls
|
||||
(
|
||||
(0 4 7 3)
|
||||
(2 6 5 1)
|
||||
(1 5 4 0)
|
||||
)
|
||||
empty frontAndBack
|
||||
(
|
||||
(0 3 2 1)
|
||||
(4 5 6 7)
|
||||
)
|
||||
movingWall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
fixedWalls
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
(2 6 5 1)
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
format binary;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
|
||||
@ -71,41 +71,53 @@ edges
|
||||
arc 15 19 ( 53.033 -53.033 -25)
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
// is there no way of defining all my 'defaultFaces' to be 'wall'?
|
||||
wall Default_Boundary_Region
|
||||
(
|
||||
// block0
|
||||
( 0 1 3 2 )
|
||||
( 11 10 12 13 )
|
||||
( 0 10 11 1 )
|
||||
( 2 3 13 12 )
|
||||
// block1
|
||||
( 4 5 7 6 )
|
||||
( 15 14 16 17 )
|
||||
( 4 14 15 5 )
|
||||
( 6 7 17 16 )
|
||||
// block2
|
||||
( 1 8 9 3 )
|
||||
( 18 11 13 19 )
|
||||
( 3 9 19 13 )
|
||||
( 1 11 18 8 )
|
||||
// block3
|
||||
( 5 9 8 7 )
|
||||
( 19 15 17 18 )
|
||||
( 5 15 19 9 )
|
||||
( 7 8 18 17 )
|
||||
)
|
||||
patch inlet
|
||||
(
|
||||
(0 2 12 10)
|
||||
)
|
||||
// is there no way of defining all my 'defaultFaces' to be 'wall'?
|
||||
Default_Boundary_Region
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
// block0
|
||||
( 0 1 3 2 )
|
||||
( 11 10 12 13 )
|
||||
( 0 10 11 1 )
|
||||
( 2 3 13 12 )
|
||||
// block1
|
||||
( 4 5 7 6 )
|
||||
( 15 14 16 17 )
|
||||
( 4 14 15 5 )
|
||||
( 6 7 17 16 )
|
||||
// block2
|
||||
( 1 8 9 3 )
|
||||
( 18 11 13 19 )
|
||||
( 3 9 19 13 )
|
||||
( 1 11 18 8 )
|
||||
// block3
|
||||
( 5 9 8 7 )
|
||||
( 19 15 17 18 )
|
||||
( 5 15 19 9 )
|
||||
( 7 8 18 17 )
|
||||
);
|
||||
}
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 2 12 10)
|
||||
);
|
||||
}
|
||||
|
||||
patch outlet
|
||||
(
|
||||
(4 6 16 14)
|
||||
)
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 6 16 14)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
@ -47,31 +47,51 @@ edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
boundary
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 8 10 2)
|
||||
(2 10 13 5)
|
||||
)
|
||||
patch outlet
|
||||
(
|
||||
(4 7 15 12)
|
||||
)
|
||||
symmetryPlane bottom
|
||||
(
|
||||
(0 1 9 8)
|
||||
)
|
||||
symmetryPlane top
|
||||
(
|
||||
(5 13 14 6)
|
||||
(6 14 15 7)
|
||||
)
|
||||
patch obstacle
|
||||
(
|
||||
(1 3 11 9)
|
||||
(3 4 12 11)
|
||||
)
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 8 10 2)
|
||||
(2 10 13 5)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 7 15 12)
|
||||
);
|
||||
}
|
||||
bottom
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(0 1 9 8)
|
||||
);
|
||||
}
|
||||
top
|
||||
{
|
||||
type symmetryPlane;
|
||||
faces
|
||||
(
|
||||
(5 13 14 6)
|
||||
(6 14 15 7)
|
||||
);
|
||||
}
|
||||
obstacle
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 3 11 9)
|
||||
(3 4 12 11)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user