Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 47517f2ebb | |||
| fa12851880 | |||
| 76a8284120 | |||
| eb0ce5d792 | |||
| fa2ea1098a | |||
| a9f850781a | |||
| fdfb5b1825 | |||
| f92a7e7854 | |||
| e29811f5df | |||
| d93375f714 | |||
| 6b3f9c0b97 | |||
| 0d4d30aa29 | |||
| 039d77aae4 | |||
| bdc14dcd3d | |||
| 96e04780bf | |||
| 6257b17a4c | |||
| f934eabb0d | |||
| 2051acedfb | |||
| 9f9576a0e7 | |||
| 4086512c69 | |||
| aa3caf5ada | |||
| d389aa1ac1 | |||
| 2e8f733e4e | |||
| d1c655e7b8 | |||
| 072bc78266 | |||
| d8da4bd092 | |||
| 637e93fabd |
@ -12,8 +12,10 @@ for (int Ecorr=0; Ecorr<nEnergyCorrectors; Ecorr++)
|
||||
phaseModel& phase = fluid.anisothermalPhases()[anisothermalPhasei];
|
||||
|
||||
const volScalarField& alpha = phase;
|
||||
const volScalarField& rho = phase.rho();
|
||||
const volVectorField& U = phase.U();
|
||||
tmp<volScalarField> tRho = phase.rho();
|
||||
const volScalarField& rho = tRho();
|
||||
tmp<volVectorField> tU = phase.U();
|
||||
const volVectorField& U = tU();
|
||||
|
||||
fvScalarMatrix EEqn
|
||||
(
|
||||
|
||||
72
bin/paraFoam
72
bin/paraFoam
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -40,6 +40,7 @@ options:
|
||||
-block use blockMesh reader (uses .blockMesh extension)
|
||||
-builtin use VTK builtin OpenFOAM reader (uses .foam extension)
|
||||
-case <dir> specify alternative case directory, default is the cwd
|
||||
-empty launch ParaView without opening any data files
|
||||
-region <name> specify alternative mesh region
|
||||
-touch only create the file (eg, .blockMesh, .OpenFOAM, etc)
|
||||
-touchAll create .blockMesh, .OpenFOAM files (and for all regions)
|
||||
@ -59,6 +60,29 @@ error() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
pvExec () {
|
||||
_opt=""
|
||||
[ "$ParaView_GL" = mesa ] && _opt="--mesa"
|
||||
|
||||
paraview $_opt "$@"
|
||||
}
|
||||
|
||||
noPVReader () {
|
||||
cat<<EOF
|
||||
FATAL ERROR: The official reader module for OpenFOAM data does not exist on
|
||||
your system. This means that the version of ParaView you are using was not
|
||||
compiled with OpenFOAM, or distributed with a packaged version of OpenFOAM.
|
||||
|
||||
For information on packaged versions of OpenFOAM/ParaView and compilation of
|
||||
OpenFOAM/ParaView, see https://openfoam.org/download
|
||||
|
||||
Alternatively, you might be able to view your OpenFOAM data with the reader
|
||||
module provided with ParaView by running:
|
||||
paraFoam -builtin
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# We want to do nice exit when running paraview to give paraview opportunity
|
||||
# to clean up
|
||||
unset FOAM_ABORT
|
||||
@ -96,6 +120,10 @@ do
|
||||
cd "$2" 2>/dev/null || error "directory does not exist: '$2'"
|
||||
shift 2
|
||||
;;
|
||||
-empty)
|
||||
echo "Launching ParaView without opening any files."
|
||||
pvExec && exit 0
|
||||
;;
|
||||
-region)
|
||||
[ "$#" -ge 2 ] || error "'$1' option requires an argument"
|
||||
regionName=$2
|
||||
@ -125,20 +153,9 @@ do
|
||||
done
|
||||
|
||||
# Check that reader module has been built
|
||||
if [ $requirePV -eq 1 -a ! -f "$PV_PLUGIN_PATH/libPVFoamReader_SM.so" ]
|
||||
then
|
||||
cat<< BUILDREADER
|
||||
|
||||
FATAL ERROR: ParaView reader module libraries do not exist
|
||||
|
||||
Please build the reader module before continuing:
|
||||
cd \$FOAM_UTILITIES/postProcessing/graphics/PVReaders
|
||||
./Allwclean
|
||||
./Allwmake
|
||||
|
||||
BUILDREADER
|
||||
exit 1
|
||||
fi
|
||||
[ $requirePV -eq 1 ] && \
|
||||
! [ -f "$PV_PLUGIN_PATH/libPVFoamReader_SM.so" ] && \
|
||||
noPVReader && exit 1
|
||||
|
||||
# Check for --data=... argument
|
||||
hasDataArg()
|
||||
@ -158,7 +175,6 @@ hasDataArg()
|
||||
|
||||
hasDataArg "$@"
|
||||
|
||||
|
||||
# Get a sensible caseName from the directory name
|
||||
caseName=${PWD##*/}
|
||||
caseFile="$caseName.$extension"
|
||||
@ -179,7 +195,7 @@ fi
|
||||
case "${optTouch:-false}" in
|
||||
all)
|
||||
extension=OpenFOAM
|
||||
if [ -f system/blockMeshDict -o -f constant/polyMesh/blockMeshDict ]
|
||||
if [ -f system/blockMeshDict ] || [ -f constant/polyMesh/blockMeshDict ]
|
||||
then
|
||||
touch "$caseName.blockMesh"
|
||||
echo "Created '$caseName.blockMesh'"
|
||||
@ -189,12 +205,10 @@ all)
|
||||
# Discover probable regions
|
||||
for region in constant/*
|
||||
do
|
||||
if [ -d "$region" -a -d "$region"/polyMesh ]
|
||||
then
|
||||
regionName=${region##*/}
|
||||
touch "$caseName{$regionName}.$extension"
|
||||
[ -d "$region" ] && [ -d "${region}/polyMesh" ] && \
|
||||
regionName=${region##*/} && \
|
||||
touch "$caseName{$regionName}.$extension" && \
|
||||
echo "Created '$caseName{$regionName}.$extension'"
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
;;
|
||||
@ -217,7 +231,7 @@ if [ "${hasData:-false}" = true ]
|
||||
then
|
||||
|
||||
# Has --data=.., send directly to paraview
|
||||
exec paraview "$@"
|
||||
pvExec "$@"
|
||||
|
||||
else
|
||||
|
||||
@ -235,7 +249,8 @@ else
|
||||
$blockMeshDictDir \
|
||||
;
|
||||
do
|
||||
[ -s "$parentDir/$check" ] || {
|
||||
[ -s "$parentDir/$check" ] || [ -s "$parentDir/$check.orig" ] ||
|
||||
{
|
||||
[ -n "$warn" ] && echo "$warn" 1>&2
|
||||
echo " $parentDir/$check" 1>&2
|
||||
unset warn
|
||||
@ -250,7 +265,8 @@ else
|
||||
$fvControls/fvSolution \
|
||||
;
|
||||
do
|
||||
[ -s "$parentDir/$check" ] || {
|
||||
[ -s "$parentDir/$check" ] || [ -s "$parentDir/$check.orig" ] ||
|
||||
{
|
||||
[ -n "$warn" ] && echo "$warn" 1>&2
|
||||
echo " $parentDir/$check" 1>&2
|
||||
unset warn
|
||||
@ -263,7 +279,7 @@ else
|
||||
echo "Cannot locate OpenFOAM-format case files"
|
||||
printf "Would you like to open ParaView anyway <Y|n>:"
|
||||
read open
|
||||
[ "$open" = "" ] || echo "$open" | grep -iqE "^y" && paraview
|
||||
[ "$open" = "" ] || echo "$open" | grep -iqE "^y" && pvExec
|
||||
exit
|
||||
}
|
||||
|
||||
@ -275,8 +291,8 @@ else
|
||||
}
|
||||
|
||||
# For now filter out any ld.so errors. Caused by non-system compiler?
|
||||
paraview --data="$caseFile" "$@" 2>&1 \
|
||||
| fgrep -v 'Inconsistency detected by ld.so'
|
||||
pvExec --data="$caseFile" "$@" 2>&1 \
|
||||
| grep -v -F 'Inconsistency detected by ld.so'
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@ -10,12 +10,111 @@ Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
nLines 20;
|
||||
start (0 -4 1e-06); // Ensure that points do not coincide with
|
||||
end (0 4 1e-06); // mesh faces, but instead lie inside cells
|
||||
fields (U p);
|
||||
|
||||
// Must be last entry
|
||||
#includeEtc "caseDicts/postProcessing/visualization/streamlines.cfg"
|
||||
|
||||
fields (U p);
|
||||
|
||||
// Streamline direction: forward, backward, both
|
||||
direction both;
|
||||
|
||||
// Select from methods with sub-dictionary settings below
|
||||
seedMethod lineCell;
|
||||
|
||||
// Seeding along a line
|
||||
lineCell
|
||||
{
|
||||
type lineCell; // lineCellFace, lineFace
|
||||
start (0 -1 1);
|
||||
end (0 1 1);
|
||||
}
|
||||
|
||||
lineUniform
|
||||
{
|
||||
type lineUniform;
|
||||
start (0 -1 1);
|
||||
end (0 1 1);
|
||||
nPoints 50;
|
||||
}
|
||||
|
||||
circleRandom
|
||||
{
|
||||
type circleRandom;
|
||||
centre (0 0 0);
|
||||
radius 1;
|
||||
normal (1 0 0);
|
||||
nPoints 50;
|
||||
}
|
||||
|
||||
arcUniform
|
||||
{
|
||||
type arcUniform;
|
||||
centre (0 0 0);
|
||||
normal (1 0 0);
|
||||
radial (0 1 0);
|
||||
startAngle 0; // rad
|
||||
endAngle 3.14; // rad
|
||||
nPoints 50;
|
||||
}
|
||||
|
||||
// Seeding within a volume region
|
||||
boxUniform
|
||||
{
|
||||
type boxUniform;
|
||||
box (-1 -1 -1) (1 1 1);
|
||||
nPoints (3 3 3);
|
||||
}
|
||||
|
||||
sphereRandom
|
||||
{
|
||||
type sphereRandom;
|
||||
centre (0 0 0);
|
||||
radius 1;
|
||||
nPoints 50;
|
||||
}
|
||||
|
||||
// Seeding at points on a surface
|
||||
triSurfaceMesh
|
||||
{
|
||||
type triSurfaceMesh;
|
||||
surface <surfaceMeshFile>; // in constant/triSurface directory
|
||||
}
|
||||
|
||||
// Seeding at a boundary
|
||||
boundaryRandom
|
||||
{
|
||||
type boundaryRandom;
|
||||
patches (<patch1> <patch2>);
|
||||
nPoints 50;
|
||||
}
|
||||
|
||||
// Seeding a set of points
|
||||
points
|
||||
{
|
||||
type points;
|
||||
points (
|
||||
(0 -1 1)
|
||||
(0 0 1)
|
||||
(0 1 1)
|
||||
);
|
||||
ordered on;
|
||||
}
|
||||
|
||||
boundaryPoints
|
||||
{
|
||||
type boundaryPoints;
|
||||
points (
|
||||
(0 -1 1)
|
||||
(0 0 1)
|
||||
(0 1 1)
|
||||
);
|
||||
maxDistance 1;
|
||||
}
|
||||
|
||||
// DO NOT REMOVE from END of file; sets the seedSampleSet
|
||||
seedSampleSet
|
||||
{
|
||||
${$seedMethod};
|
||||
axis x;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -13,20 +13,10 @@ executeControl writeTime;
|
||||
writeControl writeTime;
|
||||
|
||||
setFormat vtk;
|
||||
direction forward;
|
||||
|
||||
lifeTime 10000;
|
||||
nSubCycle 5;
|
||||
|
||||
cloudName particleTracks;
|
||||
|
||||
seedSampleSet
|
||||
{
|
||||
type lineUniform;
|
||||
axis x;
|
||||
start $start;
|
||||
end $end;
|
||||
nPoints $nLines;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -63,6 +63,8 @@ setenv ParaView_VERSION 5.4.0
|
||||
#setenv ParaView_VERSION 5.5.0
|
||||
setenv ParaView_MAJOR detect
|
||||
|
||||
#setenv ParaView_GL=system
|
||||
setenv ParaView_GL=mesa
|
||||
|
||||
# Evaluate command-line parameters for ParaView
|
||||
while ( $#argv > 0 )
|
||||
@ -127,6 +129,7 @@ if ( -r $ParaView_DIR || -r $paraviewInstDir ) then
|
||||
setenv PYTHONPATH ${paraviewPython}:$ParaView_LIB_DIR
|
||||
endif
|
||||
endif
|
||||
if ("$ParaView_GL" == mesa) alias paraview 'paraview --mesa'
|
||||
else
|
||||
unsetenv PV_PLUGIN_PATH
|
||||
endif
|
||||
|
||||
@ -71,7 +71,7 @@ alias run='cd $FOAM_RUN'
|
||||
# Refresh the environment
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# For backward-compatibility unalias wmRefresh if it is defined as an alias
|
||||
if declare -f wmRefresh > /dev/null
|
||||
if command -V wmRefresh 2> /dev/null | head -1 | grep -q "function"
|
||||
then
|
||||
unset wmRefresh
|
||||
else
|
||||
|
||||
@ -57,6 +57,12 @@ OpenFOAM | ThirdParty)
|
||||
Gcc61)
|
||||
gcc_version=gcc-6.1.0
|
||||
;;
|
||||
Gcc72)
|
||||
gcc_version=gcc-7.2.0
|
||||
;;
|
||||
Gcc73)
|
||||
gcc_version=gcc-7.3.0
|
||||
;;
|
||||
Gcc81)
|
||||
gcc_version=gcc-8.1.0
|
||||
;;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -69,6 +69,8 @@ export ParaView_VERSION=5.4.0
|
||||
#export ParaView_VERSION=5.5.0
|
||||
export ParaView_MAJOR=detect
|
||||
|
||||
#export ParaView_GL=system
|
||||
export ParaView_GL=mesa
|
||||
|
||||
# Evaluate command-line parameters for ParaView
|
||||
_foamParaviewEval()
|
||||
@ -144,6 +146,8 @@ then
|
||||
export PYTHONPATH=$paraviewPython:$ParaView_LIB_DIR
|
||||
fi
|
||||
fi
|
||||
|
||||
[ "$ParaView_GL" = mesa ] && alias paraview="paraview --mesa"
|
||||
else
|
||||
unset PV_PLUGIN_PATH
|
||||
fi
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -37,7 +37,7 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
export SCOTCH_VERSION=scotch_6.0.3
|
||||
export SCOTCH_VERSION=scotch_6.0.6
|
||||
export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -45,7 +45,7 @@ Foam::data::data(const objectRegistry& obr)
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
),
|
||||
prevTimeIndex_(0)
|
||||
prevTimeIndex_(-1)
|
||||
{
|
||||
set("solverPerformance", dictionary());
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -40,10 +40,15 @@ void Foam::data::setSolverPerformance
|
||||
|
||||
List<SolverPerformance<Type>> perfs;
|
||||
|
||||
if (prevTimeIndex_ != this->time().timeIndex())
|
||||
const label timeIndex =
|
||||
this->time().subCycling()
|
||||
? this->time().prevTimeState().timeIndex()
|
||||
: this->time().timeIndex();
|
||||
|
||||
if (prevTimeIndex_ != timeIndex)
|
||||
{
|
||||
// Reset solver performance between iterations
|
||||
prevTimeIndex_ = this->time().timeIndex();
|
||||
prevTimeIndex_ = timeIndex;
|
||||
dict.clear();
|
||||
}
|
||||
else
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2012-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2012-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -29,6 +29,7 @@ License
|
||||
#include "stringIOList.H"
|
||||
#include "cellModeller.H"
|
||||
#include "vectorIOField.H"
|
||||
#include "stringOps.H"
|
||||
|
||||
/* * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * * */
|
||||
|
||||
@ -907,6 +908,19 @@ void Foam::vtkUnstructuredReader::read(ISstream& inFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tag == "METADATA")
|
||||
{
|
||||
// Read rest of the line
|
||||
string line;
|
||||
inFile.getLine(line);
|
||||
|
||||
// Skip until an empty line is found
|
||||
inFile.getLine(line);
|
||||
while (!stringOps::trim(line).empty())
|
||||
{
|
||||
inFile.getLine(line);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalIOErrorInFunction(inFile)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -60,7 +60,6 @@ public:
|
||||
wordRe name;
|
||||
scalar absTol;
|
||||
scalar relTol;
|
||||
label solveIndex;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -96,7 +96,6 @@ bool Foam::singleRegionCorrectorConvergenceControl::readCorrResidualControls()
|
||||
rd.name = fName.c_str();
|
||||
rd.absTol = readScalar(fieldDict.lookup("tolerance"));
|
||||
rd.relTol = readScalar(fieldDict.lookup("relTol"));
|
||||
rd.solveIndex = 0;
|
||||
data.append(rd);
|
||||
}
|
||||
else
|
||||
@ -177,11 +176,11 @@ corrCriteriaSatisfied() const
|
||||
const dictionary& solverDict = mesh_.solverPerformanceDict();
|
||||
forAllConstIter(dictionary, solverDict, iter)
|
||||
{
|
||||
const word& variableName = iter().keyword();
|
||||
const word& fieldName = iter().keyword();
|
||||
const label fieldi =
|
||||
convergenceControl::residualControlIndex
|
||||
(
|
||||
variableName,
|
||||
fieldName,
|
||||
corrResidualControl_
|
||||
);
|
||||
if (fieldi != -1)
|
||||
@ -190,8 +189,8 @@ corrCriteriaSatisfied() const
|
||||
convergenceControl::getInitialResiduals
|
||||
(
|
||||
mesh_,
|
||||
variableName,
|
||||
corrResidualControl_[fieldi].solveIndex,
|
||||
fieldName,
|
||||
solveIndex_.found(fieldName) ? solveIndex_[fieldName] : 0,
|
||||
iter().stream(),
|
||||
firstResidual,
|
||||
residual
|
||||
@ -209,7 +208,7 @@ corrCriteriaSatisfied() const
|
||||
|
||||
if (control_.debug)
|
||||
{
|
||||
Info<< control_.algorithmSpace() << " " << variableName
|
||||
Info<< control_.algorithmSpace() << " " << fieldName
|
||||
<< ": tolerance " << residual << " ("
|
||||
<< corrResidualControl_[fieldi].absTol << ")"
|
||||
<< ", relTol " << relativeResidual << " ("
|
||||
@ -225,10 +224,7 @@ corrCriteriaSatisfied() const
|
||||
|
||||
void Foam::singleRegionCorrectorConvergenceControl::resetCorrSolveIndex()
|
||||
{
|
||||
forAll(corrResidualControl_, i)
|
||||
{
|
||||
corrResidualControl_[i].solveIndex = 0;
|
||||
}
|
||||
solveIndex_.clear();
|
||||
}
|
||||
|
||||
|
||||
@ -237,23 +233,14 @@ void Foam::singleRegionCorrectorConvergenceControl::updateCorrSolveIndex()
|
||||
const dictionary& solverDict = mesh_.solverPerformanceDict();
|
||||
forAllConstIter(dictionary, solverDict, iter)
|
||||
{
|
||||
const word& variableName = iter().keyword();
|
||||
const label fieldi =
|
||||
convergenceControl::residualControlIndex
|
||||
(
|
||||
variableName,
|
||||
corrResidualControl_
|
||||
);
|
||||
if (fieldi != -1)
|
||||
{
|
||||
getNSolves
|
||||
(
|
||||
mesh_,
|
||||
variableName,
|
||||
iter().stream(),
|
||||
corrResidualControl_[fieldi].solveIndex
|
||||
);
|
||||
}
|
||||
const word& fieldName = iter().keyword();
|
||||
getNSolves
|
||||
(
|
||||
mesh_,
|
||||
fieldName,
|
||||
iter().stream(),
|
||||
solveIndex_(fieldName)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -62,6 +62,11 @@ protected:
|
||||
//- List of residual data per field
|
||||
List<corrResidualData> corrResidualControl_;
|
||||
|
||||
//- The index of the solution at the start of the corrector loop, for
|
||||
// each field. If the field name is not in the table then the index is
|
||||
// assumed to be zero; i.e, the first solution.
|
||||
HashTable<label> solveIndex_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -131,13 +131,39 @@ void Foam::freestreamPressureFvPatchScalarField::updateCoeffs()
|
||||
UName_
|
||||
);
|
||||
|
||||
const Field<scalar> magUp(mag(Up));
|
||||
|
||||
const Field<vector>& nf = patch().nf();
|
||||
|
||||
Field<scalar>& vf = valueFraction();
|
||||
|
||||
if (supersonic_)
|
||||
{
|
||||
valueFraction() = 0.5 - 0.5*(Up & patch().nf())/mag(Up);
|
||||
forAll(vf, i)
|
||||
{
|
||||
if (magUp[i] > vSmall)
|
||||
{
|
||||
vf[i] = 0.5 - 0.5*(Up[i] & nf[i])/magUp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
vf[i] = 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
valueFraction() = 0.5 + 0.5*(Up & patch().nf())/mag(Up);
|
||||
forAll(vf, i)
|
||||
{
|
||||
if (magUp[i] > vSmall)
|
||||
{
|
||||
vf[i] = 0.5 + 0.5*(Up[i] & nf[i])/magUp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
vf[i] = 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mixedFvPatchField<scalar>::updateCoeffs();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -107,8 +107,23 @@ void Foam::freestreamVelocityFvPatchVectorField::updateCoeffs()
|
||||
}
|
||||
|
||||
const Field<vector>& Up = *this;
|
||||
const Field<scalar> magUp(mag(Up));
|
||||
|
||||
valueFraction() = 0.5 - 0.5*(Up & patch().nf())/mag(Up);
|
||||
const Field<vector>& nf = patch().nf();
|
||||
|
||||
Field<scalar>& vf = valueFraction();
|
||||
|
||||
forAll(vf, i)
|
||||
{
|
||||
if (magUp[i] > vSmall)
|
||||
{
|
||||
vf[i] = 0.5 - 0.5*(Up[i] & nf[i])/magUp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
vf[i] = 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
mixedFvPatchField<vector>::updateCoeffs();
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -65,7 +65,7 @@ swirlFlowRateInletVelocityFvPatchVectorField
|
||||
dict.lookupOrDefault
|
||||
(
|
||||
"origin",
|
||||
patch().size()
|
||||
returnReduce(patch().size(), sumOp<label>())
|
||||
? gSum(patch().Cf()*patch().magSf())/gSum(patch().magSf())
|
||||
: Zero
|
||||
)
|
||||
@ -75,7 +75,7 @@ swirlFlowRateInletVelocityFvPatchVectorField
|
||||
dict.lookupOrDefault
|
||||
(
|
||||
"axis",
|
||||
patch().size()
|
||||
returnReduce(patch().size(), sumOp<label>())
|
||||
? -gSum(patch().Sf())/gSum(patch().magSf())
|
||||
: Zero
|
||||
)
|
||||
|
||||
@ -60,7 +60,7 @@ Foam::functionObjects::fieldAverageItem::fieldAverageItem()
|
||||
meanFieldName_("unknown"),
|
||||
prime2Mean_(0),
|
||||
prime2MeanFieldName_("unknown"),
|
||||
base_(ITER),
|
||||
base_(baseType::iter),
|
||||
window_(-1.0),
|
||||
windowName_("")
|
||||
{}
|
||||
|
||||
@ -89,10 +89,10 @@ public:
|
||||
static const word EXT_PRIME2MEAN;
|
||||
|
||||
//- Enumeration defining the averaging base type
|
||||
enum baseType
|
||||
enum class baseType
|
||||
{
|
||||
ITER,
|
||||
TIME
|
||||
iter,
|
||||
time
|
||||
};
|
||||
|
||||
|
||||
@ -198,16 +198,16 @@ public:
|
||||
return baseTypeNames_[base_];
|
||||
}
|
||||
|
||||
//- Return true if base is ITER
|
||||
//- Return true if base is iter
|
||||
Switch iterBase() const
|
||||
{
|
||||
return base_ == ITER;
|
||||
return base_ == baseType::iter;
|
||||
}
|
||||
|
||||
//- Return true if base is time
|
||||
Switch timeBase() const
|
||||
{
|
||||
return base_ == TIME;
|
||||
return base_ == baseType::time;
|
||||
}
|
||||
|
||||
scalar window() const
|
||||
|
||||
@ -36,7 +36,7 @@ Foam::functionObjects::fieldAverageItem::fieldAverageItem(Istream& is)
|
||||
meanFieldName_("unknown"),
|
||||
prime2Mean_(0),
|
||||
prime2MeanFieldName_("unknown"),
|
||||
base_(ITER),
|
||||
base_(baseType::iter),
|
||||
window_(-1.0)
|
||||
{
|
||||
is.check
|
||||
@ -116,21 +116,25 @@ Foam::Ostream& Foam::functionObjects::operator<<
|
||||
);
|
||||
|
||||
os << faItem.fieldName_ << nl << token::BEGIN_BLOCK << nl;
|
||||
os.writeKeyword("mean") << faItem.mean_ << token::END_STATEMENT << nl;
|
||||
os.writeKeyword("prime2Mean") << faItem.mean_
|
||||
<< token::END_STATEMENT << nl;
|
||||
os.writeKeyword("base") << faItem.baseTypeNames_[faItem.base_]
|
||||
<< token::END_STATEMENT << nl;
|
||||
|
||||
os.writeKeyword("mean")
|
||||
<< faItem.mean_ << token::END_STATEMENT << nl;
|
||||
|
||||
os.writeKeyword("prime2Mean")
|
||||
<< faItem.prime2Mean_ << token::END_STATEMENT << nl;
|
||||
|
||||
os.writeKeyword("base")
|
||||
<< faItem.baseTypeNames_[faItem.base_] << token::END_STATEMENT << nl;
|
||||
|
||||
if (faItem.window_ > 0)
|
||||
{
|
||||
os.writeKeyword("window") << faItem.window_
|
||||
<< token::END_STATEMENT << nl;
|
||||
os.writeKeyword("window")
|
||||
<< faItem.window_ << token::END_STATEMENT << nl;
|
||||
|
||||
if (faItem.windowName_ != "")
|
||||
{
|
||||
os.writeKeyword("windowName") << faItem.windowName_
|
||||
<< token::END_STATEMENT << nl;
|
||||
os.writeKeyword("windowName")
|
||||
<< faItem.windowName_ << token::END_STATEMENT << nl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -564,6 +564,16 @@ public:
|
||||
trackingData& td
|
||||
);
|
||||
|
||||
//- As above, but does not change the master patch. Needed in order for
|
||||
// ACMI to be able to delegate a hit to the non-overlap patch.
|
||||
template<class TrackCloudType>
|
||||
void hitFaceNoChangeToMasterPatch
|
||||
(
|
||||
const vector& displacement,
|
||||
TrackCloudType& cloud,
|
||||
trackingData& td
|
||||
);
|
||||
|
||||
//- Convenience function. Cobines trackToFace and hitFace
|
||||
template<class TrackCloudType>
|
||||
void trackToAndHitFace
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -108,6 +108,33 @@ void Foam::particle::hitFace
|
||||
trackingData& td
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info << "Particle " << origId() << nl << FUNCTION_NAME << nl << endl;
|
||||
}
|
||||
|
||||
if (onBoundaryFace())
|
||||
{
|
||||
changeToMasterPatch();
|
||||
}
|
||||
|
||||
hitFaceNoChangeToMasterPatch(direction, cloud, td);
|
||||
}
|
||||
|
||||
|
||||
template<class TrackCloudType>
|
||||
void Foam::particle::hitFaceNoChangeToMasterPatch
|
||||
(
|
||||
const vector& direction,
|
||||
TrackCloudType& cloud,
|
||||
trackingData& td
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info << "Particle " << origId() << nl << FUNCTION_NAME << nl << endl;
|
||||
}
|
||||
|
||||
typename TrackCloudType::particleType& p =
|
||||
static_cast<typename TrackCloudType::particleType&>(*this);
|
||||
typename TrackCloudType::particleType::trackingData& ttd =
|
||||
@ -123,8 +150,6 @@ void Foam::particle::hitFace
|
||||
}
|
||||
else if (onBoundaryFace())
|
||||
{
|
||||
changeToMasterPatch();
|
||||
|
||||
if (!p.hitPatch(cloud, ttd))
|
||||
{
|
||||
const polyPatch& patch = mesh_.boundaryMesh()[p.patch()];
|
||||
@ -392,7 +417,7 @@ void Foam::particle::hitCyclicACMIPatch
|
||||
// Move to the face associated with the non-overlap patch and redo the
|
||||
// face interaction.
|
||||
tetFacei_ = facei_ = cpp.nonOverlapPatch().start() + localFacei;
|
||||
hitFace(direction, cloud, td);
|
||||
hitFaceNoChangeToMasterPatch(direction, cloud, td);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,9 +56,7 @@ void Foam::blockMesh::calcMergeInfo()
|
||||
}
|
||||
|
||||
// set unused to -1
|
||||
mergeList_.setSize(nPoints_);
|
||||
mergeList_ = -1;
|
||||
|
||||
mergeList_.setSize(nPoints_, -1);
|
||||
|
||||
const pointField& blockPoints = topology().points();
|
||||
const cellList& blockCells = topology().cells();
|
||||
@ -113,8 +111,11 @@ void Foam::blockMesh::calcMergeInfo()
|
||||
// Collated points detected by initially taking a constant factor of
|
||||
// the size of the block.
|
||||
|
||||
boundBox bb(blockCells[blockPlabel].points(blockFaces, blockPoints));
|
||||
const scalar mergeSqrDist = magSqr(10*small*bb.span());
|
||||
const boundBox bb
|
||||
(
|
||||
blockCells[blockPlabel].points(blockFaces, blockPoints)
|
||||
);
|
||||
const scalar mergeSqrDist = magSqr(50*small*bb.span());
|
||||
|
||||
// This is an N^2 algorithm
|
||||
|
||||
@ -548,35 +549,29 @@ void Foam::blockMesh::calcMergeInfo()
|
||||
}
|
||||
|
||||
|
||||
// Sort merge list to return new point label (in new shorter list)
|
||||
// given old point label
|
||||
label newPointLabel = 0;
|
||||
// Sort merge list and count number of unique points
|
||||
label nUniqPoints = 0;
|
||||
|
||||
forAll(mergeList_, pointLabel)
|
||||
forAll(mergeList_, pointi)
|
||||
{
|
||||
if (mergeList_[pointLabel] > pointLabel)
|
||||
if (mergeList_[pointi] > pointi)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Merge list contains point index out of range"
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
if
|
||||
(
|
||||
mergeList_[pointLabel] == -1
|
||||
|| mergeList_[pointLabel] == pointLabel
|
||||
)
|
||||
if (mergeList_[pointi] == -1 || mergeList_[pointi] == pointi)
|
||||
{
|
||||
mergeList_[pointLabel] = newPointLabel;
|
||||
newPointLabel++;
|
||||
mergeList_[pointi] = nUniqPoints++;
|
||||
}
|
||||
else
|
||||
{
|
||||
mergeList_[pointLabel] = mergeList_[mergeList_[pointLabel]];
|
||||
mergeList_[pointi] = mergeList_[mergeList_[pointi]];
|
||||
}
|
||||
}
|
||||
|
||||
nPoints_ = newPointLabel;
|
||||
nPoints_ = nUniqPoints;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,6 +56,7 @@ SourceFiles
|
||||
#include "globalMeshData.H"
|
||||
#include "globalIndex.H"
|
||||
#include "uint.H"
|
||||
#include "PstreamGlobals.H"
|
||||
|
||||
#include "zoltan.h"
|
||||
#include <mpi.h>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -83,7 +83,7 @@ Foam::N2::N2()
|
||||
2873563218390.8,
|
||||
-165274505604341.0
|
||||
),
|
||||
mu_(32.165, 496.9, 3.9069, -1.08e-21, 10.0),
|
||||
mu_(-32.165, 496.9, 3.9069, -1.08e-21, 10.0),
|
||||
mug_(7.632e-07, 0.58823, 67.75, 0.0),
|
||||
kappa_(0.7259, -0.016728, 0.00016215, -5.7605e-07, 0.0, 0.0),
|
||||
kappag_(0.000351, 0.7652, 25.767, 0.0),
|
||||
|
||||
@ -10,10 +10,18 @@ Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
nLines 24;
|
||||
start (0 0.5 0);
|
||||
end (9 0.5 0);
|
||||
fields (U);
|
||||
direction both;
|
||||
|
||||
seedSampleSet
|
||||
{
|
||||
type lineUniform;
|
||||
start (0 0.5 0);
|
||||
end (9 0.5 0);
|
||||
nPoints 24;
|
||||
axis x;
|
||||
}
|
||||
|
||||
fields (U);
|
||||
|
||||
#includeEtc "caseDicts/postProcessing/visualization/streamlines.cfg"
|
||||
|
||||
|
||||
@ -10,12 +10,19 @@ Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
nLines 10;
|
||||
start (-0.0205 0.001 0.00001);
|
||||
end (-0.0205 0.0251 0.00001);
|
||||
fields (p k U);
|
||||
direction both;
|
||||
|
||||
seedSampleSet
|
||||
{
|
||||
type lineUniform;
|
||||
start (-0.0205 0.001 0.00001);
|
||||
end (-0.0205 0.0251 0.00001);
|
||||
nPoints 10;
|
||||
axis x;
|
||||
}
|
||||
|
||||
fields (p k U);
|
||||
|
||||
// Must be last entry
|
||||
#includeEtc "caseDicts/postProcessing/visualization/streamlines.cfg"
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -33,7 +33,8 @@ EulerImplicitCoeffs
|
||||
odeCoeffs
|
||||
{
|
||||
solver seulex;
|
||||
eps 0.05;
|
||||
absTol 1e-8;
|
||||
relTol 1e-1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -17,6 +17,8 @@ reactions
|
||||
A 7e+06;
|
||||
beta 0;
|
||||
Ta 10063.8;
|
||||
Thigh 2500;
|
||||
Tlow 300;
|
||||
}
|
||||
hydrogenReaction
|
||||
{
|
||||
@ -25,6 +27,7 @@ reactions
|
||||
A 4.74342e+12;
|
||||
beta 0;
|
||||
Ta 10063.8;
|
||||
Thigh 2500;
|
||||
Tlow 300;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
@ -8,9 +8,8 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format binary;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object epsilon;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -8,9 +8,8 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format binary;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object k;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -8,9 +8,8 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format binary;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object nut;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -8,9 +8,8 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format binary;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object p_rgh;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -1,40 +0,0 @@
|
||||
|
||||
36
|
||||
(
|
||||
1069
|
||||
1071
|
||||
1074
|
||||
1253
|
||||
1256
|
||||
1259
|
||||
1262
|
||||
1264
|
||||
1266
|
||||
1269
|
||||
1271
|
||||
1273
|
||||
1276
|
||||
1463
|
||||
1466
|
||||
1468
|
||||
1471
|
||||
1474
|
||||
1477
|
||||
1480
|
||||
1482
|
||||
1485
|
||||
1487
|
||||
1490
|
||||
1492
|
||||
1494
|
||||
1497
|
||||
1500
|
||||
1503
|
||||
1506
|
||||
1508
|
||||
1512
|
||||
1514
|
||||
1517
|
||||
1519
|
||||
1522
|
||||
)
|
||||
@ -25,7 +25,7 @@ stopAt endTime;
|
||||
|
||||
endTime 5.0;
|
||||
|
||||
deltaT 1e-4;
|
||||
deltaT 0.001;
|
||||
|
||||
writeControl adjustableRunTime;
|
||||
|
||||
|
||||
@ -191,6 +191,30 @@ castellatedMeshControls
|
||||
|
||||
features
|
||||
(
|
||||
{
|
||||
file "shaftRotating.eMesh";
|
||||
levels ((1 1));
|
||||
}
|
||||
{
|
||||
file "shaft.eMesh";
|
||||
levels ((1 1));
|
||||
}
|
||||
{
|
||||
file "sparger.eMesh";
|
||||
levels ((1 1));
|
||||
}
|
||||
{
|
||||
file "stirrer.eMesh";
|
||||
levels ((1 1));
|
||||
}
|
||||
{
|
||||
file "baffles.eMesh";
|
||||
levels ((1 1));
|
||||
}
|
||||
{
|
||||
file "rotating.eMesh";
|
||||
levels ((1 1));
|
||||
}
|
||||
{
|
||||
file "gasInlet.eMesh";
|
||||
levels ((1 1));
|
||||
@ -520,7 +544,7 @@ meshQualityControls
|
||||
// <0 = inside out tet,
|
||||
// 0 = flat tet
|
||||
// 1 = regular tet
|
||||
minTetQuality 1e-9;
|
||||
minTetQuality -1e-30;
|
||||
|
||||
// Minimum face area. Set to <0 to disable.
|
||||
minArea -1;
|
||||
|
||||
@ -20,6 +20,11 @@ surfaces
|
||||
"gasInlet.stl"
|
||||
"stirrer.stl"
|
||||
"outlet.stl"
|
||||
"shaft.stl"
|
||||
"shaftRotating.stl"
|
||||
"rotating.stl"
|
||||
"baffles.stl"
|
||||
"sparger.stl"
|
||||
);
|
||||
|
||||
// Identify a feature when angle between faces < includedAngle
|
||||
|
||||
Reference in New Issue
Block a user