Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
39d9bebe
Commit
39d9bebe
authored
Jun 16, 2008
by
henry
Browse files
Updated with new run, test and clean scripts
parent
c52b20b1
Changes
976
Expand all
Hide whitespace changes
Inline
Side-by-side
tutorials/Allclean
0 → 100755
View file @
39d9bebe
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2007 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 2 of the License, or (at your
# option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# Allclean
#
# Description
#
#------------------------------------------------------------------------------
echo
"Cleaning backup files"
find
.
-type
f
\(
-name
"*~"
-o
-name
"*.bak"
\)
-exec
rm
{}
\;
find
.
\(
-name
'core'
-o
-name
'core.[1-9]*'
\)
-exec
rm
{}
\;
find
.
\(
-name
'*.pvs'
-o
-name
'*.foam'
\)
-exec
rm
{}
\;
rm
logs
>
/dev/null 2>&1
rm
testLoopReport
>
/dev/null 2>&1
echo
""
foamCleanTutorials cases
# ----------------------------------------------------------------- end-of-file
tutorials/Allrun
0 → 100755
View file @
39d9bebe
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2007 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 2 of the License, or (at your
# option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# Allrun
#
# Description
#
#------------------------------------------------------------------------------
# Source tutorial run functions
.
$WM_PROJECT_DIR
/bin/tools/RunFunctions
# logReport <logfile>
# Extracts useful info from log file.
logReport
()
{
case
=
`
dirname
$1
|
sed
s/
"
\(
.*
\)\.\/
"
/
""
/g
`
app
=
`
echo
$1
|
sed
s/
"
\(
.*
\)\.
"
/
""
/g
`
appAndCase
=
"Application
$app
- case
$case
"
fatalError
=
`
grep
"FOAM FATAL"
$1
`
UxSS
=
`
grep
-E
"Ux[:| ]*solution singularity"
$1
`
UySS
=
`
grep
-E
"Uy[:| ]*solution singularity"
$1
`
UzSS
=
`
grep
-E
"Uz[:| ]*solution singularity"
$1
`
completed
=
`
grep
-E
"^[
\t
]*[eE]nd"
$1
`
if
[
"
$fatalError
"
]
;
then
echo
"
$appAndCase
: ** FOAM FATAL ERROR **"
return
elif
[
"
$UxSS
"
-a
"
$UySS
"
-a
"
$UzSS
"
]
;
then
echo
"
$appAndCase
: ** Solution singularity **"
return
elif
[
"
$completed
"
]
;
then
completionTime
=
`
tail
-10
$log
|
grep
Execution |
cut
-d
=
-f2
|
sed
's/^[ \t]*//'
`
if
[
"
$completionTime
"
]
;
then
completionTime
=
"in
$completionTime
"
fi
echo
"
$appAndCase
: completed
$completionTime
"
return
else
echo
"
$appAndCase
: unconfirmed completion"
fi
}
# Recursively run all tutorials
foamRunTutorials cases
# Analyse all log files
rm
testLoopReport
>
/dev/null 2>&1 &
touch
testLoopReport
for
application
in
*
do
if
[
-d
$application
]
then
cd
$application
for
log
in
`
find
.
-name
"log.*"
| xargs
ls
-rt
`
do
logReport
$log
>>
../testLoopReport
done
echo
""
>>
../testLoopReport
cd
..
fi
done
find
.
-name
"log.*"
-exec
cat
{}
\;
>>
logs
# ----------------------------------------------------------------- end-of-file
tutorials/Alltest
0 → 100755
View file @
39d9bebe
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2007 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 2 of the License, or (at your
# option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# Alltest
#
# Description
#
#------------------------------------------------------------------------------
# FUNCTIONS
#
printUsage
()
{
cat
<<
EOF
Usage:
$0
Quickly tests the tutorials and writes out the scheme/solver information
Options are:
-d sets up a default scheme on all schemes
-h help
EOF
}
setDefaultFvSchemes
()
{
cat
<<
EOF
gradSchemes { default Gauss linear; }
divSchemes
{
default Gauss linear;
div(phi,fu_ft_h) Gauss multivariateSelection
{
fu upwind;
ft upwind;
h upwind;
};
div(phi,ft_b_h_hu) Gauss multivariateSelection
{
fu upwind;
ft upwind;
b upwind;
h upwind;
hu upwind;
};
}
laplacianSchemes { default Gauss linear corrected; }
interpolationSchemes { default linear; }
snGradSchemes { default corrected; }
fluxRequired { default yes; }
EOF
}
#
# VARIABLE
#
MAIN_CONTROL_DICT
=
for
i
in
\
$HOME
/.
$WM_PROJECT
-
$WM_PROJECT_VERSION
\
$HOME
/.
$WM_PROJECT
/
$WM_PROJECT_VERSION
\
$HOME
/.
$WM_PROJECT
\
$WM_PROJECT_DIR
/etc
\
;
do
if
[
-f
"
$i
/controlDict"
]
;
then
MAIN_CONTROL_DICT
=
"
$i
/controlDict"
break
fi
done
TUTORIALS_DIR
=
.
TEST_RUN_DIR
=
../tutorialsTest
FV_SCHEMES
=
\
"
\
gradScheme
\
divScheme
\
laplacianScheme
\
interpolationScheme
\
snGradScheme
\
fluxRequired
\
"
SCHEMES_FILE
=
"FvSchemes"
SCHEMES_TEMP
=
"FvSchemes.temp"
SOLVERS_FILE
=
"FvSolution"
SOLVERS_TEMP
=
"FvSolution.temp"
DEFAULT_SCHEMES
=
0
#
# OPTIONS
#
OPTS
=
`
getopt hd
$*
`
if
[
$?
-ne
0
]
;
then
echo
"Aborting due to invalid option"
printUsage
exit
1
fi
eval set
--
"
$OPTS
"
while
[
$1
!=
--
]
;
do
case
$1
in
-d
)
DEFAULT_SCHEMES
=
1
;;
-h
)
printUsage
;
exit
1
;;
esac
shift
done
shift
#
# MAIN
#
if
[
-d
"
$TEST_RUN_DIR
"
]
;
then
rm
-rf
$TEST_RUN_DIR
fi
echo
"Modifying
${
MAIN_CONTROL_DICT
}
"
if
[
-e
${
MAIN_CONTROL_DICT
}
.org
]
then
echo
"File "
${
MAIN_CONTROL_DICT
}
.org
" already exists"
echo
"Did Alltest fail in some way and then run again?"
exit
1
fi
# Clean up on termination and on Ctrl-C
trap
'mv ${MAIN_CONTROL_DICT}.org ${MAIN_CONTROL_DICT} 2>/dev/null; exit 0'
\
EXIT TERM INT
cp
${
MAIN_CONTROL_DICT
}
${
MAIN_CONTROL_DICT
}
.org
sed
\
-e
s/
"
\(
fvSchemes[
\t
]*
\)\(
[0-9]
\)
;"
/
"
\1
1;"
/g
\
-e
s/
"
\(
fvSolution[
\t
]*
\)\(
[0-9]
\)
;"
/
"
\1
1;"
/g
\
${
MAIN_CONTROL_DICT
}
.org
>
${
MAIN_CONTROL_DICT
}
echo
"Copying the tutorials"
cp
-a
${
TUTORIALS_DIR
}
${
TEST_RUN_DIR
}
echo
"Modifying the controlDicts to run only one time step"
cd
${
TEST_RUN_DIR
}
for
CD
in
`
find
.
-name
"controlDict*"
`
do
mv
${
CD
}
${
CD
}
.org
sed
\
-e
s/
"
\(
startFrom[
\t
]*
\)\(
[a-zA-Z]*
\)
;"
/
"
\1
latestTime;"
/g
\
-e
s/
"
\(
stopAt[
\t
]*
\)\(
[a-zA-Z]*
\)
;"
/
"
\1
nextWrite;"
/g
\
-e
s/
"
\(
writeControl[
\t
]*
\)\(
[a-zA-Z]*
\)
;"
/
"
\1
timeStep;"
/g
\
-e
s/
"
\(
writeInterval[
\t
]*
\)\(
[0-9a-zA-Z.-]*
\)
;"
/
"
\1
1;"
/g
\
${
CD
}
.org
>
${
CD
}
done
if
[
$DEFAULT_SCHEMES
=
1
]
;
then
echo
"Modifying the fvSchemes to contain only default schemes"
for
FV_SC
in
`
find
.
-name
fvSchemes
`
do
for
S
in
$FV_SCHEMES
do
mv
${
FV_SC
}
${
FV_SC
}
.org
sed
-e
/
"
${
S
}
"
/,/
$p
/d
${
FV_SC
}
.org
>
${
FV_SC
}
done
setDefaultFvSchemes
>>
${
FV_SC
}
done
fi
./Allrun
sed
-e
:a
-e
'/\\$/N; s/\\\n//; ta'
Allrun
>
temp
APPLICATIONS
=
\
`
grep
"applications="
temp |
sed
's/applications=\"\([A-Za-z \t]*\)\"/\1/g'
`
rm
$SCHEMES_FILE
>
/dev/null 2>&1
for
APP
in
$APPLICATIONS
do
echo
$APP
>>
$SCHEMES_FILE
echo
"
$APP
: "
|
tr
-d
"
\n
"
>>
$SOLVERS_FILE
for
ST
in
$FV_SCHEMES
do
rm
$SCHEMES_TEMP
>
/dev/null 2>&1
rm
$SOLVERS_TEMP
>
/dev/null 2>&1
echo
"
${
ST
}
"
>>
$SCHEMES_FILE
for
LOG
in
`
find
${
APP
}
-name
"log.
${
APP
}
"
`
do
for
S
in
`
grep
${
ST
}
${
LOG
}
|
cut
-d
" "
-f4
`
do
echo
"
${
S
}
"
>>
$SCHEMES_TEMP
done
echo
`
grep
solver
${
LOG
}
|
cut
-d
" "
-f4
`
>>
$SOLVERS_TEMP
done
if
[
-f
$SCHEMES_TEMP
]
;
then
cat
$SCHEMES_TEMP
|
sort
-u
>>
$SCHEMES_FILE
fi
done
cat
$SOLVERS_TEMP
|
tr
" "
"
\n
"
|
sort
-u
|
tr
"
\n
"
" "
>>
$SOLVERS_FILE
echo
""
>>
$SOLVERS_FILE
done
# ----------------------------------------------------------------- end-of-file
tutorials/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C
0 → 100644
View file @
39d9bebe
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2007 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 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application
MRFSimpleFoam
Description
Steady-state solver for incompressible, turbulent flow of non-Newtonian
fluids with MRF regions.
\*---------------------------------------------------------------------------*/
#include
"fvCFD.H"
#include
"incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
#include
"incompressible/turbulenceModel/turbulenceModel.H"
#include
"MRFZones.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
# include "setRootCase.H"
# include "createTime.H"
# include "createMesh.H"
# include "createFields.H"
# include "initContinuityErrs.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info
<<
"
\n
Starting time loop
\n
"
<<
endl
;
for
(
runTime
++
;
!
runTime
.
end
();
runTime
++
)
{
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
# include "readSIMPLEControls.H"
p
.
storePrevIter
();
// Pressure-velocity SIMPLE corrector
{
// Momentum predictor
tmp
<
fvVectorMatrix
>
UEqn
(
fvm
::
div
(
phi
,
U
)
+
turbulence
->
divDevReff
(
U
)
);
mrfZones
.
addCoriolis
(
UEqn
());
UEqn
().
relax
();
solve
(
UEqn
()
==
-
fvc
::
grad
(
p
));
p
.
boundaryField
().
updateCoeffs
();
volScalarField
rAU
=
1
.
0
/
UEqn
().
A
();
U
=
rAU
*
UEqn
().
H
();
UEqn
.
clear
();
phi
=
fvc
::
interpolate
(
U
,
"interpolate(HbyA)"
)
&
mesh
.
Sf
();
mrfZones
.
relativeFlux
(
phi
);
adjustPhi
(
phi
,
U
,
p
);
// Non-orthogonal pressure corrector loop
for
(
int
nonOrth
=
0
;
nonOrth
<=
nNonOrthCorr
;
nonOrth
++
)
{
fvScalarMatrix
pEqn
(
fvm
::
laplacian
(
rAU
,
p
)
==
fvc
::
div
(
phi
)
);
pEqn
.
setReference
(
pRefCell
,
pRefValue
);
pEqn
.
solve
();
if
(
nonOrth
==
nNonOrthCorr
)
{
phi
-=
pEqn
.
flux
();
}
}
# include "continuityErrs.H"
// Explicitly relax pressure for momentum corrector
p
.
relax
();
// Momentum corrector
U
-=
rAU
*
fvc
::
grad
(
p
);
U
.
correctBoundaryConditions
();
}
turbulence
->
correct
();
runTime
.
write
();
Info
<<
"ExecutionTime = "
<<
runTime
.
elapsedCpuTime
()
<<
" s"
<<
" ClockTime = "
<<
runTime
.
elapsedClockTime
()
<<
" s"
<<
nl
<<
endl
;
}
Info
<<
"End
\n
"
<<
endl
;
return
(
0
);
}
// ************************************************************************* //
tutorials/MRFSimpleFoam/MRFSimpleFoam/Make/files
0 → 100644
View file @
39d9bebe
MRFSimpleFoam.C
EXE = $(FOAM_USER_APPBIN)/MRFSimpleFoam
tutorials/MRFSimpleFoam/MRFSimpleFoam/Make/options
0 → 100644
View file @
39d9bebe
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/transportModels
EXE_LIBS = \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
-lfiniteVolume
tutorials/MRFSimpleFoam/MRFSimpleFoam/createFields.H
0 → 100644
View file @
39d9bebe
Info
<<
"Reading field p
\n
"
<<
endl
;
volScalarField
p
(
IOobject
(
"p"
,
runTime
.
timeName
(),
mesh
,
IOobject
::
MUST_READ
,
IOobject
::
AUTO_WRITE
),
mesh
);
Info
<<
"Reading field U
\n
"
<<
endl
;
volVectorField
U
(
IOobject
(
"U"
,
runTime
.
timeName
(),
mesh
,
IOobject
::
MUST_READ
,
IOobject
::
AUTO_WRITE
),
mesh
);
# include "createPhi.H"
label
pRefCell
=
0
;
scalar
pRefValue
=
0
.
0
;
setRefCell
(
p
,
mesh
.
solutionDict
().
subDict
(
"SIMPLE"
),
pRefCell
,
pRefValue
);
singlePhaseTransportModel
laminarTransport
(
U
,
phi
);
autoPtr
<
turbulenceModel
>
turbulence
(
turbulenceModel
::
New
(
U
,
phi
,
laminarTransport
)
);
MRFZones
mrfZones
(
mesh
);
mrfZones
.
correctBoundaryVelocity
(
U
);
tutorials/MRFSimpleFoam/mixerVessel2D/0/U
0 → 100644
View file @
39d9bebe
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
rotor
{
type fixedValue;
value uniform (0 0 0);
}
stator
{
type fixedValue;
value uniform (0 0 0);
}
front
{
type empty;
}
back
{
type empty;
}
}
// ************************************************************************* //
tutorials/MRFSimpleFoam/mixerVessel2D/0/epsilon
0 → 100644
View file @
39d9bebe
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class volScalarField;
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //