TUT: verificationAndValidation for weightedFlux scheme (#1388)

This commit is contained in:
Norbert Weber
2019-10-10 12:59:39 +02:00
committed by Mark Olesen
parent d04de0d481
commit 3b6ba059c3
12 changed files with 496 additions and 0 deletions

View File

@ -0,0 +1,30 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object DT;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(top|bottom|sideWalls)"
{
type fixedGradient;
gradient uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 273;
boundaryField
{
top
{
type fixedValue;
value uniform 1;
}
bottom
{
type fixedValue;
value uniform 0;
}
sideWalls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,12 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
rm -f *.png
rm -f system/controlDict system/fvSchemes
#------------------------------------------------------------------------------

View File

@ -0,0 +1,42 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
restore0Dir
cp -f system/controlDict.template system/controlDict
cp -f system/fvSchemes.template system/fvSchemes
runApplication blockMesh
runApplication setFields
# ----
echo "Run base-line (1)"
foamDictionary -entry endTime -set 1 system/controlDict >/dev/null
sed -i '/^ *laplacian/s/Gauss.*;/Gauss linear corrected;/' system/fvSchemes
runApplication -s 1 $(getApplication)
# ----
echo "Run harmonic corrected (2)"
foamDictionary -entry endTime -set 2 system/controlDict >/dev/null
sed -i '/^ *laplacian/s/Gauss.*;/Gauss harmonic corrected;/' system/fvSchemes
runApplication -s 2 $(getApplication)
# ----
echo "Run weightedFlux (3)"
foamDictionary -entry endTime -set 3 system/controlDict >/dev/null
sed -i '/^ *grad/s/Gauss.*;/Gauss weightedFlux "DT";/' system/fvSchemes
runApplication -s 3 $(getApplication)
# ----
runApplication -s singleGraph postProcess -func singleGraph
./plot $@
#------------------------------------------------------------------------------

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DT 0; //Not used
// ************************************************************************* //

View File

@ -0,0 +1,88 @@
#!/bin/bash
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
# Plot temperature, heat flux vs analytical
graphDir="postProcessing/singleGraph"
#------------------------------------------------------------------------------
plotTemperature() {
graphName="Tprofile.png"
echo "Creating temperature profile graph to $graphName"
gnuplot<<GNUPLOT
set terminal pngcairo font "Helvetica,12" size 800,600
set title "Temperature profile" font "Helvetica,12"
set key bottom right
set xlabel "z" font "Helvetica,12"
set ylabel "Temperature" font "Helvetica,16"
set output "$graphName"
set logscale y
set format y "10^{%L}"
set key font ",12"
set lmargin 10
set rmargin 1.5
set bmargin 3.2
s1=1
s2=1e6
fo(x)=s1/(s1+s2)+s2*x/(s1+s2)
fu(x)=s1/(s1+s2)+s1*x/(s1+s2)
plot \
(x<=0)?fu(x):fo(x) w l lc 0 t 'analytical solution', \
"$graphDir/1/line_T.xy" u 1:2 w p pt 2 ps 2 lt rgb "red" t 'linear interpolation', \
"$graphDir/2/line_T.xy" u 1:2 w p pt 6 ps 2 lt rgb "green" t 'harmonic interpolation'
GNUPLOT
}
plotHeatFlux() {
graphName="heatFlux.png"
echo "Creating heat-flux graph to $graphName"
gnuplot<<GNUPLOT
set terminal pngcairo font "Helvetica,12" size 800,600
set title "Heat Flux" font "Helvetica,16"
set key top right
set xlabel "z" font "Helvetica,12"
set output "$graphName"
set logscale y
set format y "10^{%L}"
set key font ",12"
set lmargin 10
set rmargin 1.5
set bmargin 3.2
plot \
"$graphDir/1/line_flux.xy" u 1:4 w p pt 6 ps 2 lt rgb "red" t 'laplacian: linear, grad: linear', \
"$graphDir/2/line_flux.xy" u 1:4 w p pt 2 ps 2 lt rgb "blue" t 'laplacian: harmonic, grad: linear', \
"$graphDir/3/line_flux.xy" u 1:4 w l lt rgb "green" t 'laplacian: harmonic, grad: weightedFlux'
GNUPLOT
}
if notTest $@
then
# Create validation plots
# Require gnuplot
command -v gnuplot >/dev/null || {
echo "gnuplot not found - skipping graph creation" 1>&2
exit 1
}
plotTemperature
plotHeatFlux
fi
# ------------------------------------------------------------------------------

View File

@ -0,0 +1,68 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
a 0.5;
b -0.5;
h1 -1;
h2 1;
vertices
(
($a $a $h1)
($b $a $h1)
($b $b $h1)
($a $b $h1)
($a $a $h2)
($b $a $h2)
($b $b $h2)
($a $b $h2)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 100) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
bottom
{
type wall;
faces
(
(0 1 2 3)
);
}
top
{
type wall;
faces
(
(4 5 6 7)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application laplacianFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.005;
writeControl runTime;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
grad(T) Gauss linear;
}
divSchemes
{
default none;
}
laplacianSchemes
{
laplacian(DT,T) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,35 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
T
{
solver PCG;
preconditioner DIC;
tolerance 1e-15;
relTol 0;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 2;
}
// ************************************************************************* //

View File

@ -0,0 +1,38 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object setFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
defaultFieldValues
(
volScalarFieldValue DT 1
);
regions
(
cylinderToCell
{
p1 (0 0 -5);
p2 (0 0 .000);
radius 1;
fieldValues
(
volScalarFieldValue DT 1e6
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
singleGraph
{
start (0 0 -1);
end (0 0 1);
fields (T flux);
#includeEtc "caseDicts/postProcessing/graphs/sampleDict.cfg"
setConfig
{
axis z;
}
// Must be last entry
#includeEtc "caseDicts/postProcessing/graphs/graph.cfg"
}
// ************************************************************************* //