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
|
* Overview
|
||||||
OpenFOAM-2.0.0 is the latest major release of OpenFOAM including many new
|
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
|
developments and a number of bug-fixes. This release passes our standard
|
||||||
and the tutorials have been broadly checked. Please report any bugs by
|
tests and the tutorials have been broadly checked. Please report any bugs
|
||||||
following the link: http://www.openfoam.com/bugs.
|
by following the link: http://www.openfoam.com/bugs.
|
||||||
|
|
||||||
* GNU/Linux version
|
* GNU/Linux version
|
||||||
This release of OpenFOAM is distributed primarily in 2 ways: (1) as a Debian
|
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
|
pack containing binaries and source; (2) from the SourceForge source code
|
||||||
repository (see [[./README.org][README]]).
|
repository (see [[./README.org][README]]).
|
||||||
|
|
||||||
The Ubuntu/Debian pack is available for 32 and 64 bit versions of the 10.04
|
The Ubuntu/Debian pack is available for 32 and 64 bit versions of the 10.10
|
||||||
LTS operating system using the system compiler and libraries that will be
|
and 11.04 LTS operating system using the system compiler and libraries that
|
||||||
installed automatically from standard Debian packs.
|
will be installed automatically from standard Debian packs.
|
||||||
|
|
||||||
To use the source version from the SourceForge repository, we provide a source
|
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
|
pack of third-party packages that can be compiled on the user's system. This
|
||||||
@ -46,27 +46,71 @@
|
|||||||
thermoType hPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>;
|
thermoType hPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>;
|
||||||
|
|
||||||
mixture
|
mixture
|
||||||
|
{
|
||||||
|
equationOfState
|
||||||
{
|
{
|
||||||
nMoles 1;
|
nMoles 1;
|
||||||
molWeight 28.9;
|
molWeight 28.9;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
Cp 1007;
|
Cp 1007;
|
||||||
Hf 0;
|
Hf 0;
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
As 1.4792e-06;
|
As 1.4792e-06;
|
||||||
Ts 116;
|
Ts 116;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#+END_SRC
|
#+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
|
*** Lagrangian intermediate library
|
||||||
+ Extensively updated
|
+ Extensively updated
|
||||||
+ *Updated* input format
|
+ *Updated* input format
|
||||||
+ Extended to include steady cloud tracking
|
+ Extended to include steady cloud tracking
|
||||||
|
+ Semi-implicit treatment for particle sources
|
||||||
+ *New* collision modelling
|
+ *New* collision modelling
|
||||||
+ *Coupled* to new surface film modelling library
|
+ Particle forces overhauled
|
||||||
|
+ *New* Paramagnetic force
|
||||||
|
+ *New* Brownian-motion force
|
||||||
+ *New* sub-models
|
+ *New* sub-models
|
||||||
+ NonSphereDrag: drag model to account for non-spherical particles
|
+ nonSphereDrag: drag model to account for non-spherical particles
|
||||||
+ ParticleTracks: post-processing model to generate track data, typically
|
|
||||||
during steady calculations
|
|
||||||
+ *Updated* sub-models
|
+ *Updated* sub-models
|
||||||
|
+ Injection models: injection for injector nozzles
|
||||||
+ Devolatilisation models: now act on a per-specie basis
|
+ 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
|
*** DSMC
|
||||||
*** Dynamic Mesh
|
*** Dynamic Mesh
|
||||||
@ -88,23 +132,6 @@
|
|||||||
+ temperature dependent properties
|
+ temperature dependent properties
|
||||||
+ temperature and direction (in local coordinate system) dependent
|
+ temperature and direction (in local coordinate system) dependent
|
||||||
properties
|
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* ptscotch decomposition method.
|
||||||
*** *New* multiLevel decomposition method.
|
*** *New* multiLevel decomposition method.
|
||||||
Decomposes in levels, e.g. first decompose onto number of nodes and
|
Decomposes in levels, e.g. first decompose onto number of nodes and
|
||||||
@ -121,16 +148,10 @@
|
|||||||
decomposition on the master.
|
decomposition on the master.
|
||||||
*** *Updated* decomposePar maps polyPatches instead of recreating them so
|
*** *Updated* decomposePar maps polyPatches instead of recreating them so
|
||||||
polyPatches holding data can map the data.
|
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.
|
*** *Updated* split cyclics into two separate patches.
|
||||||
See [[./doc/changes/splitCyclic.txt]]
|
+ *New* cyclics (and all coupled patches) have optional
|
||||||
* *New* cyclics (and all coupled patches) have optional
|
|
||||||
matchTolerance entry to allow looser area matching tolerance.
|
matchTolerance entry to allow looser area matching tolerance.
|
||||||
* *Updated* interpolation (volPointInterpolation) now works without the
|
+ *Updated* interpolation (volPointInterpolation) now works without the
|
||||||
globalPointPatch. Moving mesh cases can now be run non-parallel and
|
globalPointPatch. Moving mesh cases can now be run non-parallel and
|
||||||
continued in parallel and reconstructed without any limitation.
|
continued in parallel and reconstructed without any limitation.
|
||||||
*** *New* compact binary I/O for faces and cells.
|
*** *New* compact binary I/O for faces and cells.
|
||||||
|
|||||||
@ -43,16 +43,26 @@ Description
|
|||||||
|
|
||||||
using namespace Foam;
|
using namespace Foam;
|
||||||
|
|
||||||
// Main program:
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|
||||||
#include "addRegionOption.H"
|
#include "addRegionOption.H"
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"dict",
|
||||||
|
"word",
|
||||||
|
"name of dictionary to provide patch agglomeration controls"
|
||||||
|
);
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createNamedMesh.H"
|
#include "createNamedMesh.H"
|
||||||
|
|
||||||
|
word agglomDictName
|
||||||
|
(
|
||||||
|
args.optionLookupOrDefault<word>("dict", "faceAgglomerateDict")
|
||||||
|
);
|
||||||
|
|
||||||
const polyBoundaryMesh& patches = mesh.boundaryMesh();
|
const polyBoundaryMesh& patches = mesh.boundaryMesh();
|
||||||
|
|
||||||
labelListIOList finalAgglom
|
labelListIOList finalAgglom
|
||||||
@ -70,12 +80,12 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// Read view factor dictionary
|
// Read control dictionary
|
||||||
IOdictionary viewFactorDict
|
IOdictionary agglomDict
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
(
|
(
|
||||||
"viewFactorsDict",
|
agglomDictName,
|
||||||
runTime.constant(),
|
runTime.constant(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
@ -83,8 +93,7 @@ int main(int argc, char *argv[])
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
bool writeAgglo =
|
bool writeAgglom = readBool(agglomDict.lookup("writeFacesAgglomeration"));
|
||||||
readBool(viewFactorDict.lookup("writeFacesAgglomeration"));
|
|
||||||
|
|
||||||
const polyBoundaryMesh& boundary = mesh.boundaryMesh();
|
const polyBoundaryMesh& boundary = mesh.boundaryMesh();
|
||||||
|
|
||||||
@ -97,13 +106,13 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (pp.size() > 0 && !pp.coupled())
|
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
|
pairPatchAgglomeration agglomObject
|
||||||
(
|
(
|
||||||
pp,
|
pp,
|
||||||
viewFactorDict.subDict(pp.name())
|
agglomDict.subDict(pp.name())
|
||||||
);
|
);
|
||||||
agglomObject.agglomerate();
|
agglomObject.agglomerate();
|
||||||
finalAgglom[patchI] =
|
finalAgglom[patchI] =
|
||||||
@ -111,13 +120,9 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn(args.executable())
|
||||||
(
|
<< "Patch " << pp.name() << " not found in dictionary: "
|
||||||
"main(int argc, char *argv[])"
|
<< agglomDict.name() << exit(FatalError);
|
||||||
) << pp.name()
|
|
||||||
<< " not found in dictionary : "
|
|
||||||
<< viewFactorDict.name()
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -155,7 +160,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
finalAgglom.write();
|
finalAgglom.write();
|
||||||
|
|
||||||
if (writeAgglo)
|
if (writeAgglom)
|
||||||
{
|
{
|
||||||
volScalarField facesAgglomeration
|
volScalarField facesAgglomeration
|
||||||
(
|
(
|
||||||
@ -183,10 +188,13 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Info << "\nWriting facesAgglomeration..." << endl;
|
Info << "\nWriting facesAgglomeration" << endl;
|
||||||
facesAgglomeration.write();
|
facesAgglomeration.write();
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -24,7 +24,7 @@ dict.add
|
|||||||
dict.add("mergeDistance", SMALL);
|
dict.add("mergeDistance", SMALL);
|
||||||
|
|
||||||
labelHashSet includePatches;
|
labelHashSet includePatches;
|
||||||
forAll(patches, patchI) //
|
forAll(patches, patchI)
|
||||||
{
|
{
|
||||||
if (!isA<processorPolyPatch>(patches[patchI]))
|
if (!isA<processorPolyPatch>(patches[patchI]))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -125,7 +125,6 @@ scalar calculateViewFactorFij
|
|||||||
(cosThetaI*cosThetaJ*dAjMag*dAiMag)
|
(cosThetaI*cosThetaJ*dAjMag*dAiMag)
|
||||||
/(sqr(rMag)*constant::mathematical::pi)
|
/(sqr(rMag)*constant::mathematical::pi)
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -152,7 +151,7 @@ void insertMatrixElements
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Main program:
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -180,8 +179,6 @@ int main(int argc, char *argv[])
|
|||||||
const bool dumpRays =
|
const bool dumpRays =
|
||||||
viewFactorDict.lookupOrDefault<bool>("dumpRays", false);
|
viewFactorDict.lookupOrDefault<bool>("dumpRays", false);
|
||||||
|
|
||||||
// Debug
|
|
||||||
// ~~~~~
|
|
||||||
const label debug = viewFactorDict.lookupOrDefault<label>("debug", 0);
|
const label debug = viewFactorDict.lookupOrDefault<label>("debug", 0);
|
||||||
|
|
||||||
volScalarField Qr
|
volScalarField Qr
|
||||||
@ -211,8 +208,8 @@ int main(int argc, char *argv[])
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// - Create the coarse mesh using agglomeration //
|
// Create the coarse mesh using agglomeration
|
||||||
//-----------------------------------------------//
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
if (debug)
|
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 nCoarseFaces = 0; //total number of coarse faces
|
||||||
label nFineFaces = 0; //total number of fine faces
|
label nFineFaces = 0; //total number of fine faces
|
||||||
@ -280,8 +277,8 @@ int main(int argc, char *argv[])
|
|||||||
<< viewFactorsPatches << endl;
|
<< viewFactorsPatches << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - Collect local Cf and Sf on coarse mesh //.
|
// Collect local Cf and Sf on coarse mesh
|
||||||
//------------------------------------------//
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
DynamicList<point> localCoarseCf(nCoarseFaces);
|
DynamicList<point> localCoarseCf(nCoarseFaces);
|
||||||
DynamicList<point> localCoarseSf(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> remoteCoarseCf(Pstream::nProcs());
|
||||||
List<pointField> remoteCoarseSf(Pstream::nProcs());
|
List<pointField> remoteCoarseSf(Pstream::nProcs());
|
||||||
@ -357,8 +354,8 @@ int main(int argc, char *argv[])
|
|||||||
remoteCoarseCf[Pstream::myProcNo()] = localCoarseCf;
|
remoteCoarseCf[Pstream::myProcNo()] = localCoarseCf;
|
||||||
remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf;
|
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> remoteFineCf(Pstream::nProcs());
|
||||||
List<pointField> remoteFineSf(Pstream::nProcs());
|
List<pointField> remoteFineSf(Pstream::nProcs());
|
||||||
@ -367,7 +364,7 @@ int main(int argc, char *argv[])
|
|||||||
remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf;
|
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::gatherList(remoteCoarseCf);
|
||||||
Pstream::scatterList(remoteCoarseCf);
|
Pstream::scatterList(remoteCoarseCf);
|
||||||
@ -382,19 +379,15 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// Determine rays between coarse face centres
|
// Determine rays between coarse face centres
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
DynamicList<label> rayStartFace
|
DynamicList<label> rayStartFace(nCoarseFaces + 0.01*nCoarseFaces);
|
||||||
(
|
|
||||||
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"
|
||||||
|
|
||||||
@ -476,7 +469,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// visibleFaceFaces has:
|
// visibleFaceFaces has:
|
||||||
// (local face, local viewed face) = compact viewed face
|
// (local face, local viewed face) = compact viewed face
|
||||||
//------------------------------------------------------------//
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
nVisibleFaceFaces = 0;
|
nVisibleFaceFaces = 0;
|
||||||
forAll(rayStartFace, i)
|
forAll(rayStartFace, i)
|
||||||
@ -489,7 +482,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// Construct data in compact addressing
|
// Construct data in compact addressing
|
||||||
// I need coarse Sf (Ai), fine Sf (dAi) and fine Cf(r) to calculate Fij
|
// I need coarse Sf (Ai), fine Sf (dAi) and fine Cf(r) to calculate Fij
|
||||||
// --------------------------------------------------------------------//
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
pointField compactCoarseCf(map.constructSize(), pTraits<vector>::zero);
|
pointField compactCoarseCf(map.constructSize(), pTraits<vector>::zero);
|
||||||
pointField compactCoarseSf(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
|
// Fill local view factor matrix
|
||||||
//-----------------------------
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
scalarListIOList F
|
scalarListIOList F
|
||||||
(
|
(
|
||||||
@ -858,4 +851,5 @@ int main(int argc, char *argv[])
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
# ========= |
|
# ========= |
|
||||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
# \\ / O peration |
|
# \\ / O peration |
|
||||||
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
@ -32,8 +32,6 @@
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
# Base settings
|
# Base settings
|
||||||
FOAM_VERSION=1.6
|
|
||||||
SUPPLIED_VERSION_GCC=4.4.3
|
|
||||||
MIN_VERSION_GCC=4.3.3
|
MIN_VERSION_GCC=4.3.3
|
||||||
|
|
||||||
# General
|
# General
|
||||||
@ -247,19 +245,54 @@ reportExecutable()
|
|||||||
VERSION=`$1 -case /dev/null 2>&1 \
|
VERSION=`$1 -case /dev/null 2>&1 \
|
||||||
| sed -ne 's/^.*Version: *\([^ ][^ ]*\).*/\1/p'`
|
| 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)
|
gcc)
|
||||||
VERSION=`$1 -v 2>&1 \
|
VERSION=`$1 -v 2>&1 \
|
||||||
| sed -ne 's/^gcc version \([0-9][0-9.]*\).*/\1/p' `
|
| sed -ne 's/^gcc version \([0-9][0-9.]*\).*/\1/p' `
|
||||||
|
|
||||||
if [ "$VERSION" != "$SUPPLIED_VERSION_GCC" ]
|
MINV1=`echo $MIN_VERSION_GCC | cut -d. -f1`
|
||||||
then
|
MINV2=`echo $MIN_VERSION_GCC | cut -d. -f2`
|
||||||
echo "WARNING: gcc version does not match gcc supplied" \
|
MINV3=`echo $MIN_VERSION_GCC | cut -d. -f3`
|
||||||
"with this release of OpenFOAM"
|
|
||||||
echo " Supplied version: $SUPPLIED_VERSION_GCC"
|
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 " User version : $VERSION"
|
||||||
echo " Minimum required: $MIN_VERSION_GCC"
|
echo " Minimum required: $MIN_VERSION_GCC"
|
||||||
echo ""
|
echo ""
|
||||||
|
fatalError=`expr $fatalError + 1`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
gtar)
|
gtar)
|
||||||
VERSION=`$APP_PATH --version | head -1`
|
VERSION=`$APP_PATH --version | head -1`
|
||||||
@ -304,7 +337,7 @@ checkOpenFOAMEnvironment()
|
|||||||
echo "FATAL ERROR: OpenFOAM environment not configured."
|
echo "FATAL ERROR: OpenFOAM environment not configured."
|
||||||
echo ""
|
echo ""
|
||||||
echo " Please refer to the installation section of the README file:"
|
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 " to source the OpenFOAM environment."
|
||||||
echo ""
|
echo ""
|
||||||
exit 1
|
exit 1
|
||||||
@ -320,7 +353,7 @@ checkUserShell()
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "FATAL ERROR: Cannot identify the shell you are running."
|
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 " csh, tcsh, ksh and bash."
|
||||||
echo
|
echo
|
||||||
fatalError=`expr $fatalError + 1`
|
fatalError=`expr $fatalError + 1`
|
||||||
@ -336,7 +369,7 @@ checkHostName()
|
|||||||
then
|
then
|
||||||
echo "FATAL ERROR: Cannot stat hostname."
|
echo "FATAL ERROR: Cannot stat hostname."
|
||||||
echo " Contact your system administrator, "
|
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 " hostname to function."
|
||||||
echo
|
echo
|
||||||
fatalError=`expr $fatalError + 1`
|
fatalError=`expr $fatalError + 1`
|
||||||
@ -352,7 +385,7 @@ checkOS()
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "FATAL ERROR: Incompatible operating system \"$OSTYPE\"."
|
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 " available for Linux and SunOS only."
|
||||||
echo
|
echo
|
||||||
fatalError=`expr $fatalError + 1`
|
fatalError=`expr $fatalError + 1`
|
||||||
@ -423,6 +456,7 @@ COL3=`fixlen Location 10`
|
|||||||
hline
|
hline
|
||||||
echo "$COL1 $COL2 $COL3"
|
echo "$COL1 $COL2 $COL3"
|
||||||
hline
|
hline
|
||||||
|
reportExecutable flex
|
||||||
reportExecutable gcc
|
reportExecutable gcc
|
||||||
reportExecutable gzip
|
reportExecutable gzip
|
||||||
if [ "$OSTYPE" = Linux ]
|
if [ "$OSTYPE" = Linux ]
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
# ========= |
|
# ========= |
|
||||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
# \\ / O peration |
|
# \\ / O peration |
|
||||||
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
@ -33,8 +33,6 @@
|
|||||||
|
|
||||||
# STATIC VARIABLES
|
# STATIC VARIABLES
|
||||||
# ~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~
|
||||||
FOAM_VERSION=1.6
|
|
||||||
|
|
||||||
HLINE="-----------------------------------------------------------------------"
|
HLINE="-----------------------------------------------------------------------"
|
||||||
WIDTH=16
|
WIDTH=16
|
||||||
unset fatalError
|
unset fatalError
|
||||||
@ -92,7 +90,7 @@ case "$SHELL" in
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Cannot identify the current shell."
|
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 " with csh, tcsh, ksh and bash."
|
||||||
echo
|
echo
|
||||||
fatalError=true
|
fatalError=true
|
||||||
@ -105,8 +103,8 @@ echo "$(fixlen Host: $WIDTH) $HOST"
|
|||||||
if [ $(length $HOST) -eq 0 ]
|
if [ $(length $HOST) -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "ERROR: Cannot stat hostname."
|
echo "ERROR: Cannot stat hostname."
|
||||||
echo " OpenFOAM $FOAM_VERSION needs a valid hostname to function."
|
echo " OpenFOAM $WM_PROJECT_VERSION needs a valid hostname to"
|
||||||
echo " Contact your system administrator. "
|
echo " function. Contact your system administrator."
|
||||||
echo
|
echo
|
||||||
fatalError=true
|
fatalError=true
|
||||||
fi
|
fi
|
||||||
@ -119,7 +117,7 @@ Linux | LinuxAMD64 | SunOS )
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Incompatible operating system \"$OSTYPE\"."
|
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 " Linux, LinuxAMD64 and SunOS only."
|
||||||
echo
|
echo
|
||||||
fatalError=true
|
fatalError=true
|
||||||
@ -138,7 +136,7 @@ echo "$(fixlen User: $WIDTH) ${USER_NAME}"
|
|||||||
if [ $(length $USER_NAME) -eq 0 ]
|
if [ $(length $USER_NAME) -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "ERROR: Cannot stat user name $USER_NAME."
|
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 " Contact your system administrator. "
|
||||||
echo
|
echo
|
||||||
fatalError=true
|
fatalError=true
|
||||||
|
|||||||
@ -48,6 +48,6 @@ epsMax/bounding epsilon,/max:
|
|||||||
epsAvg/bounding epsilon,/average:
|
epsAvg/bounding epsilon,/average:
|
||||||
|
|
||||||
#- gamma bounding
|
#- gamma bounding
|
||||||
gammaMin/Min\(gamma\) =/Min(gamma) =
|
alpha1Min/Min\(alpha1\) =/Min(alpha1) =
|
||||||
gammaMax/Max\(gamma\) =/Max(gamma) =
|
alpha1Max/Max\(alpha1\) =/Max(alpha1) =
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
#+TITLE: OpenFOAM C++ style guide
|
#+TITLE: OpenFOAM C++ style guide
|
||||||
#+AUTHOR: OpenCFD Ltd.
|
#+AUTHOR: OpenCFD Ltd.
|
||||||
#+DATE: Feb 2011
|
#+DATE: Feb 2011
|
||||||
#+LINK: http://www.opencfd.co.uk
|
#+LINK: http://www.OpenFOAM.com
|
||||||
#+OPTIONS: author:nil ^:{}
|
#+OPTIONS: author:nil ^:{}
|
||||||
#+STARTUP: hidestars
|
#+STARTUP: hidestars
|
||||||
#+STARTUP: odd
|
#+STARTUP: odd
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / 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 |
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -18,8 +18,8 @@ FoamFile
|
|||||||
|
|
||||||
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
|
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
|
||||||
|
|
||||||
|
|
||||||
inertSpecie N2;
|
inertSpecie N2;
|
||||||
|
|
||||||
fuel C3H8;
|
fuel C3H8;
|
||||||
|
|
||||||
chemistryReader foamChemistryReader;
|
chemistryReader foamChemistryReader;
|
||||||
@ -29,17 +29,4 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
|
|||||||
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
|
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
|
||||||
|
|
||||||
|
|
||||||
liquids
|
// ************************************************************************* //
|
||||||
{
|
|
||||||
liquidComponents
|
|
||||||
();
|
|
||||||
|
|
||||||
H2O H2O defaultCoeffs;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
solids
|
|
||||||
{
|
|
||||||
solidComponents
|
|
||||||
();
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ FoamFile
|
|||||||
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
|
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
|
||||||
|
|
||||||
inertSpecie N2;
|
inertSpecie N2;
|
||||||
|
|
||||||
fuel CH4;
|
fuel CH4;
|
||||||
|
|
||||||
chemistryReader foamChemistryReader;
|
chemistryReader foamChemistryReader;
|
||||||
@ -26,12 +27,5 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
|
|||||||
|
|
||||||
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
|
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
|
||||||
|
|
||||||
liquids
|
|
||||||
{
|
|
||||||
liquidComponents
|
|
||||||
();
|
|
||||||
|
|
||||||
H2O H2O defaultCoeffs;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -18,6 +18,7 @@ FoamFile
|
|||||||
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
|
thermoType hsPsiMixtureThermo<singleStepReactingMixture<gasThermoPhysics>>;
|
||||||
|
|
||||||
inertSpecie N2;
|
inertSpecie N2;
|
||||||
|
|
||||||
fuel CH4;
|
fuel CH4;
|
||||||
|
|
||||||
chemistryReader foamChemistryReader;
|
chemistryReader foamChemistryReader;
|
||||||
@ -26,12 +27,5 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
|
|||||||
|
|
||||||
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
|
foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
|
||||||
|
|
||||||
liquids
|
|
||||||
{
|
|
||||||
liquidComponents
|
|
||||||
();
|
|
||||||
|
|
||||||
H2O H2O defaultCoeffs;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -29,7 +29,7 @@ done
|
|||||||
|
|
||||||
for i in bottomAir topAir
|
for i in bottomAir topAir
|
||||||
do
|
do
|
||||||
faceAgglomerate -region $i > log.faceAgglomerate.$i 2>&1
|
faceAgglomerate -region $i -dict viewFactorsDict > log.faceAgglomerate.$i 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
for i in bottomAir topAir
|
for i in bottomAir topAir
|
||||||
|
|||||||
Reference in New Issue
Block a user