Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-2.0.0

This commit is contained in:
Henry
2011-06-14 22:13:59 +01:00
13 changed files with 210 additions and 180 deletions

View File

@ -9,18 +9,18 @@
* Overview
OpenFOAM-2.0.0 is the latest major release of OpenFOAM including many new
developments a number of bug-fixes. This release passes our standard tests
and the tutorials have been broadly checked. Please report any bugs by
following the link: http://www.openfoam.com/bugs.
developments and a number of bug-fixes. This release passes our standard
tests and the tutorials have been broadly checked. Please report any bugs
by following the link: http://www.openfoam.com/bugs.
* GNU/Linux version
This release of OpenFOAM is distributed primarily in 2 ways: (1) as a Debian
pack containing binaries and source; (2) from the SourceForge source code
repository (see [[./README.org][README]]).
The Ubuntu/Debian pack is available for 32 and 64 bit versions of the 10.04
LTS operating system using the system compiler and libraries that will be
installed automatically from standard Debian packs.
The Ubuntu/Debian pack is available for 32 and 64 bit versions of the 10.10
and 11.04 LTS operating system using the system compiler and libraries that
will be installed automatically from standard Debian packs.
To use the source version from the SourceForge repository, we provide a source
pack of third-party packages that can be compiled on the user's system. This
@ -47,26 +47,70 @@
mixture
{
nMoles 1;
molWeight 28.9;
Cp 1007;
Hf 0;
As 1.4792e-06;
Ts 116;
equationOfState
{
nMoles 1;
molWeight 28.9;
}
thermodynamics
{
Cp 1007;
Hf 0;
}
transport
{
As 1.4792e-06;
Ts 116;
}
}
#+END_SRC
*** *Updated* particle tracking algorithm
+ uses non-blocking parallel transfers
+ does 'minimum-tet' decomposition of face to work with warped faces
(snappyHexMesh!)
+ reuses tracking state in interpolation - improves consistency and speed
*** Lagrangian intermediate library
+ Extensively updated
+ *Updated* input format
+ Extended to include steady cloud tracking
+ Semi-implicit treatment for particle sources
+ *New* collision modelling
+ *Coupled* to new surface film modelling library
+ Particle forces overhauled
+ *New* Paramagnetic force
+ *New* Brownian-motion force
+ *New* sub-models
+ NonSphereDrag: drag model to account for non-spherical particles
+ ParticleTracks: post-processing model to generate track data, typically
during steady calculations
+ nonSphereDrag: drag model to account for non-spherical particles
+ *Updated* sub-models
+ Injection models: injection for injector nozzles
+ Devolatilisation models: now act on a per-specie basis
+ Cloud function objects
+ facePostProcessing: Particle/mesh face post-processing
+ particleTracks: post-processing model to generate track data, typically
during steady calculations
+ *Coupled* to new surface film modelling library
*** *New* Surface film library
+ Creation of films by particle addition, or initial film distribution
+ Coupled with the lagrangian/intermediate cloud hierarchy library
+ Hierarchical design, consisting of
+ kinematic film: mass, momentum
+ constant thermodynamic properties
+ thermodynamic film: mass, momentum and enthalpy
+ constant, or temperature dependant thermodynamic properties
+ Sub-models:
+ detachment/dripping whereby particles (re)enter the originating cloud
+ particle sizes set according to PDF
+ other properties set to ensure mass, momentum and energy conservation
+ forces
+ many pressure- and stress-based forces including, e.g. contact
angle force for rivulet flow
+ heat transfer to/from walls and film surface
+ film evaporation and boiling
+ Additional wall functions for primary region momentum and temperature
taking film into account
+ Coupling to *New* pyrolysis library
+ Parallel aware
*** *New* Pyrolysis library
+ ...
*** DSMC
*** Dynamic Mesh
@ -88,23 +132,6 @@
+ temperature dependent properties
+ temperature and direction (in local coordinate system) dependent
properties
*** *New* Surface film library
+ Creation of films by particle addition, or initial film distribution
+ Coupled with the lagrangian/intermediate cloud hierarchy library
+ Hierarchical design, consisting of
+ kinematic film: mass, momentum
+ constant thermodynamic properties
+ thermodynamic film: mass, momentum and enthalpy
+ constant, or temperature dependant thermodynamic properties
+ Sub-models:
+ detachment/dripping whereby particles (re)enter the originating cloud
+ particle sizes set according to PDF
+ other properties set to ensure mass, momentum and energy conservation
+ heat transfer to/from walls and film surface
+ film evaporation and boiling
+ Additional wall functions for primary region momentum and temperature
taking film into account
+ Parallel aware
*** *New* ptscotch decomposition method.
*** *New* multiLevel decomposition method.
Decomposes in levels, e.g. first decompose onto number of nodes and
@ -121,18 +148,12 @@
decomposition on the master.
*** *Updated* decomposePar maps polyPatches instead of recreating them so
polyPatches holding data can map the data.
*** *Updated* particle tracking algorithm
+ uses non-blocking parallel transfers
+ does 'minimum-tet' decomposition of face to work with warped faces
(snappyHexMesh!)
+ reuses tracking state in interpolation - improves consistency and speed
*** *Updated* split cyclics into two separate patches.
See [[./doc/changes/splitCyclic.txt]]
* *New* cyclics (and all coupled patches) have optional
matchTolerance entry to allow looser area matching tolerance.
* *Updated* interpolation (volPointInterpolation) now works without the
globalPointPatch. Moving mesh cases can now be run non-parallel and
continued in parallel and reconstructed without any limitation.
+ *New* cyclics (and all coupled patches) have optional
matchTolerance entry to allow looser area matching tolerance.
+ *Updated* interpolation (volPointInterpolation) now works without the
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. Binary mesh reading
is backwards (but not forwards) compatible. Use ascii mesh format or

View File

@ -43,16 +43,26 @@ Description
using namespace Foam;
// Main program:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "addRegionOption.H"
argList::addOption
(
"dict",
"word",
"name of dictionary to provide patch agglomeration controls"
);
#include "setRootCase.H"
#include "createTime.H"
#include "createNamedMesh.H"
word agglomDictName
(
args.optionLookupOrDefault<word>("dict", "faceAgglomerateDict")
);
const polyBoundaryMesh& patches = mesh.boundaryMesh();
labelListIOList finalAgglom
@ -70,12 +80,12 @@ int main(int argc, char *argv[])
);
// Read view factor dictionary
IOdictionary viewFactorDict
// Read control dictionary
IOdictionary agglomDict
(
IOobject
(
"viewFactorsDict",
agglomDictName,
runTime.constant(),
mesh,
IOobject::MUST_READ,
@ -83,8 +93,7 @@ int main(int argc, char *argv[])
)
);
bool writeAgglo =
readBool(viewFactorDict.lookup("writeFacesAgglomeration"));
bool writeAgglom = readBool(agglomDict.lookup("writeFacesAgglomeration"));
const polyBoundaryMesh& boundary = mesh.boundaryMesh();
@ -97,13 +106,13 @@ int main(int argc, char *argv[])
if (pp.size() > 0 && !pp.coupled())
{
if (viewFactorDict.found(pp.name()))
if (agglomDict.found(pp.name()))
{
Info << "\nAgglomerating name : " << pp.name() << endl;
Info << "\nAgglomerating patch : " << pp.name() << endl;
pairPatchAgglomeration agglomObject
(
pp,
viewFactorDict.subDict(pp.name())
agglomDict.subDict(pp.name())
);
agglomObject.agglomerate();
finalAgglom[patchI] =
@ -111,19 +120,15 @@ int main(int argc, char *argv[])
}
else
{
FatalErrorIn
(
"main(int argc, char *argv[])"
) << pp.name()
<< " not found in dictionary : "
<< viewFactorDict.name()
<< exit(FatalError);
FatalErrorIn(args.executable())
<< "Patch " << pp.name() << " not found in dictionary: "
<< agglomDict.name() << exit(FatalError);
}
}
}
// Sync agglomeration across coupled patches
labelList nbrAgglom(mesh.nFaces()-mesh.nInternalFaces(), -1);
labelList nbrAgglom(mesh.nFaces() - mesh.nInternalFaces(), -1);
forAll(boundary, patchId)
{
@ -133,7 +138,7 @@ int main(int argc, char *argv[])
finalAgglom[patchId] = identity(pp.size());
forAll(pp, i)
{
nbrAgglom[pp.start()-mesh.nInternalFaces()+i] =
nbrAgglom[pp.start() - mesh.nInternalFaces() + i] =
finalAgglom[patchId][i];
}
}
@ -148,14 +153,14 @@ int main(int argc, char *argv[])
forAll(pp, i)
{
finalAgglom[patchId][i] =
nbrAgglom[pp.start()-mesh.nInternalFaces()+i];
nbrAgglom[pp.start() - mesh.nInternalFaces() + i];
}
}
}
finalAgglom.write();
if (writeAgglo)
if (writeAgglom)
{
volScalarField facesAgglomeration
(
@ -183,10 +188,13 @@ int main(int argc, char *argv[])
}
}
Info << "\nWriting facesAgglomeration..." << endl;
Info << "\nWriting facesAgglomeration" << endl;
facesAgglomeration.write();
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -24,7 +24,7 @@ dict.add
dict.add("mergeDistance", SMALL);
labelHashSet includePatches;
forAll(patches, patchI) //
forAll(patches, patchI)
{
if (!isA<processorPolyPatch>(patches[patchI]))
{

View File

@ -125,7 +125,6 @@ scalar calculateViewFactorFij
(cosThetaI*cosThetaJ*dAjMag*dAiMag)
/(sqr(rMag)*constant::mathematical::pi)
);
}
@ -152,7 +151,7 @@ void insertMatrixElements
}
// Main program:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
@ -161,7 +160,7 @@ int main(int argc, char *argv[])
#include "createTime.H"
#include "createNamedMesh.H"
// Read view factor dictionary
// Read view factor dictionary
IOdictionary viewFactorDict
(
IOobject
@ -180,8 +179,6 @@ int main(int argc, char *argv[])
const bool dumpRays =
viewFactorDict.lookupOrDefault<bool>("dumpRays", false);
// Debug
// ~~~~~
const label debug = viewFactorDict.lookupOrDefault<label>("debug", 0);
volScalarField Qr
@ -197,7 +194,7 @@ int main(int argc, char *argv[])
mesh
);
// Read agglomeration map
// Read agglomeration map
labelListIOList finalAgglom
(
IOobject
@ -211,8 +208,8 @@ int main(int argc, char *argv[])
)
);
// - Create the coarse mesh using agglomeration //
//-----------------------------------------------//
// Create the coarse mesh using agglomeration
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (debug)
{
@ -234,8 +231,8 @@ int main(int argc, char *argv[])
);
// - Calculate total number of fine and coarse faces //
//---------------------------------------------------//
// Calculate total number of fine and coarse faces
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label nCoarseFaces = 0; //total number of coarse faces
label nFineFaces = 0; //total number of fine faces
@ -264,7 +261,7 @@ int main(int argc, char *argv[])
viewFactorsPatches.resize(count--);
//total number of coarse faces
// total number of coarse faces
label totalNCoarseFaces = nCoarseFaces;
reduce(totalNCoarseFaces, sumOp<label>());
@ -280,8 +277,8 @@ int main(int argc, char *argv[])
<< viewFactorsPatches << endl;
}
// - Collect local Cf and Sf on coarse mesh //.
//------------------------------------------//
// Collect local Cf and Sf on coarse mesh
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DynamicList<point> localCoarseCf(nCoarseFaces);
DynamicList<point> localCoarseSf(nCoarseFaces);
@ -348,8 +345,8 @@ int main(int argc, char *argv[])
}
}
// - Collect remote Cf and Sf on coarse mesh //.
//------------------------------------------//
// Collect remote Cf and Sf on coarse mesh
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List<pointField> remoteCoarseCf(Pstream::nProcs());
List<pointField> remoteCoarseSf(Pstream::nProcs());
@ -357,8 +354,8 @@ int main(int argc, char *argv[])
remoteCoarseCf[Pstream::myProcNo()] = localCoarseCf;
remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf;
// - Collect remote Cf and Sf on fine mesh //.
//------------------------------------------//
// Collect remote Cf and Sf on fine mesh
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List<pointField> remoteFineCf(Pstream::nProcs());
List<pointField> remoteFineSf(Pstream::nProcs());
@ -366,8 +363,8 @@ int main(int argc, char *argv[])
remoteCoarseCf[Pstream::myProcNo()] = localCoarseCf;
remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf;
// Distribute local coarse Cf and Sf for shooting rays
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Distribute local coarse Cf and Sf for shooting rays
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pstream::gatherList(remoteCoarseCf);
Pstream::scatterList(remoteCoarseCf);
@ -377,43 +374,39 @@ int main(int argc, char *argv[])
// Set up searching engine for obstacles
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# include "searchingEngine.H"
#include "searchingEngine.H"
// Determine rays between coarse face centres
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DynamicList<label> rayStartFace
(
nCoarseFaces
+ 0.01*nCoarseFaces
);
DynamicList<label> rayStartFace(nCoarseFaces + 0.01*nCoarseFaces);
DynamicList<label> rayEndFace(rayStartFace.size());
DynamicList<label> rayEndFace(rayStartFace.size());
globalIndex globalNumbering(nCoarseFaces);
globalIndex globalNumbering(nCoarseFaces);
//- Return rayStartFace in local index andrayEndFace in global index //
// ------------------------------------------------------------------//
// Return rayStartFace in local index andrayEndFace in global index
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# include "shootRays.H"
#include "shootRays.H"
// Calculate number of visible faces from local index
labelList nVisibleFaceFaces(nCoarseFaces, 0);
// Calculate number of visible faces from local index
labelList nVisibleFaceFaces(nCoarseFaces, 0);
forAll(rayStartFace, i)
{
nVisibleFaceFaces[rayStartFace[i]]++;
}
forAll(rayStartFace, i)
{
nVisibleFaceFaces[rayStartFace[i]]++;
}
labelListList visibleFaceFaces(nCoarseFaces);
labelListList visibleFaceFaces(nCoarseFaces);
label nViewFactors = 0;
forAll(nVisibleFaceFaces, faceI)
{
visibleFaceFaces[faceI].setSize(nVisibleFaceFaces[faceI]);
nViewFactors += nVisibleFaceFaces[faceI];
}
label nViewFactors = 0;
forAll(nVisibleFaceFaces, faceI)
{
visibleFaceFaces[faceI].setSize(nVisibleFaceFaces[faceI]);
nViewFactors += nVisibleFaceFaces[faceI];
}
// - Construct compact numbering
@ -474,9 +467,9 @@ int main(int argc, char *argv[])
consMapDim.write();
// visibleFaceFaces has:
// (local face, local viewed face) = compact viewed face
//------------------------------------------------------------//
// visibleFaceFaces has:
// (local face, local viewed face) = compact viewed face
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nVisibleFaceFaces = 0;
forAll(rayStartFace, i)
@ -489,7 +482,7 @@ int main(int argc, char *argv[])
// Construct data in compact addressing
// I need coarse Sf (Ai), fine Sf (dAi) and fine Cf(r) to calculate Fij
// --------------------------------------------------------------------//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pointField compactCoarseCf(map.constructSize(), pTraits<vector>::zero);
pointField compactCoarseSf(map.constructSize(), pTraits<vector>::zero);
@ -560,7 +553,7 @@ int main(int argc, char *argv[])
// Fill local view factor matrix
//-----------------------------
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scalarListIOList F
(
@ -591,7 +584,7 @@ int main(int argc, char *argv[])
if (Pstream::master())
{
Info << "\nCalculating view factors..." << endl;
Info<< "\nCalculating view factors..." << endl;
}
if (mesh.nSolutionD() == 3)
@ -606,7 +599,7 @@ int main(int argc, char *argv[])
const labelList& visCoarseFaces = visibleFaceFaces[coarseFaceI];
forAll (visCoarseFaces, visCoarseFaceI)
forAll(visCoarseFaces, visCoarseFaceI)
{
F[coarseFaceI].setSize(visCoarseFaces.size());
label compactJ = visCoarseFaces[visCoarseFaceI];
@ -647,7 +640,7 @@ int main(int argc, char *argv[])
const boundBox& box = mesh.bounds();
const Vector<label>& dirs = mesh.geometricD();
vector emptyDir = vector::zero;
forAll (dirs, i)
forAll(dirs, i)
{
if (dirs[i] == -1)
{
@ -657,7 +650,7 @@ int main(int argc, char *argv[])
scalar wideBy2 = (box.span() & emptyDir)*2.0;
forAll (localCoarseSf, coarseFaceI)
forAll(localCoarseSf, coarseFaceI)
{
const vector& Ai = localCoarseSf[coarseFaceI];
const vector& Ci = localCoarseCf[coarseFaceI];
@ -709,10 +702,10 @@ int main(int argc, char *argv[])
if (Pstream::master() && debug)
{
forAll (viewFactorsPatches, i)
forAll(viewFactorsPatches, i)
{
label patchI = viewFactorsPatches[i];
forAll (viewFactorsPatches, i)
forAll(viewFactorsPatches, i)
{
label patchJ = viewFactorsPatches[i];
Info << "F" << patchI << patchJ << ": "
@ -749,7 +742,7 @@ int main(int argc, char *argv[])
const labelList& coarsePatchFace =
coarseMesh.patchFaceMap()[patchID];
forAll (coarseToFine, coarseI)
forAll(coarseToFine, coarseI)
{
const scalar Fij = sum(F[compactI]);
const label coarseFaceID = coarsePatchFace[coarseI];
@ -858,4 +851,5 @@ int main(int argc, char *argv[])
return 0;
}
// ************************************************************************* //

View File

@ -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
@ -32,8 +32,6 @@
#------------------------------------------------------------------------------
# Base settings
FOAM_VERSION=1.6
SUPPLIED_VERSION_GCC=4.4.3
MIN_VERSION_GCC=4.3.3
# General
@ -247,19 +245,54 @@ reportExecutable()
VERSION=`$1 -case /dev/null 2>&1 \
| sed -ne 's/^.*Version: *\([^ ][^ ]*\).*/\1/p'`
;;
flex)
VERSION=`$1 --version /dev/null 2>&1 \
| sed -ne 's/flex \([0-9][0-9.]*\).*/\1/p' `
;;
gcc)
VERSION=`$1 -v 2>&1 \
VERSION=`$1 -v 2>&1 \
| sed -ne 's/^gcc version \([0-9][0-9.]*\).*/\1/p' `
if [ "$VERSION" != "$SUPPLIED_VERSION_GCC" ]
then
echo "WARNING: gcc version does not match gcc supplied" \
"with this release of OpenFOAM"
echo " Supplied version: $SUPPLIED_VERSION_GCC"
echo " User version : $VERSION"
echo " Minimum required: $MIN_VERSION_GCC"
echo ""
MINV1=`echo $MIN_VERSION_GCC | cut -d. -f1`
MINV2=`echo $MIN_VERSION_GCC | cut -d. -f2`
MINV3=`echo $MIN_VERSION_GCC | cut -d. -f3`
V1=`echo $VERSION | cut -d. -f1`
V2=`echo $VERSION | cut -d. -f2`
V3=`echo $VERSION | cut -d. -f3`
gccOK=""
pass=""
if [ $V1 -lt $MINV1 ]; then
gccOk="ERROR"
elif [ $V1 -gt $MINV1 ]; then
pass="yes"
fi
if [ "$pass" == "" ] && [ "$gccOk" == "" ]; then
if [ $V2 -lt $MINV2 ]; then
gccOk="ERROR"
elif [ $V2 -gt $MINV2 ]; then
pass="yes"
fi
fi
if [ "$pass" == "" ] && [ "$gccOk" == "" ] && [ $V3 != "" ] && [ $MINV3 != "" ]; then
if [ $V3 -lt $MINV3 ]; then
gccOk="ERROR"
fi
fi
if [ "$gccOk" != "" ]; then
echo "ERROR: gcc version is too old for this release of OpenFOAM"
echo " User version : $VERSION"
echo " Minimum required: $MIN_VERSION_GCC"
echo ""
fatalError=`expr $fatalError + 1`
fi
;;
gtar)
VERSION=`$APP_PATH --version | head -1`
@ -304,7 +337,7 @@ checkOpenFOAMEnvironment()
echo "FATAL ERROR: OpenFOAM environment not configured."
echo ""
echo " Please refer to the installation section of the README file:"
echo " <OpenFOAM installation dir>/OpenFOAM-${FOAM_VERSION}/README"
echo " <OpenFOAM installation dir>/OpenFOAM-${WM_PROJECT_VERSION}/README"
echo " to source the OpenFOAM environment."
echo ""
exit 1
@ -320,7 +353,7 @@ checkUserShell()
;;
*)
echo "FATAL ERROR: Cannot identify the shell you are running."
echo " OpenFOAM ${FOAM_VERSION} is compatible with "
echo " OpenFOAM ${WM_PROJECT_VERSION} is compatible with "
echo " csh, tcsh, ksh and bash."
echo
fatalError=`expr $fatalError + 1`
@ -336,7 +369,7 @@ checkHostName()
then
echo "FATAL ERROR: Cannot stat hostname."
echo " Contact your system administrator, "
echo " OpenFOAM ${FOAM_VERSION} needs a valid "
echo " OpenFOAM ${WM_PROJECT_VERSION} needs a valid "
echo " hostname to function."
echo
fatalError=`expr $fatalError + 1`
@ -352,7 +385,7 @@ checkOS()
;;
*)
echo "FATAL ERROR: Incompatible operating system \"$OSTYPE\"."
echo " OpenFOAM $FOAM_VERSION is currently "
echo " OpenFOAM ${FWM_PROJECT_VERSION} is currently "
echo " available for Linux and SunOS only."
echo
fatalError=`expr $fatalError + 1`
@ -423,6 +456,7 @@ COL3=`fixlen Location 10`
hline
echo "$COL1 $COL2 $COL3"
hline
reportExecutable flex
reportExecutable gcc
reportExecutable gzip
if [ "$OSTYPE" = Linux ]

View File

@ -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
@ -33,8 +33,6 @@
# STATIC VARIABLES
# ~~~~~~~~~~~~~~~~
FOAM_VERSION=1.6
HLINE="-----------------------------------------------------------------------"
WIDTH=16
unset fatalError
@ -92,7 +90,7 @@ case "$SHELL" in
;;
*)
echo "ERROR: Cannot identify the current shell."
echo " OpenFOAM $FOAM_VERSION is compatible"
echo " OpenFOAM $WM_PROJECT_VERSION is compatible"
echo " with csh, tcsh, ksh and bash."
echo
fatalError=true
@ -105,8 +103,8 @@ echo "$(fixlen Host: $WIDTH) $HOST"
if [ $(length $HOST) -eq 0 ]
then
echo "ERROR: Cannot stat hostname."
echo " OpenFOAM $FOAM_VERSION needs a valid hostname to function."
echo " Contact your system administrator. "
echo " OpenFOAM $WM_PROJECT_VERSION needs a valid hostname to"
echo " function. Contact your system administrator."
echo
fatalError=true
fi
@ -119,7 +117,7 @@ Linux | LinuxAMD64 | SunOS )
;;
*)
echo "ERROR: Incompatible operating system \"$OSTYPE\"."
echo " OpenFOAM $FOAM_VERSION is currently available for "
echo " OpenFOAM $WM_PROJECT_VERSION is currently available for "
echo " Linux, LinuxAMD64 and SunOS only."
echo
fatalError=true
@ -138,7 +136,7 @@ echo "$(fixlen User: $WIDTH) ${USER_NAME}"
if [ $(length $USER_NAME) -eq 0 ]
then
echo "ERROR: Cannot stat user name $USER_NAME."
echo " OpenFOAM $FOAM_VERSION needs a valid user name."
echo " OpenFOAM $WM_PROJECT_VERSION needs a valid user name."
echo " Contact your system administrator. "
echo
fatalError=true

View File

@ -48,6 +48,6 @@ epsMax/bounding epsilon,/max:
epsAvg/bounding epsilon,/average:
#- gamma bounding
gammaMin/Min\(gamma\) =/Min(gamma) =
gammaMax/Max\(gamma\) =/Max(gamma) =
alpha1Min/Min\(alpha1\) =/Min(alpha1) =
alpha1Max/Max\(alpha1\) =/Max(alpha1) =

View File

@ -3,7 +3,7 @@
#+TITLE: OpenFOAM C++ style guide
#+AUTHOR: OpenCFD Ltd.
#+DATE: Feb 2011
#+LINK: http://www.opencfd.co.uk
#+LINK: http://www.OpenFOAM.com
#+OPTIONS: author:nil ^:{}
#+STARTUP: hidestars
#+STARTUP: odd

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0 |
| \\ / O peration | Version: 2.0.0 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/

View File

@ -18,8 +18,8 @@ FoamFile
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
inertSpecie N2;
fuel C3H8;
chemistryReader foamChemistryReader;
@ -29,17 +29,4 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
liquids
{
liquidComponents
();
H2O H2O defaultCoeffs;
}
solids
{
solidComponents
();
}
// ************************************************************************* //

View File

@ -18,6 +18,7 @@ FoamFile
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
inertSpecie N2;
fuel CH4;
chemistryReader foamChemistryReader;
@ -26,12 +27,5 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
liquids
{
liquidComponents
();
H2O H2O defaultCoeffs;
}
// ************************************************************************* //

View File

@ -18,6 +18,7 @@ FoamFile
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
inertSpecie N2;
fuel CH4;
chemistryReader foamChemistryReader;
@ -26,12 +27,5 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
liquids
{
liquidComponents
();
H2O H2O defaultCoeffs;
}
// ************************************************************************* //

View File

@ -29,7 +29,7 @@ done
for i in bottomAir topAir
do
faceAgglomerate -region $i > log.faceAgglomerate.$i 2>&1
faceAgglomerate -region $i -dict viewFactorsDict > log.faceAgglomerate.$i 2>&1
done
for i in bottomAir topAir