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-2.0.0
This commit is contained in:
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -24,7 +24,7 @@ dict.add
|
||||
dict.add("mergeDistance", SMALL);
|
||||
|
||||
labelHashSet includePatches;
|
||||
forAll(patches, patchI) //
|
||||
forAll(patches, patchI)
|
||||
{
|
||||
if (!isA<processorPolyPatch>(patches[patchI]))
|
||||
{
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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 ]
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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) =
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -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
|
||||
();
|
||||
}
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user