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

This commit is contained in:
mattijs
2011-02-08 16:17:41 +00:00
88 changed files with 1031 additions and 1037 deletions

View File

@ -2,7 +2,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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -47,6 +47,8 @@ Description
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
argList::noParallel();
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
#include "createSingleCellMesh.H" #include "createSingleCellMesh.H"

View File

@ -2,7 +2,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
@ -39,7 +39,7 @@ Description
to Cavitation Prediction,” to Cavitation Prediction,”
Computers and Fluids, Computers and Fluids,
29(8):849-875, 2000. 29(8):849-875, 2000.
@verbatim @endverbatim
SourceFiles SourceFiles
Kunz.C Kunz.C

View File

@ -2,7 +2,7 @@
========Merkle= | ========Merkle= |
\\ / 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,7 +33,7 @@ Description
"Computational modeling of the dynamics of sheet cavitation", "Computational modeling of the dynamics of sheet cavitation",
in Proceedings Third International Symposium on Cavitation in Proceedings Third International Symposium on Cavitation
Grenoble, France 1998. Grenoble, France 1998.
@verbatim @endverbatim
SourceFiles SourceFiles
Merkle.C Merkle.C

View File

@ -2,7 +2,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,7 +33,7 @@ Description
"Physical and Numerical Modeling of Unsteady Cavitation Dynamics", "Physical and Numerical Modeling of Unsteady Cavitation Dynamics",
Proc. 4th International Conference on Multiphase Flow, Proc. 4th International Conference on Multiphase Flow,
New Orleans, U.S.A., 2001. New Orleans, U.S.A., 2001.
@verbatim @endverbatim
SourceFiles SourceFiles
SchnerrSauer.C SchnerrSauer.C

View File

@ -2,7 +2,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
@ -30,9 +30,9 @@ Description
- create baffles in original mesh with directMappedWall patches - create baffles in original mesh with directMappedWall patches
- if extruding boundary faces: - if extruding boundary faces:
- convert boundary faces to directMappedWall patches - convert boundary faces to directMappedWall patches
- extrude edges of faceZone as a <zone>_sidePatch - extrude edges of faceZone as a \<zone\>_sidePatch
- extrude edges inbetween different faceZones as a - extrude edges inbetween different faceZones as a
(nonuniformTransform)cyclic <zoneA>_<zoneB> (nonuniformTransform)cyclic \<zoneA\>_\<zoneB\>
- extrudes into master direction (i.e. away from the owner cell - extrudes into master direction (i.e. away from the owner cell
if flipMap is false) if flipMap is false)
- not parallel - not parallel
@ -106,7 +106,7 @@ becomes
Usage Usage
- extrudeToRegionMesh <regionName> <faceZones> <thickness> - extrudeToRegionMesh \<regionName\> \<faceZones\> \<thickness\>
@param \<regionName\> \n @param \<regionName\> \n
Name of mesh to create. Name of mesh to create.

View File

@ -2,7 +2,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
@ -39,7 +39,8 @@ template<class Type>
void MapConsistentVolFields void MapConsistentVolFields
( (
const IOobjectList& objects, const IOobjectList& objects,
const meshToMesh& meshToMeshInterp const meshToMesh& meshToMeshInterp,
const meshToMesh::order& mapOrder
) )
{ {
const fvMesh& meshSource = meshToMeshInterp.fromMesh(); const fvMesh& meshSource = meshToMeshInterp.fromMesh();
@ -83,12 +84,7 @@ void MapConsistentVolFields
); );
// Interpolate field // Interpolate field
meshToMeshInterp.interpolate meshToMeshInterp.interpolate(fieldTarget, fieldSource, mapOrder);
(
fieldTarget,
fieldSource,
meshToMesh::INTERPOLATE
);
// Write field // Write field
fieldTarget.write(); fieldTarget.write();
@ -101,11 +97,7 @@ void MapConsistentVolFields
GeometricField<Type, fvPatchField, volMesh> fieldTarget GeometricField<Type, fvPatchField, volMesh> fieldTarget
( (
fieldTargetIOobject, fieldTargetIOobject,
meshToMeshInterp.interpolate meshToMeshInterp.interpolate(fieldSource, mapOrder)
(
fieldSource,
meshToMesh::INTERPOLATE
)
); );
// Write field // Write field

View File

@ -2,7 +2,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
@ -39,7 +39,8 @@ template<class Type>
void MapVolFields void MapVolFields
( (
const IOobjectList& objects, const IOobjectList& objects,
const meshToMesh& meshToMeshInterp const meshToMesh& meshToMeshInterp,
const meshToMesh::order& mapOrder
) )
{ {
const fvMesh& meshSource = meshToMeshInterp.fromMesh(); const fvMesh& meshSource = meshToMeshInterp.fromMesh();
@ -83,12 +84,7 @@ void MapVolFields
); );
// Interpolate field // Interpolate field
meshToMeshInterp.interpolate meshToMeshInterp.interpolate(fieldTarget, fieldSource, mapOrder);
(
fieldTarget,
fieldSource,
meshToMesh::INTERPOLATE
);
// Write field // Write field
fieldTarget.write(); fieldTarget.write();

View File

@ -2,7 +2,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
@ -45,7 +45,8 @@ Description
void mapConsistentMesh void mapConsistentMesh
( (
const fvMesh& meshSource, const fvMesh& meshSource,
const fvMesh& meshTarget const fvMesh& meshTarget,
const meshToMesh::order& mapOrder
) )
{ {
// Create the interpolation scheme // Create the interpolation scheme
@ -61,11 +62,16 @@ void mapConsistentMesh
// Map volFields // Map volFields
// ~~~~~~~~~~~~~ // ~~~~~~~~~~~~~
MapConsistentVolFields<scalar>(objects, meshToMeshInterp); MapConsistentVolFields<scalar>(objects, meshToMeshInterp, mapOrder);
MapConsistentVolFields<vector>(objects, meshToMeshInterp); MapConsistentVolFields<vector>(objects, meshToMeshInterp, mapOrder);
MapConsistentVolFields<sphericalTensor>(objects, meshToMeshInterp); MapConsistentVolFields<sphericalTensor>
MapConsistentVolFields<symmTensor>(objects, meshToMeshInterp); (
MapConsistentVolFields<tensor>(objects, meshToMeshInterp); objects,
meshToMeshInterp,
mapOrder
);
MapConsistentVolFields<symmTensor>(objects, meshToMeshInterp, mapOrder);
MapConsistentVolFields<tensor>(objects, meshToMeshInterp, mapOrder);
} }
{ {
@ -98,7 +104,8 @@ void mapSubMesh
const fvMesh& meshSource, const fvMesh& meshSource,
const fvMesh& meshTarget, const fvMesh& meshTarget,
const HashTable<word>& patchMap, const HashTable<word>& patchMap,
const wordList& cuttingPatches const wordList& cuttingPatches,
const meshToMesh::order& mapOrder
) )
{ {
// Create the interpolation scheme // Create the interpolation scheme
@ -120,11 +127,11 @@ void mapSubMesh
// Map volFields // Map volFields
// ~~~~~~~~~~~~~ // ~~~~~~~~~~~~~
MapVolFields<scalar>(objects, meshToMeshInterp); MapVolFields<scalar>(objects, meshToMeshInterp, mapOrder);
MapVolFields<vector>(objects, meshToMeshInterp); MapVolFields<vector>(objects, meshToMeshInterp, mapOrder);
MapVolFields<sphericalTensor>(objects, meshToMeshInterp); MapVolFields<sphericalTensor>(objects, meshToMeshInterp, mapOrder);
MapVolFields<symmTensor>(objects, meshToMeshInterp); MapVolFields<symmTensor>(objects, meshToMeshInterp, mapOrder);
MapVolFields<tensor>(objects, meshToMeshInterp); MapVolFields<tensor>(objects, meshToMeshInterp, mapOrder);
} }
{ {
@ -155,7 +162,8 @@ void mapSubMesh
void mapConsistentSubMesh void mapConsistentSubMesh
( (
const fvMesh& meshSource, const fvMesh& meshSource,
const fvMesh& meshTarget const fvMesh& meshTarget,
const meshToMesh::order& mapOrder
) )
{ {
HashTable<word> patchMap; HashTable<word> patchMap;
@ -181,7 +189,14 @@ void mapConsistentSubMesh
} }
} }
mapSubMesh(meshSource, meshTarget, patchMap, cuttingPatchTable.toc()); mapSubMesh
(
meshSource,
meshTarget,
patchMap,
cuttingPatchTable.toc(),
mapOrder
);
} }
@ -240,6 +255,18 @@ int main(int argc, char *argv[])
"scalar", "scalar",
"specify the source time" "specify the source time"
); );
argList::addOption
(
"sourceRegion",
"word",
"specify the source region"
);
argList::addOption
(
"targetRegion",
"word",
"specify the target region"
);
argList::addBoolOption argList::addBoolOption
( (
"parallelSource", "parallelSource",
@ -255,12 +282,18 @@ int main(int argc, char *argv[])
"consistent", "consistent",
"source and target geometry and boundary conditions identical" "source and target geometry and boundary conditions identical"
); );
argList::addOption
(
"mapMethod",
"word",
"specify the mapping method"
);
argList args(argc, argv); argList args(argc, argv);
if (!args.check()) if (!args.check())
{ {
FatalError.exit(); FatalError.exit();
} }
fileName rootDirTarget(args.rootPath()); fileName rootDirTarget(args.rootPath());
@ -270,12 +303,52 @@ int main(int argc, char *argv[])
const fileName rootDirSource = casePath.path(); const fileName rootDirSource = casePath.path();
const fileName caseDirSource = casePath.name(); const fileName caseDirSource = casePath.name();
Info<< "Source: " << rootDirSource << " " << caseDirSource << nl Info<< "Source: " << rootDirSource << " " << caseDirSource << endl;
<< "Target: " << rootDirTarget << " " << caseDirTarget << endl; word sourceRegion = fvMesh::defaultRegion;
if (args.optionFound("sourceRegion"))
{
sourceRegion = args["sourceRegion"];
Info<< "Source region: " << sourceRegion << endl;
}
Info<< "Target: " << rootDirTarget << " " << caseDirTarget << endl;
word targetRegion = fvMesh::defaultRegion;
if (args.optionFound("targetRegion"))
{
targetRegion = args["targetRegion"];
Info<< "Target region: " << targetRegion << endl;
}
const bool parallelSource = args.optionFound("parallelSource"); const bool parallelSource = args.optionFound("parallelSource");
const bool parallelTarget = args.optionFound("parallelTarget"); const bool parallelTarget = args.optionFound("parallelTarget");
const bool consistent = args.optionFound("consistent"); const bool consistent = args.optionFound("consistent");
meshToMesh::order mapOrder = meshToMesh::INTERPOLATE;
if (args.optionFound("mapMethod"))
{
const word mapMethod(args["mapMethod"]);
if (mapMethod == "mapNearest")
{
mapOrder = meshToMesh::MAP;
}
else if (mapMethod == "interpolate")
{
mapOrder = meshToMesh::INTERPOLATE;
}
else if (mapMethod == "cellPointInterpolate")
{
mapOrder = meshToMesh::CELL_POINT_INTERPOLATE;
}
else
{
FatalErrorIn(args.executable())
<< "Unknown mapMethod " << mapMethod << ". Valid options are: "
<< "mapNearest, interpolate and cellPointInterpolate"
<< exit(FatalError);
}
Info<< "Mapping method: " << mapMethod << endl;
}
#include "createTimes.H" #include "createTimes.H"
@ -323,7 +396,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, targetRegion,
runTimeTarget.timeName(), runTimeTarget.timeName(),
runTimeTarget runTimeTarget
) )
@ -348,7 +421,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, sourceRegion,
runTimeSource.timeName(), runTimeSource.timeName(),
runTimeSource runTimeSource
) )
@ -358,11 +431,18 @@ int main(int argc, char *argv[])
if (consistent) if (consistent)
{ {
mapConsistentSubMesh(meshSource, meshTarget); mapConsistentSubMesh(meshSource, meshTarget, mapOrder);
} }
else else
{ {
mapSubMesh(meshSource, meshTarget, patchMap, cuttingPatches); mapSubMesh
(
meshSource,
meshTarget,
patchMap,
cuttingPatches,
mapOrder
);
} }
} }
} }
@ -390,7 +470,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, sourceRegion,
runTimeSource.timeName(), runTimeSource.timeName(),
runTimeSource runTimeSource
) )
@ -413,7 +493,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, targetRegion,
runTimeTarget.timeName(), runTimeTarget.timeName(),
runTimeTarget runTimeTarget
) )
@ -423,7 +503,7 @@ int main(int argc, char *argv[])
if (consistent) if (consistent)
{ {
mapConsistentSubMesh(meshSource, meshTarget); mapConsistentSubMesh(meshSource, meshTarget, mapOrder);
} }
else else
{ {
@ -432,7 +512,8 @@ int main(int argc, char *argv[])
meshSource, meshSource,
meshTarget, meshTarget,
patchMap, patchMap,
addProcessorPatches(meshTarget, cuttingPatches) addProcessorPatches(meshTarget, cuttingPatches),
mapOrder
); );
} }
} }
@ -494,7 +575,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, sourceRegion,
runTimeSource.timeName(), runTimeSource.timeName(),
runTimeSource runTimeSource
) )
@ -529,7 +610,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, targetRegion,
runTimeTarget.timeName(), runTimeTarget.timeName(),
runTimeTarget runTimeTarget
) )
@ -544,7 +625,12 @@ int main(int argc, char *argv[])
{ {
if (consistent) if (consistent)
{ {
mapConsistentSubMesh(meshSource, meshTarget); mapConsistentSubMesh
(
meshSource,
meshTarget,
mapOrder
);
} }
else else
{ {
@ -553,7 +639,8 @@ int main(int argc, char *argv[])
meshSource, meshSource,
meshTarget, meshTarget,
patchMap, patchMap,
addProcessorPatches(meshTarget, cuttingPatches) addProcessorPatches(meshTarget, cuttingPatches),
mapOrder
); );
} }
} }
@ -571,7 +658,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, sourceRegion,
runTimeSource.timeName(), runTimeSource.timeName(),
runTimeSource runTimeSource
) )
@ -581,7 +668,7 @@ int main(int argc, char *argv[])
( (
IOobject IOobject
( (
fvMesh::defaultRegion, targetRegion,
runTimeTarget.timeName(), runTimeTarget.timeName(),
runTimeTarget runTimeTarget
) )
@ -592,11 +679,18 @@ int main(int argc, char *argv[])
if (consistent) if (consistent)
{ {
mapConsistentMesh(meshSource, meshTarget); mapConsistentMesh(meshSource, meshTarget, mapOrder);
} }
else else
{ {
mapSubMesh(meshSource, meshTarget, patchMap, cuttingPatches); mapSubMesh
(
meshSource,
meshTarget,
patchMap,
cuttingPatches,
mapOrder
);
} }
} }

View File

@ -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
@ -52,7 +52,7 @@ then
# */applications/solvers/*.H | */applications/utilities/*.H ) # */applications/solvers/*.H | */applications/utilities/*.H )
# awkScript=$WM_PROJECT_DIR/bin/tools/doxyFilter-ignore.awk # awkScript=$WM_PROJECT_DIR/bin/tools/doxyFilter-ignore.awk
# ;; # ;;
esac esac
awk -f $awkScript $1 | \ awk -f $awkScript $1 | \
sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter.sed \ sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter.sed \

View File

@ -2,7 +2,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
@ -57,7 +57,7 @@ BEGIN {
# start comment block # start comment block
if (state == 1) if (state == 1)
{ {
printf "/*!\n" printf "/*! "
state = 2 state = 2
} }
@ -79,7 +79,7 @@ BEGIN {
# end comment block # end comment block
if (state == 2) if (state == 2)
{ {
printf "*/\n" printf "*/ "
} }
state = 0 state = 0
print print

View File

@ -11,34 +11,20 @@
/^License/,/\*\//{ /^License/,/\*\//{
/^License/,\%http://www.gnu.org/licenses%{ /^License/,\%http://www.gnu.org/licenses%{
s?^License.*?\*\/\ s?^License.*?\*\/\
\/\*! @file %filePath%\ \/\*! \\file %filePath%\
<b>Original source file</b> <a href="%filePath%">%fileName%</a>\ <b>Original source file</b> <a href="%filePath%">%fileName%</a>\
\
\
\
\
\
\
\
\
? ?
/^ /d /^ /d
} }
# old FSF address
/^License/,/MA 0211.-130. USA/{
s?^License.*?\*\/\
\/\*! @file %filePath%\
<b>Original source file</b> <a href="%filePath%">%fileName%</a>\
?
/^ /d
}
# remove entry
/^Primitive *$/{
N
N
d
}
# remove entry
/^Implementation *$/{
N
N
d
}
# remove entry # remove entry
/^Application *$/{ /^Application *$/{
@ -47,12 +33,6 @@ N
d d
} }
# remove entry
/^Type *$/{
N
N
d
}
# remove entry # remove entry
/^Global *$/{ /^Global *$/{
@ -62,96 +42,109 @@ d
} }
# Primitive
# typename
# =>
# \\relates typename
#
/^Primitive *$/,/^[^ ]/{
s/^Primitive *$//
s/^ /\\relates /
}
# Class # Class
# Foam::className # Foam::className
# => # =>
# @class Foam::className # \\class Foam::className
# #
/^Class *$/,/^[^ ]/{ /^Class *$/,/^[^ ]/{
/^Class/d s/^Class *$//
s/^ /@class / s/^ /\\class /
} }
# Namespace # Namespace
# namespaceName # namespaceName
# => # =>
# @namespace namespaceName # \namespace namespaceName
# #
/^Namespace *$/,/^[^ ]/{ /^Namespace *$/,/^[^ ]/{
/^Namespace/d s/^Namespace//
s/^ /@namespace / s/^ /\\namespace /
} }
# Typedef # Typedef
# Foam::def # Foam::def
# => # =>
# @class Foam::def # \typedef Foam::def
# This is not strictly correct, but makes it easier to find the typedefs
/^Typedef *$/,/^[^ ]/{ /^Typedef *$/,/^[^ ]/{
/^Typedef/d s/^Typedef//
s/^ /@class / s/^ /\\typedef /
} }
# add anchor and use @brief # add anchor and use \brief
# the first paragraph will be 'brief' and the others 'detail' # the first paragraph will be 'brief' and the others 'detail'
/^Description *$/,/^[^ ]/{ /^Description *$/,/^[^ ]/{
/^Description/c\ /^Description/c\
<a class="anchor" name="Description"></a>\ <a class="anchor" name="Description"></a> \\brief
@brief
s/^ // s/^ //
} }
/^Usage *$/,/^[^ ]/{ /^Usage *$/,/^[^ ]/{
/^Usage/c\ /^Usage/c\
@par Usage \\par Usage
s/^ // s/^ //
} }
/^See *Also *$/,/^[^ ]/{ /^See *Also *$/,/^[^ ]/{
/^See *Also/c\ /^See *Also/c\
@see \\see
s/^ //
}
/^Author *$/,/^[^ ]/{
/^Author/c\
@author
s/^ // s/^ //
} }
/^Note *$/,/^[^ ]/{ /^Note *$/,/^[^ ]/{
/^Note/c\ /^Note/c\
@note \\note
s/^ // s/^ //
} }
# remove ToDo paragraph to avoid them showing on related pages # remove ToDo paragraph to avoid them showing on related pages
/^To[Dd]o *$/,/^ *$/d /^To[Dd]o *$/,/^[^ ]/{
s/^To[Dd]o *$//
s/^ .*//
}
/^Warning *$/,/^[^ ]/{ /^Warning *$/,/^[^ ]/{
/^Warning/c\ /^Warning/c\
@warning \\warning
s/^ // s/^ //
} }
/^Deprecated *$/,/^[^ ]/{ /^Deprecated *$/,/^[^ ]/{
/^Deprecated/c\ /^Deprecated/c\
@deprecated \\deprecated
s/^ // s/^ //
} }
/SourceFiles/,/^[ ]*$/{
s?SourceFiles?@par Source files\ /^SourceFiles *$/,/^$/{
<ul>\ s?SourceFiles?\\par Source files\
<li><a href="%filePath%">%fileName%</a></li>? <ul><li><a href="%filePath%">%fileName%</a></li>?
s?^[ ]*$?</ul>\ s? *\([a-zA-Z0-9]*\.[a-zA-Z]*\)? <li><a href="%dirName%/\1">\1</a></li>?
? s?^$?</ul>?
}
/fileName%<\/a><\/li>$/{
N
s?\n$?</ul>?g
s/<\/li>\n/<\/li> /
s? *\([a-zA-Z0-9]*\.[a-zA-Z]*\)? <li><a href="%dirName%/\1">\1</a></li>? s? *\([a-zA-Z0-9]*\.[a-zA-Z]*\)? <li><a href="%dirName%/\1">\1</a></li>?
} }

View File

@ -1104,7 +1104,7 @@ TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create # When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads. # a tag file that is based on the input files it reads.
GENERATE_TAGFILE = GENERATE_TAGFILE = DTAGS
# If the ALLEXTERNALS tag is set to YES all external classes will be listed # If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes # in the class index. If set to NO only the inherited external classes
@ -1254,7 +1254,7 @@ DOTFILE_DIRS =
# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note # MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note
# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
DOT_GRAPH_MAX_NODES = 50 DOT_GRAPH_MAX_NODES = 10
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable # graphs generated by dot. A depth value of 3 means that only nodes reachable
@ -1264,7 +1264,7 @@ DOT_GRAPH_MAX_NODES = 50
# code bases. Also note that the size of a graph can be further restricted by # code bases. Also note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
MAX_DOT_GRAPH_DEPTH = 3 MAX_DOT_GRAPH_DEPTH = 1
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, which results in a white background. # background. This is disabled by default, which results in a white background.

View File

@ -207,14 +207,16 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO OPTIMIZE_OUTPUT_VHDL = NO
# Doxygen selects the parser to use depending on the extension of the files it parses. # Doxygen selects the parser to use depending on the extension of the files it
# With this tag you can assign which parser to use for a given extension. # parses. With this tag you can assign which parser to use for a given
# Doxygen has a built-in mapping, but you can override or extend it using this tag. # extension. Doxygen has a built-in mapping, but you can override or extend it
# The format is ext=language, where ext is a file extension, and language is one of # using this tag. The format is ext=language, where ext is a file extension,
# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # and language is one of the parsers supported by doxygen: IDL, Java,
# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # Javascript, C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,
# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # C++. For instance to make doxygen treat .inc files as Fortran files (default
# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. # is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note
# that for custom extensions you also need to set FILE_PATTERNS otherwise the
# files are not read by doxygen.
EXTENSION_MAPPING = EXTENSION_MAPPING =
@ -238,10 +240,10 @@ CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO SIP_SUPPORT = NO
# For Microsoft's IDL there are propget and propput attributes to indicate getter # For Microsoft's IDL there are propget and propput attributes to indicate
# and setter methods for a property. Setting this option to YES (the default) # getter and setter methods for a property. Setting this option to YES (the
# will make doxygen to replace the get and set methods by a property in the # default) will make doxygen to replace the get and set methods by a property in
# documentation. This will only work if the methods are indeed getting or # the documentation. This will only work if the methods are indeed getting or
# setting a simple type. If this is not the case, or you want to show the # setting a simple type. If this is not the case, or you want to show the
# methods anyway, you should set this option to NO. # methods anyway, you should set this option to NO.
@ -411,7 +413,12 @@ SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO SORT_BRIEF_DOCS = NO
# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
# (brief and detailed) documentation of class members so that constructors and
# destructors are listed first. If set to NO (the default) the constructors will
# appear in the respective orders defined by SORT_MEMBER_DOCS and
# SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is
# set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
SORT_MEMBERS_CTORS_1ST = NO SORT_MEMBERS_CTORS_1ST = NO
@ -505,12 +512,12 @@ SHOW_NAMESPACES = YES
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# doxygen. The layout file controls the global structure of the generated output files # by doxygen. The layout file controls the global structure of the generated
# in an output format independent way. The create the layout file that represents # output files in an output format independent way. The create the layout file
# doxygen's defaults, run doxygen with the -l option. You can optionally specify a # that represents doxygen's defaults, run doxygen with the -l option. You can
# file name after the option, if omitted DoxygenLayout.xml will be used as the name # optionally specify a file name after the option, if omitted DoxygenLayout.xml
# of the layout file. # will be used as the name of the layout file.
LAYOUT_FILE = LAYOUT_FILE =
@ -581,7 +588,9 @@ WARN_LOGFILE =
# limit input for testing purposes # limit input for testing purposes
INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global \ INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global \
$(WM_PROJECT_DIR)/src/OpenFOAM/containers \ $(WM_PROJECT_DIR)/src/OpenFOAM/containers \
$(WM_PROJECT_DIR)/src/OpenFOAM/primitives $(WM_PROJECT_DIR)/src/OpenFOAM/primitives \
$(WM_PROJECT_DIR)/sampling \
$(WM_PROJECT_DIR)/src/finiteVolume/fvMesh
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@ -836,15 +845,15 @@ HTML_ALIGN_MEMBERS = YES
HTML_DYNAMIC_SECTIONS = NO HTML_DYNAMIC_SECTIONS = NO
# If the GENERATE_DOCSET tag is set to YES, additional index files # If the GENERATE_DOCSET tag is set to YES, additional index files will be
# will be generated that can be used as input for Apple's Xcode 3 # generated that can be used as input for Apple's Xcode 3 integrated development
# integrated development environment, introduced with OSX 10.5 (Leopard). # environment, introduced with OSX 10.5 (Leopard). To create a documentation
# To create a documentation set, doxygen will generate a Makefile in the # set, doxygen will generate a Makefile in the HTML output directory. Running
# HTML output directory. Running make will produce the docset in that # make will produce the docset in that directory and running "make install" will
# directory and running "make install" will install the docset in # install the docset in ~/Library/Developer/Shared/Documentation/DocSets so that
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # Xcode will find it at startup. See
# it at startup. # http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more
# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. # information.
GENERATE_DOCSET = NO GENERATE_DOCSET = NO
@ -906,10 +915,10 @@ BINARY_TOC = NO
TOC_EXPAND = NO TOC_EXPAND = NO
# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# are set, an additional index file will be generated that can be used as input for # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
# HTML documentation. # (.qch) of the generated HTML documentation.
GENERATE_QHP = NO GENERATE_QHP = NO
@ -931,20 +940,23 @@ QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc QHP_VIRTUAL_FOLDER = doc
# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
# For more information please see # add. For more information please see
# http://doc.trolltech.com/qthelpproject.html#custom-filters # http://doc.trolltech.com/qthelpproject.html#custom-filters
QHP_CUST_FILTER_NAME = QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom
# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. # filter to add.For more information please see <a
# href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help
# Project / Custom Filters</a>.
QHP_CUST_FILTER_ATTRS = QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# filter section matches. # project's filter section matches. <a
# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>. # href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help
# Project / Filter Attributes</a>.
QHP_SECT_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS =
@ -955,13 +967,14 @@ QHP_SECT_FILTER_ATTRS =
QHG_LOCATION = QHG_LOCATION =
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
# will be generated, which together with the HTML files, form an Eclipse help # generated, which together with the HTML files, form an Eclipse help
# plugin. To install this plugin and make it available under the help contents # plugin. To install this plugin and make it available under the help contents
# menu in Eclipse, the contents of the directory containing the HTML and XML # menu in Eclipse, the contents of the directory containing the HTML and XML
# files needs to be copied into the plugins directory of eclipse. The name of # files needs to be copied into the plugins directory of eclipse. The name of
# the directory within the plugins directory should be the same as # the directory within the plugins directory should be the same as the
# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears. # ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the
# help appears.
GENERATE_ECLIPSEHELP = NO GENERATE_ECLIPSEHELP = NO
@ -1011,16 +1024,23 @@ TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10 FORMULA_FONTSIZE = 10
# When the SEARCHENGINE tag is enabled doxygen will generate a search box for the HTML output. The underlying search engine uses javascript # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) there is already a search function so this one should # the HTML output. The underlying search engine uses javascript and DHTML and
# typically be disabled. For large projects the javascript based search engine # should work on any modern browser. Note that when using HTML help
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
# there is already a search function so this one should typically be
# disabled. For large projects the javascript based search engine can be slow,
# then enabling SERVER_BASED_SEARCH may provide a better solution.
SEARCHENGINE = YES SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup # implemented using a PHP enabled web server instead of at the web client using
# and does not have live searching capabilities. # Javascript. Doxygen will generate the search PHP script and index file to put
# on the web server. The advantage of the server based approach is that it
# scales better to large projects and allows full text search. The disadvances
# is that it is more difficult to setup and does not have live searching
# capabilities.
SERVER_BASED_SEARCH = NO SERVER_BASED_SEARCH = NO
# old default # old default
@ -1105,7 +1125,9 @@ LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO LATEX_HIDE_INDICES = NO
# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with
# syntax highlighting in the LaTeX output. Note that which sources are shown
# also depends on other settings such as SOURCE_BROWSER.
LATEX_SOURCE_CODE = NO LATEX_SOURCE_CODE = NO
@ -1353,7 +1375,7 @@ TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create # When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads. # a tag file that is based on the input files it reads.
GENERATE_TAGFILE = GENERATE_TAGFILE = DTAGS
# If the ALLEXTERNALS tag is set to YES all external classes will be listed # If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes # in the class index. If set to NO only the inherited external classes
@ -1408,8 +1430,8 @@ HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES HAVE_DOT = YES
# By default doxygen will write a font called FreeSans.ttf to the output # By default doxygen will write a font called FreeSans.ttf to the output
# directory and reference it in all dot files that doxygen generates. This # directory and reference it in all dot files that doxygen generates. This font
# font does not include all possible unicode characters however, so when you need # does not include all possible unicode characters however, so when you need
# these (or just want a differently looking font) you can specify the font name # these (or just want a differently looking font) you can specify the font name
# using DOT_FONTNAME. You need need to make sure dot is able to find the font, # using DOT_FONTNAME. You need need to make sure dot is able to find the font,
# which can be done by putting it in a standard location or by setting the # which can be done by putting it in a standard location or by setting the

View File

@ -2,7 +2,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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -109,8 +109,7 @@ namespace Foam
//! @cond internalClass //- Internal tracking via stat(3p) or inotify(7)
//- Internal tracking via stat(3p) or inotify(7)
class fileMonitorWatcher class fileMonitorWatcher
{ {
public: public:
@ -140,7 +139,7 @@ namespace Foam
{ {
if (useInotify_) if (useInotify_)
{ {
#ifdef FOAM_USE_INOTIFY #ifdef FOAM_USE_INOTIFY
inotifyFd_ = inotify_init(); inotifyFd_ = inotify_init();
dirWatches_.setCapacity(sz); dirWatches_.setCapacity(sz);
dirFiles_.setCapacity(sz); dirFiles_.setCapacity(sz);
@ -167,13 +166,13 @@ namespace Foam
<< endl; << endl;
} }
} }
#else #else
FatalErrorIn("fileMonitorWatcher(const bool, const label)") FatalErrorIn("fileMonitorWatcher(const bool, const label)")
<< "You selected inotify but this file was compiled" << "You selected inotify but this file was compiled"
<< " without FOAM_USE_INOTIFY" << " without FOAM_USE_INOTIFY"
<< "Please select another fileModification test method" << "Please select another fileModification test method"
<< exit(FatalError); << exit(FatalError);
#endif #endif
} }
else else
{ {
@ -184,7 +183,7 @@ namespace Foam
//- remove all watches //- remove all watches
inline ~fileMonitorWatcher() inline ~fileMonitorWatcher()
{ {
#ifdef FOAM_USE_INOTIFY #ifdef FOAM_USE_INOTIFY
if (useInotify_ && inotifyFd_ >= 0) if (useInotify_ && inotifyFd_ >= 0)
{ {
forAll(dirWatches_, i) forAll(dirWatches_, i)
@ -200,7 +199,7 @@ namespace Foam
} }
} }
} }
#endif #endif
} }
inline bool addWatch(const label watchFd, const fileName& fName) inline bool addWatch(const label watchFd, const fileName& fName)
@ -212,7 +211,7 @@ namespace Foam
return false; return false;
} }
#ifdef FOAM_USE_INOTIFY #ifdef FOAM_USE_INOTIFY
// Add/retrieve watch on directory containing file. // Add/retrieve watch on directory containing file.
// Note that fName might be non-existing in special situations // Note that fName might be non-existing in special situations
// (master-only reading for IODictionaries) // (master-only reading for IODictionaries)
@ -250,7 +249,7 @@ namespace Foam
dirWatches_(watchFd) = dirWatchID; dirWatches_(watchFd) = dirWatchID;
dirFiles_(watchFd) = fName.name(); dirFiles_(watchFd) = fName.name();
#endif #endif
} }
else else
{ {
@ -288,7 +287,6 @@ namespace Foam
} }
}; };
//! @endcond
} }
@ -298,7 +296,7 @@ void Foam::fileMonitor::checkFiles() const
{ {
if (useInotify_) if (useInotify_)
{ {
#ifdef FOAM_USE_INOTIFY #ifdef FOAM_USE_INOTIFY
// Large buffer for lots of events // Large buffer for lots of events
char buffer[EVENT_BUF_LEN]; char buffer[EVENT_BUF_LEN];
@ -392,7 +390,7 @@ void Foam::fileMonitor::checkFiles() const
return; return;
} }
} }
#endif #endif
} }
else else
{ {

View File

@ -2,7 +2,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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -21,7 +21,8 @@ License
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
@file Foam::addToGlobalFunctionSelectionTable Global
Foam::addToGlobalFunctionSelectionTable
Description Description
Macros for easy insertion into global function selection tables Macros for easy insertion into global function selection tables
@ -33,20 +34,18 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// add to hash-table of functions with 'lookup' as the key // add to hash-table of functions with 'lookup' as the key
#define addNamedToGlobalFunctionSelectionTable\ #define addNamedToGlobalFunctionSelectionTable\
(memberFunction,argNames,lookup,functionPtr) \ (memberFunction,argNames,lookup,functionPtr) \
\ \
/* Add to the table, find by lookup name */ \ /* Add to the table, find by lookup name */ \
add##memberFunction##argNames##GlobalMemberFunctionToTable \ add##memberFunction##argNames##GlobalMemberFunctionToTable \
add_##lookup##_##memberFunction##argNames##GlobalMemberFunctionTo##Table_\ add_##lookup##_##memberFunction##argNames##GlobalMemberFunctionTo##Table_ \
(#lookup, functionPtr) (#lookup, functionPtr)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif #endif
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -21,7 +21,8 @@ License
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
@file Foam::globalFunctionSelectionTables Global
Foam::globalFunctionSelectionTables
Description Description
Macros to enable the easy declaration of global function selection tables. Macros to enable the easy declaration of global function selection tables.
@ -35,7 +36,6 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// external use: // external use:
// ~~~~~~~~~~~~~ // ~~~~~~~~~~~~~
// declare a run-time selection: // declare a run-time selection:
@ -138,7 +138,6 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif #endif
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -21,7 +21,8 @@ License
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
@file Foam::addToStaticMemberFunctionSelectionTable Global
Foam::addToStaticMemberFunctionSelectionTable
Description Description
Macros for easy insertion into member function selection tables Macros for easy insertion into member function selection tables
@ -47,7 +48,6 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif #endif
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -21,7 +21,8 @@ License
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
@file Foam::staticMemberFunctionSelectionTables Global
Foam::staticMemberFunctionSelectionTables
Description Description
Macros to enable the easy declaration of member function selection tables. Macros to enable the easy declaration of member function selection tables.
@ -35,7 +36,6 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// external use: // external use:
// ~~~~~~~~~~~~~ // ~~~~~~~~~~~~~
// declare a run-time selection: // declare a run-time selection:
@ -140,7 +140,6 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif #endif
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,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
@ -90,7 +90,8 @@ fileName cwd();
// else return false // else return false
bool chDir(const fileName& dir); bool chDir(const fileName& dir);
//- Search for @em name in the following hierarchy: //- Search for @em name
// in the following hierarchy:
// -# personal settings: // -# personal settings:
// - ~/.OpenFOAM/\<VERSION\>/ // - ~/.OpenFOAM/\<VERSION\>/
// <em>for version-specific files</em> // <em>for version-specific files</em>

View File

@ -2,7 +2,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
@ -25,7 +25,7 @@ Class
Foam::interpolationTable Foam::interpolationTable
Description Description
An interpolation/look-up table of scalar vs <Type> values. An interpolation/look-up table of scalar vs \<Type\> values.
The reference scalar values must be monotonically increasing. The reference scalar values must be monotonically increasing.
The handling of out-of-bounds values depends on the current setting The handling of out-of-bounds values depends on the current setting

View File

@ -2,7 +2,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
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::DiagonalMatrix<Type> Foam::DiagonalMatrix
Description Description
DiagonalMatrix<Type> is a 2D diagonal matrix of objects DiagonalMatrix<Type> is a 2D diagonal matrix of objects

View File

@ -2,7 +2,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
@ -122,6 +122,7 @@ public:
inline linePointRef line(const pointField&) const; inline linePointRef line(const pointField&) const;
//- compare edges //- compare edges
// Returns:
// - 0: different // - 0: different
// - +1: identical // - +1: identical
// - -1: same edge, but different orientation // - -1: same edge, but different orientation

View File

@ -2,7 +2,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
@ -307,6 +307,7 @@ public:
inline edge faceEdge(const label n) const; inline edge faceEdge(const label n) const;
//- Return the edge direction on the face //- Return the edge direction on the face
// Returns:
// - 0: edge not found on the face // - 0: edge not found on the face
// - +1: forward (counter-clockwise) on the face // - +1: forward (counter-clockwise) on the face
// - -1: reverse (clockwise) on the face // - -1: reverse (clockwise) on the face

View File

@ -2,7 +2,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
@ -201,12 +201,14 @@ public:
inline edge faceEdge(const label n) const; inline edge faceEdge(const label n) const;
//- Return the edge direction on the face //- Return the edge direction on the face
// Returns:
// - +1: forward (counter-clockwise) on the face // - +1: forward (counter-clockwise) on the face
// - -1: reverse (clockwise) on the face // - -1: reverse (clockwise) on the face
// - 0: edge not found on the face // - 0: edge not found on the face
inline int edgeDirection(const edge&) const; inline int edgeDirection(const edge&) const;
//- compare triFaces //- compare triFaces
// Returns:
// - 0: different // - 0: different
// - +1: identical // - +1: identical
// - -1: same face, but different orientation // - -1: same face, but different orientation

View File

@ -547,7 +547,8 @@ public:
// Other // Other
//- Helper for merging mesh point data. Determines //- Helper for merging mesh point data.
// Determines:
// - my unique indices // - my unique indices
// - global numbering over all unique indices // - global numbering over all unique indices
// - the global number for all local points (so this will // - the global number for all local points (so this will
@ -558,7 +559,8 @@ public:
labelList& uniquePoints labelList& uniquePoints
) const; ) const;
//- Helper for merging patch point data. Takes maps from //- Helper for merging patch point data.
// Takes maps from:
// local points to/from mesh. Determines // local points to/from mesh. Determines
// - my unique points. These are mesh points, not patch points // - my unique points. These are mesh points, not patch points
// since the master might not be on the patch. // since the master might not be on the patch.

View File

@ -2,7 +2,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
@ -415,6 +415,7 @@ public:
// Check // Check
//- Calculate surface type formed by patch. //- Calculate surface type formed by patch.
// Types:
// - all edges have two neighbours (manifold) // - all edges have two neighbours (manifold)
// - some edges have more than two neighbours (illegal) // - some edges have more than two neighbours (illegal)
// - other (open) // - other (open)

View File

@ -2,7 +2,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
@ -134,7 +134,8 @@ public:
} }
//- compare Pairs //- Compare Pairs
// Returning:
// - 0: different // - 0: different
// - +1: identical // - +1: identical
// - -1: same pair, but reversed order // - -1: same pair, but reversed order

View File

@ -27,7 +27,7 @@ Class
Description Description
Templated basic entry that holds a constant value. Templated basic entry that holds a constant value.
Usage - for entry <entryName> having the value <value>: Usage - for entry \<entryName\> having the value <value>:
@verbatim @verbatim
<entryName> constant <value> <entryName> constant <value>
@endverbatim @endverbatim

View File

@ -27,7 +27,7 @@ Class
Description Description
Templated table container data entry. Items are stored in a list of Templated table container data entry. Items are stored in a list of
Tuple2's. First column is always stored as scalar entries. Data is read Tuple2's. First column is always stored as scalar entries. Data is read
in the form, e.g. for an entry <entryName> that is (scalar, vector): in the form, e.g. for an entry \<entryName\> that is (scalar, vector):
@verbatim @verbatim
<entryName> table <entryName> table

View File

@ -26,7 +26,7 @@ Class
Description Description
Polynomial container data entry for scalars. Items are stored in a list of Polynomial container data entry for scalars. Items are stored in a list of
Tuple2's. Data is input in the form, e.g. for an entry <entryName> that Tuple2's. Data is input in the form, e.g. for an entry \<entryName\> that
describes y = x^2 + 2x^3 describes y = x^2 + 2x^3
@verbatim @verbatim

View File

@ -65,9 +65,10 @@ public:
// Public classes // Public classes
//- Less function class used in sorting encoded transforms and indices //- Less function class used in sorting encoded transforms and indices
// - minimum processor // Minimum of:
// - minimum local index // - processor
// - minimum transform // - local index
// - transform
class less class less
{ {
public: public:

View File

@ -49,21 +49,21 @@ namespace Foam
//- An optimized version of Hasher //- An optimized version of Hasher
// @param[in] data - an array of uint32_t values // @param[in] data - an array of uint32_t values
// @param[in] len - the number of values (not bytes) // @param[in] length - the number of values (not bytes)
// @param[in] seed - the previous hash, or an arbitrary value // @param[in] seed - the previous hash, or an arbitrary value
unsigned HasherInt(const uint32_t*, size_t length, unsigned seed = 0); unsigned HasherInt(const uint32_t* data, size_t length, unsigned seed = 0);
//- An optimized version of Hasher, returning dual hash values //- An optimized version of Hasher, returning dual hash values
// @param[in] data - an array of uint32_t values // @param[in] data - an array of uint32_t values
// @param[in] len - the number of values (not bytes) // @param[in] length - the number of values (not bytes)
// @param[in] hash1 - the previous hash, or an arbitrary value // @param[in] hash1 - the previous hash, or an arbitrary value
// on output, the primary hash value // on output, the primary hash value
// @param[in] hash1 - the previous hash, or an arbitrary value // @param[in] hash1 - the previous hash, or an arbitrary value
// on output, the secondary hash value // on output, the secondary hash value
unsigned HasherDual unsigned HasherDual
( (
const uint32_t*, const uint32_t* data,
size_t len, size_t length,
unsigned& hash1, unsigned& hash1,
unsigned& hash2 unsigned& hash2
); );

View File

@ -2,7 +2,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
@ -281,7 +281,8 @@ public:
// Point merging // Point merging
//- Find topologically&geometrically shared points. //- Find topologically and geometrically shared points.
//
// - should only be called for parallel correct mesh // - should only be called for parallel correct mesh
// (since uses mesh.globalData) // (since uses mesh.globalData)
// - returns Map from point to master point (all in mesh point // - returns Map from point to master point (all in mesh point
@ -293,6 +294,7 @@ public:
); );
//- Helper: Merge points. //- Helper: Merge points.
//
// - Gets map from point to destination point // - Gets map from point to destination point
// - Removes all points that don't map to themselves // - Removes all points that don't map to themselves
// - Modifies all faces that use the points to be removed. // - Modifies all faces that use the points to be removed.

View File

@ -2,7 +2,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
@ -382,6 +382,7 @@ public:
) const; ) const;
//- Like consistentRefinement but slower: //- Like consistentRefinement but slower:
//
// - specify number of cells between consecutive refinement levels // - specify number of cells between consecutive refinement levels
// (consistentRefinement equivalent to 1) // (consistentRefinement equivalent to 1)
// - specify max level difference between point-connected cells. // - specify max level difference between point-connected cells.

View File

@ -2,7 +2,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
@ -36,14 +36,11 @@ License
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(removeCells, 0);
defineTypeNameAndDebug(removeCells, 0);
} }
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
// Remove count of elements of f.
void Foam::removeCells::uncount void Foam::removeCells::uncount
( (
const labelList& f, const labelList& f,
@ -59,7 +56,6 @@ void Foam::removeCells::uncount
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from mesh
Foam::removeCells::removeCells Foam::removeCells::removeCells
( (
const polyMesh& mesh, const polyMesh& mesh,
@ -73,10 +69,6 @@ Foam::removeCells::removeCells
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
//- Get labels of exposed faces. These are
// - internal faces that become boundary faces
// - coupled faces that become uncoupled (since on of the sides
// gets deleted)
Foam::labelList Foam::removeCells::getExposedFaces Foam::labelList Foam::removeCells::getExposedFaces
( (
const labelList& cellLabels const labelList& cellLabels

View File

@ -2,7 +2,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
@ -94,7 +94,8 @@ public:
// Topology changes // Topology changes
//- Get labels of exposed faces. These are //- Get labels of exposed faces.
// These are
// - internal faces that become boundary faces // - internal faces that become boundary faces
// - coupled faces that become uncoupled (since one of the sides // - coupled faces that become uncoupled (since one of the sides
// gets deleted) // gets deleted)
@ -114,7 +115,6 @@ public:
//- Force recalculation of locally stored data on topological change //- Force recalculation of locally stored data on topological change
void updateMesh(const mapPolyMesh&) void updateMesh(const mapPolyMesh&)
{} {}
}; };

View File

@ -2,7 +2,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
@ -178,7 +178,8 @@ public:
// Member Functions // Member Functions
//- Given set of faces to pierce calculates: //- Find faces including those with cells which have the same mastercell
// Given set of faces to pierce calculates:
// - region for connected cells // - region for connected cells
// - mastercell for each region. This is the lowest numbered cell // - mastercell for each region. This is the lowest numbered cell
// of all cells that get merged. // of all cells that get merged.

View File

@ -2,7 +2,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
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::PorousZones<ZoneType> Foam::PorousZones
Description Description
A centralized ZoneType collection. A centralized ZoneType collection.

View File

@ -1,8 +1,8 @@
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
========= | ========= |
\\ / F ield | OpenFOAM: The Open So \\ / 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
@ -42,6 +42,16 @@ SourceFiles
fvMesh.C fvMesh.C
fvMeshGeometry.C fvMeshGeometry.C
See Also
hmm
Usage
oeuoeuoeu
ToDo
oeuoeuoeu
oeueouoeu
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef fvMesh_H #ifndef fvMesh_H

View File

@ -2,7 +2,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
@ -156,14 +156,14 @@ namespace fvc
); );
//- Interpolate tmp field onto faces using 'interpolate(<name>)' //- Interpolate tmp field onto faces using 'interpolate(\<name\>)'
template<class Type> template<class Type>
static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
( (
const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf
); );
//- Interpolate tmp field onto faces using 'interpolate(<name>)' //- Interpolate tmp field onto faces using 'interpolate(\<name\>)'
template<class Type> template<class Type>
static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
( (

View File

@ -381,7 +381,7 @@ public:
IOstream::compressionType cmp IOstream::compressionType cmp
) const; ) const;
//- Write positions to <cloudName>_positions.obj file //- Write positions to \<cloudName\>_positions.obj file
void writePositions() const; void writePositions() const;

View File

@ -288,7 +288,7 @@ protected:
typename ParcelType::constantProperties constProps_; typename ParcelType::constantProperties constProps_;
//- Sub-models dictionary //- Sub-models dictionary
const dictionary& subModelProperties_; const dictionary subModelProperties_;
//- Random number generator - used by some injection routines //- Random number generator - used by some injection routines
cachedRandom rndGen_; cachedRandom rndGen_;

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -31,7 +31,6 @@ License
#include "KinematicCloud.H" #include "KinematicCloud.H"
#include "ConeInjection.H" #include "ConeInjection.H"
#include "ConeInjectionMP.H"
#include "FieldActivatedInjection.H" #include "FieldActivatedInjection.H"
#include "InflationInjection.H" #include "InflationInjection.H"
#include "KinematicLookupTableInjection.H" #include "KinematicLookupTableInjection.H"
@ -53,12 +52,6 @@ License
ParcelType \ ParcelType \
); \ ); \
makeInjectionModelType \ makeInjectionModelType \
( \
ConeInjectionMP, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \ ( \
FieldActivatedInjection, \ FieldActivatedInjection, \
KinematicCloud, \ KinematicCloud, \

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -32,7 +32,6 @@ License
#include "KinematicCloud.H" #include "KinematicCloud.H"
#include "ConeInjection.H" #include "ConeInjection.H"
#include "ConeInjectionMP.H"
#include "FieldActivatedInjection.H" #include "FieldActivatedInjection.H"
#include "ManualInjection.H" #include "ManualInjection.H"
#include "NoInjection.H" #include "NoInjection.H"
@ -52,12 +51,6 @@ License
ParcelType \ ParcelType \
); \ ); \
makeInjectionModelType \ makeInjectionModelType \
( \
ConeInjectionMP, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \ ( \
FieldActivatedInjection, \ FieldActivatedInjection, \
KinematicCloud, \ KinematicCloud, \

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -31,7 +31,6 @@ License
#include "KinematicCloud.H" #include "KinematicCloud.H"
#include "ConeInjection.H" #include "ConeInjection.H"
#include "ConeInjectionMP.H"
#include "FieldActivatedInjection.H" #include "FieldActivatedInjection.H"
#include "ManualInjection.H" #include "ManualInjection.H"
#include "NoInjection.H" #include "NoInjection.H"
@ -51,12 +50,6 @@ License
ParcelType \ ParcelType \
); \ ); \
makeInjectionModelType \ makeInjectionModelType \
( \
ConeInjectionMP, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \ ( \
FieldActivatedInjection, \ FieldActivatedInjection, \
KinematicCloud, \ KinematicCloud, \

View File

@ -70,7 +70,7 @@ class particleForces
const fvMesh& mesh_; const fvMesh& mesh_;
//- The particleForces dictionary //- The particleForces dictionary
const dictionary& dict_; const dictionary dict_;
//- Gravity //- Gravity
const vector g_; const vector g_;

View File

@ -2,7 +2,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-2011 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -41,7 +41,16 @@ Foam::label Foam::ConeInjection<CloudType>::parcelsToInject
{ {
if ((time0 >= 0.0) && (time0 < duration_)) if ((time0 >= 0.0) && (time0 < duration_))
{ {
return round((time1 - time0)*parcelsPerSecond_); const scalar targetVolume = flowRateProfile_().integrate(0, time1);
const label targetParcels =
parcelsPerInjector_*targetVolume/this->volumeTotal_;
const label nToInject = targetParcels - nInjected_;
nInjected_ += nToInject;
return positionAxis_.size()*nToInject;
} }
else else
{ {
@ -78,15 +87,14 @@ Foam::ConeInjection<CloudType>::ConeInjection
) )
: :
InjectionModel<CloudType>(dict, owner, typeName), InjectionModel<CloudType>(dict, owner, typeName),
positionAxis_(this->coeffDict().lookup("positionAxis")),
injectorCells_(positionAxis_.size()),
injectorTetFaces_(positionAxis_.size()),
injectorTetPts_(positionAxis_.size()),
duration_(readScalar(this->coeffDict().lookup("duration"))), duration_(readScalar(this->coeffDict().lookup("duration"))),
position_(this->coeffDict().lookup("position")), parcelsPerInjector_
injectorCell_(-1),
injectorTetFace_(-1),
injectorTetPt_(-1),
direction_(this->coeffDict().lookup("direction")),
parcelsPerSecond_
( (
readScalar(this->coeffDict().lookup("parcelsPerSecond")) readScalar(this->coeffDict().lookup("parcelsPerInjector"))
), ),
flowRateProfile_ flowRateProfile_
( (
@ -102,39 +110,48 @@ Foam::ConeInjection<CloudType>::ConeInjection
this->coeffDict().subDict("sizeDistribution"), owner.rndGen() this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
) )
), ),
tanVec1_(vector::zero), nInjected_(this->parcelsAddedTotal()),
tanVec2_(vector::zero) tanVec1_(positionAxis_.size()),
tanVec2_(positionAxis_.size())
{ {
// Normalise direction vector // Normalise direction vector and determine direction vectors
direction_ /= mag(direction_); // tangential to injector axis direction
forAll(positionAxis_, i)
// Determine direction vectors tangential to direction
vector tangent = vector::zero;
scalar magTangent = 0.0;
cachedRandom& rnd = this->owner().rndGen();
while (magTangent < SMALL)
{ {
vector v = rnd.sample01<vector>(); vector& axis = positionAxis_[i].second();
tangent = v - (v & direction_)*direction_; axis /= mag(axis);
magTangent = mag(tangent);
vector tangent = vector::zero;
scalar magTangent = 0.0;
cachedRandom& rnd = this->owner().rndGen();
while (magTangent < SMALL)
{
vector v = rnd.sample01<vector>();
tangent = v - (v & axis)*axis;
magTangent = mag(tangent);
}
tanVec1_[i] = tangent/magTangent;
tanVec2_[i] = axis^tanVec1_[i];
} }
tanVec1_ = tangent/magTangent;
tanVec2_ = direction_^tanVec1_;
// Set total volume to inject // Set total volume to inject
this->volumeTotal_ = flowRateProfile_().integrate(0.0, duration_); this->volumeTotal_ = flowRateProfile_().integrate(0.0, duration_);
// Set/cache the injector cell // Set/cache the injector cells
this->findCellAtPosition forAll(positionAxis_, i)
( {
injectorCell_, this->findCellAtPosition
injectorTetFace_, (
injectorTetPt_, injectorCells_[i],
position_ injectorTetFaces_[i],
); injectorTetPts_[i],
positionAxis_[i].first()
);
}
} }
@ -145,18 +162,18 @@ Foam::ConeInjection<CloudType>::ConeInjection
) )
: :
InjectionModel<CloudType>(im), InjectionModel<CloudType>(im),
positionAxis_(im.positionAxis_),
injectorCells_(im.injectorCells_),
injectorTetFaces_(im.injectorTetFaces_),
injectorTetPts_(im.injectorTetPts_),
duration_(im.duration_), duration_(im.duration_),
position_(im.position_), parcelsPerInjector_(im.parcelsPerInjector_),
injectorCell_(im.injectorCell_),
injectorTetFace_(im.injectorTetFace_),
injectorTetPt_(im.injectorTetPt_),
direction_(im.direction_),
parcelsPerSecond_(im.parcelsPerSecond_),
flowRateProfile_(im.flowRateProfile_().clone().ptr()), flowRateProfile_(im.flowRateProfile_().clone().ptr()),
Umag_(im.Umag_().clone().ptr()), Umag_(im.Umag_().clone().ptr()),
thetaInner_(im.thetaInner_().clone().ptr()), thetaInner_(im.thetaInner_().clone().ptr()),
thetaOuter_(im.thetaOuter_().clone().ptr()), thetaOuter_(im.thetaOuter_().clone().ptr()),
sizeDistribution_(im.sizeDistribution_().clone().ptr()), sizeDistribution_(im.sizeDistribution_().clone().ptr()),
nInjected_(im.nInjected_),
tanVec1_(im.tanVec1_), tanVec1_(im.tanVec1_),
tanVec2_(im.tanVec2_) tanVec2_(im.tanVec2_)
{} {}
@ -181,7 +198,7 @@ Foam::scalar Foam::ConeInjection<CloudType>::timeEnd() const
template<class CloudType> template<class CloudType>
void Foam::ConeInjection<CloudType>::setPositionAndCell void Foam::ConeInjection<CloudType>::setPositionAndCell
( (
const label, const label parcelI,
const label, const label,
const scalar, const scalar,
vector& position, vector& position,
@ -190,17 +207,19 @@ void Foam::ConeInjection<CloudType>::setPositionAndCell
label& tetPtI label& tetPtI
) )
{ {
position = position_; const label i = parcelI % positionAxis_.size();
cellOwner = injectorCell_;
tetFaceI = injectorTetFace_; position = positionAxis_[i].first();
tetPtI = injectorTetPt_; cellOwner = injectorCells_[i];
tetFaceI = injectorTetFaces_[i];
tetPtI = injectorTetPts_[i];
} }
template<class CloudType> template<class CloudType>
void Foam::ConeInjection<CloudType>::setProperties void Foam::ConeInjection<CloudType>::setProperties
( (
const label, const label parcelI,
const label, const label,
const scalar time, const scalar time,
typename CloudType::parcelType& parcel typename CloudType::parcelType& parcel
@ -208,6 +227,9 @@ void Foam::ConeInjection<CloudType>::setProperties
{ {
cachedRandom& rnd = this->owner().rndGen(); cachedRandom& rnd = this->owner().rndGen();
// set particle velocity
const label i = parcelI % positionAxis_.size();
scalar t = time - this->SOI_; scalar t = time - this->SOI_;
scalar ti = thetaInner_().value(t); scalar ti = thetaInner_().value(t);
scalar to = thetaOuter_().value(t); scalar to = thetaOuter_().value(t);
@ -217,8 +239,8 @@ void Foam::ConeInjection<CloudType>::setProperties
scalar dcorr = cos(coneAngle); scalar dcorr = cos(coneAngle);
scalar beta = twoPi*rnd.sample01<scalar>(); scalar beta = twoPi*rnd.sample01<scalar>();
vector normal = alpha*(tanVec1_*cos(beta) + tanVec2_*sin(beta)); vector normal = alpha*(tanVec1_[i]*cos(beta) + tanVec2_[i]*sin(beta));
vector dirVec = dcorr*direction_; vector dirVec = dcorr*positionAxis_[i].second();
dirVec += normal; dirVec += normal;
dirVec /= mag(dirVec); dirVec /= mag(dirVec);

View File

@ -2,7 +2,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-2011 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -25,14 +25,12 @@ Class
Foam::ConeInjection Foam::ConeInjection
Description Description
Cone injection Multi-point cone injection model
- User specifies - User specifies
- time of start of injection - time of start of injection
- injector position - list of injector positions and directions (along injection axes)
- direction (along injection axis) - number of parcels to inject per injector
- parcel flow rate - parcel velocities
- parcel velocity
- inner and outer cone angles - inner and outer cone angles
- Parcel diameters obtained by distribution model model - Parcel diameters obtained by distribution model model
@ -46,6 +44,7 @@ SourceFiles
#include "InjectionModel.H" #include "InjectionModel.H"
#include "distributionModel.H" #include "distributionModel.H"
#include "vectorList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -68,26 +67,23 @@ class ConeInjection
{ {
// Private data // Private data
//- List of position and axis for each injector
List<Tuple2<vector, vector> > positionAxis_;
//- List of cell labels corresponding to injector positions
labelList injectorCells_;
//- List of tetFace labels corresponding to injector positions
labelList injectorTetFaces_;
//- List of tetPt labels corresponding to injector positions
labelList injectorTetPts_;
//- Injection duration [s] //- Injection duration [s]
const scalar duration_; const scalar duration_;
//- Injector position [m] //- Number of parcels to introduce per injector
vector position_; const label parcelsPerInjector_;
//- Cell containing injector position []
label injectorCell_;
//- tetFace of tet containing injector position []
label injectorTetFace_;
//- tetPt of tet containing injector position []
label injectorTetPt_;
//- Injector direction []
vector direction_;
//- Number of parcels to introduce per second []
const label parcelsPerSecond_;
//- Flow rate profile relative to SOI [] //- Flow rate profile relative to SOI []
const autoPtr<DataEntry<scalar> > flowRateProfile_; const autoPtr<DataEntry<scalar> > flowRateProfile_;
@ -104,14 +100,17 @@ class ConeInjection
//- Parcel size distribution model model //- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_; const autoPtr<distributionModels::distributionModel> sizeDistribution_;
//- Number of parcels per injector already injected
mutable label nInjected_;
// Tangential vectors to the direction vector // Tangential vectors to the direction vector
//- First tangential vector //- First tangential vector
vector tanVec1_; vectorList tanVec1_;
//- Second tangential vector //- Second tangential vector
vector tanVec2_; vectorList tanVec2_;
protected: protected:

View File

@ -1,292 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2011 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 3 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, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "ConeInjectionMP.H"
#include "DataEntry.H"
#include "mathematicalConstants.H"
#include "unitConversion.H"
using namespace Foam::constant::mathematical;
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
template<class CloudType>
Foam::label Foam::ConeInjectionMP<CloudType>::parcelsToInject
(
const scalar time0,
const scalar time1
)
{
if ((time0 >= 0.0) && (time0 < duration_))
{
const scalar targetVolume = flowRateProfile_().integrate(0, time1);
const label targetParcels =
parcelsPerInjector_*targetVolume/this->volumeTotal_;
const label nToInject = targetParcels - nInjected_;
nInjected_ += nToInject;
return positions_.size()*nToInject;
}
else
{
return 0;
}
}
template<class CloudType>
Foam::scalar Foam::ConeInjectionMP<CloudType>::volumeToInject
(
const scalar time0,
const scalar time1
)
{
if ((time0 >= 0.0) && (time0 < duration_))
{
return flowRateProfile_().integrate(time0, time1);
}
else
{
return 0.0;
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class CloudType>
Foam::ConeInjectionMP<CloudType>::ConeInjectionMP
(
const dictionary& dict,
CloudType& owner
)
:
InjectionModel<CloudType>(dict, owner, typeName),
positionsFile_(this->coeffDict().lookup("positionsFile")),
positions_
(
IOobject
(
positionsFile_,
owner.db().time().constant(),
owner.mesh(),
IOobject::MUST_READ,
IOobject::NO_WRITE
)
),
injectorCells_(positions_.size()),
injectorTetFaces_(positions_.size()),
injectorTetPts_(positions_.size()),
axesFile_(this->coeffDict().lookup("axesFile")),
axes_
(
IOobject
(
axesFile_,
owner.db().time().constant(),
owner.mesh(),
IOobject::MUST_READ,
IOobject::NO_WRITE
)
),
duration_(readScalar(this->coeffDict().lookup("duration"))),
parcelsPerInjector_
(
readScalar(this->coeffDict().lookup("parcelsPerInjector"))
),
flowRateProfile_
(
DataEntry<scalar>::New("flowRateProfile", this->coeffDict())
),
Umag_(DataEntry<scalar>::New("Umag", this->coeffDict())),
thetaInner_(DataEntry<scalar>::New("thetaInner", this->coeffDict())),
thetaOuter_(DataEntry<scalar>::New("thetaOuter", this->coeffDict())),
sizeDistribution_
(
distributionModels::distributionModel::New
(
this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
)
),
nInjected_(this->parcelsAddedTotal()),
tanVec1_(positions_.size()),
tanVec2_(positions_.size())
{
// Normalise direction vector and determine direction vectors
// tangential to direction
forAll(axes_, i)
{
axes_[i] /= mag(axes_[i]);
vector tangent = vector::zero;
scalar magTangent = 0.0;
cachedRandom& rnd = this->owner().rndGen();
while (magTangent < SMALL)
{
vector v = rnd.sample01<vector>();
tangent = v - (v & axes_[i])*axes_[i];
magTangent = mag(tangent);
}
tanVec1_[i] = tangent/magTangent;
tanVec2_[i] = axes_[i]^tanVec1_[i];
}
// Set total volume to inject
this->volumeTotal_ = flowRateProfile_().integrate(0.0, duration_);
// Set/cache the injector cells
forAll(positions_, i)
{
this->findCellAtPosition
(
injectorCells_[i],
injectorTetFaces_[i],
injectorTetPts_[i],
positions_[i]
);
}
}
template<class CloudType>
Foam::ConeInjectionMP<CloudType>::ConeInjectionMP
(
const ConeInjectionMP<CloudType>& im
)
:
InjectionModel<CloudType>(im),
positionsFile_(im.positionsFile_),
positions_(im.positions_),
injectorCells_(im.injectorCells_),
injectorTetFaces_(im.injectorTetFaces_),
injectorTetPts_(im.injectorTetPts_),
axesFile_(im.axesFile_),
axes_(im.axes_),
duration_(im.duration_),
parcelsPerInjector_(im.parcelsPerInjector_),
flowRateProfile_(im.flowRateProfile_().clone().ptr()),
Umag_(im.Umag_().clone().ptr()),
thetaInner_(im.thetaInner_().clone().ptr()),
thetaOuter_(im.thetaOuter_().clone().ptr()),
sizeDistribution_(im.sizeDistribution_().clone().ptr()),
nInjected_(im.nInjected_),
tanVec1_(im.tanVec1_),
tanVec2_(im.tanVec2_)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class CloudType>
Foam::ConeInjectionMP<CloudType>::~ConeInjectionMP()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class CloudType>
Foam::scalar Foam::ConeInjectionMP<CloudType>::timeEnd() const
{
return this->SOI_ + duration_;
}
template<class CloudType>
void Foam::ConeInjectionMP<CloudType>::setPositionAndCell
(
const label parcelI,
const label,
const scalar,
vector& position,
label& cellOwner,
label& tetFaceI,
label& tetPtI
)
{
const label i = parcelI % positions_.size();
position = positions_[i];
cellOwner = injectorCells_[i];
tetFaceI = injectorTetFaces_[i];
tetPtI = injectorTetPts_[i];
}
template<class CloudType>
void Foam::ConeInjectionMP<CloudType>::setProperties
(
const label parcelI,
const label,
const scalar time,
typename CloudType::parcelType& parcel
)
{
cachedRandom& rnd = this->owner().rndGen();
// set particle velocity
const label i = parcelI%positions_.size();
scalar t = time - this->SOI_;
scalar ti = thetaInner_().value(t);
scalar to = thetaOuter_().value(t);
scalar coneAngle = degToRad(rnd.position<scalar>(ti, to));
scalar alpha = sin(coneAngle);
scalar dcorr = cos(coneAngle);
scalar beta = twoPi*rnd.sample01<scalar>();
vector normal = alpha*(tanVec1_[i]*cos(beta) + tanVec2_[i]*sin(beta));
vector dirVec = dcorr*axes_[i];
dirVec += normal;
dirVec /= mag(dirVec);
parcel.U() = Umag_().value(t)*dirVec;
// set particle diameter
parcel.d() = sizeDistribution_().sample();
}
template<class CloudType>
bool Foam::ConeInjectionMP<CloudType>::fullyDescribed() const
{
return false;
}
template<class CloudType>
bool Foam::ConeInjectionMP<CloudType>::validInjection(const label)
{
return true;
}
// ************************************************************************* //

View File

@ -1,218 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2011 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 3 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, see <http://www.gnu.org/licenses/>.
Class
Foam::ConeInjectionMP
Description
Cone injection multi-point
- User specifies
- time of start of injection
- injector positions
- directions (along injection axes)
- parcel flow rate
- parcel velocities
- inner and outer cone angles
- Parcel diameters obtained by distribution model model
SourceFiles
ConeInjectionMP.C
\*---------------------------------------------------------------------------*/
#ifndef ConeInjectionMP_H
#define ConeInjectionMP_H
#include "InjectionModel.H"
#include "distributionModel.H"
#include "vectorList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// Forward declaration of classes
template<class Type>
class DataEntry;
/*---------------------------------------------------------------------------*\
Class ConeInjectionMP Declaration
\*---------------------------------------------------------------------------*/
template<class CloudType>
class ConeInjectionMP
:
public InjectionModel<CloudType>
{
// Private data
//- Name of file containing positions data
const word positionsFile_;
//- Field of injector positions
vectorIOField positions_;
//- List of cell labels corresponding to injector positions
labelList injectorCells_;
//- List of tetFace labels corresponding to injector positions
labelList injectorTetFaces_;
//- List of tetPt labels corresponding to injector positions
labelList injectorTetPts_;
//- Name of file containing axes data
const word axesFile_;
//- Field of injector positions
vectorIOField axes_;
//- Injection duration [s]
const scalar duration_;
//- Number of parcels to introduce per injector
const label parcelsPerInjector_;
//- Flow rate profile relative to SOI []
const autoPtr<DataEntry<scalar> > flowRateProfile_;
//- Parcel velocity magnitude relative to SOI [m/s]
const autoPtr<DataEntry<scalar> > Umag_;
//- Inner cone angle relative to SOI [deg]
const autoPtr<DataEntry<scalar> > thetaInner_;
//- Outer cone angle relative to SOI [deg]
const autoPtr<DataEntry<scalar> > thetaOuter_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_;
//- Number of parcels per injector already injected
mutable label nInjected_;
// Tangential vectors to the direction vector
//- First tangential vector
vectorList tanVec1_;
//- Second tangential vector
vectorList tanVec2_;
protected:
// Protected Member Functions
//- Number of parcels to introduce over the time step relative to SOI
virtual label parcelsToInject(const scalar time0, const scalar time1);
//- Volume of parcels to introduce over the time step relative to SOI
virtual scalar volumeToInject(const scalar time0, const scalar time1);
public:
//- Runtime type information
TypeName("ConeInjectionMP");
// Constructors
//- Construct from dictionary
ConeInjectionMP(const dictionary& dict, CloudType& owner);
//- Construct copy
ConeInjectionMP(const ConeInjectionMP<CloudType>& im);
//- Construct and return a clone
virtual autoPtr<InjectionModel<CloudType> > clone() const
{
return autoPtr<InjectionModel<CloudType> >
(
new ConeInjectionMP<CloudType>(*this)
);
}
//- Destructor
virtual ~ConeInjectionMP();
// Member Functions
//- Return the end-of-injection time
scalar timeEnd() const;
// Injection geometry
//- Set the injection position and owner cell, tetFace and tetPt
virtual void setPositionAndCell
(
const label parcelI,
const label nParcels,
const scalar time,
vector& position,
label& cellOwner,
label& tetFaceI,
label& tetPtI
);
//- Set the parcel properties
virtual void setProperties
(
const label parcelI,
const label nParcels,
const scalar time,
typename CloudType::parcelType& parcel
);
//- Flag to identify whether model fully describes the parcel
virtual bool fullyDescribed() const;
//- Return flag to identify whether or not injection of parcelI is
// permitted
virtual bool validInjection(const label parcelI);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include "ConeInjectionMP.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -26,7 +26,6 @@ Class
Description Description
Manual injection Manual injection
- User specifies - User specifies
- Total mass to inject - Total mass to inject
- Parcel positions in file @c positionsFile - Parcel positions in file @c positionsFile

View File

@ -26,7 +26,6 @@ Class
Description Description
Patch injection Patch injection
- User specifies - User specifies
- Total mass to inject - Total mass to inject
- Name of patch - Name of patch

View File

@ -2,7 +2,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
@ -130,18 +130,21 @@ public:
inline label end() const; inline label end() const;
//- Compare the given start and end points with this curve //- Compare the given start and end points with this curve
// Return:
// - 0: different // - 0: different
// - +1: identical // - +1: identical
// - -1: same edge, but different orientation // - -1: same edge, but different orientation
inline int compare(const curvedEdge&) const; inline int compare(const curvedEdge&) const;
//- Compare the given start and end points with this curve //- Compare the given start and end points with this curve
// Return:
// - 0: different // - 0: different
// - +1: identical // - +1: identical
// - -1: same edge, but different orientation // - -1: same edge, but different orientation
inline int compare(const edge&) const; inline int compare(const edge&) const;
//- Compare the given start and end points with this curve //- Compare the given start and end points with this curve
// Return:
// - 0: different // - 0: different
// - +1: identical // - +1: identical
// - -1: same edge, but different orientation // - -1: same edge, but different orientation
@ -159,6 +162,7 @@ public:
void operator=(const curvedEdge&); void operator=(const curvedEdge&);
// Ostream operator // Ostream operator
friend Ostream& operator<<(Ostream&, const curvedEdge&); friend Ostream& operator<<(Ostream&, const curvedEdge&);

View File

@ -2,7 +2,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
@ -107,6 +107,7 @@ public:
//- Helper class for finding nearest //- Helper class for finding nearest
// Nearest:
// - point+local index // - point+local index
// - sqr(distance) // - sqr(distance)
// - processor // - processor

View File

@ -2,7 +2,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
@ -511,7 +511,8 @@ public:
// Queries // Queries
//- Calculate nearest point on nearest shape. Returns //- Calculate nearest point on nearest shape.
// Returns
// - bool : any point found nearer than nearestDistSqr // - bool : any point found nearer than nearestDistSqr
// - label: index in shapes // - label: index in shapes
// - point: actual nearest point found // - point: actual nearest point found
@ -532,7 +533,8 @@ public:
point& nearestPoint point& nearestPoint
) const; ) const;
//- Find nearest to line. Returns //- Find nearest to line.
// Returns
// - bool : any point found? // - bool : any point found?
// - label: index in shapes // - label: index in shapes
// - point: actual nearest point found // - point: actual nearest point found
@ -621,10 +623,10 @@ public:
bool write(Ostream& os) const; bool write(Ostream& os) const;
// IOstream Operators // IOstream Operators
friend Ostream& operator<< <Type>(Ostream&, const indexedOctree<Type>&); friend Ostream& operator<< <Type>(Ostream&, const indexedOctree<Type>&);
}; };

View File

@ -2,7 +2,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
@ -195,10 +195,11 @@ public:
bool pointInCell(const point& p, const label celli) const; bool pointInCell(const point& p, const label celli) const;
//- Find nearest cell in terms of cell centre. //- Find nearest cell in terms of cell centre.
// - use octree // Options:
// - use linear search // - use octree
// - if seed is provided walk. (uses findNearestCellWalk; // - use linear search
// does not handle holes in domain) // - if seed is provided walk. (uses findNearestCellWalk;
// does not handle holes in domain)
label findNearestCell label findNearestCell
( (
const point& location, const point& location,

View File

@ -2,7 +2,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
@ -131,7 +131,8 @@ public:
// Single point queries. // Single point queries.
//- Calculate nearest point on surface. Returns //- Calculate nearest point on surface.
// Returns
// - bool : any point found nearer than nearestDistSqr // - bool : any point found nearer than nearestDistSqr
// - label: relevant index in surface (=face 0..5) // - label: relevant index in surface (=face 0..5)
// - point: actual nearest point found // - point: actual nearest point found
@ -141,7 +142,8 @@ public:
const scalar nearestDistSqr const scalar nearestDistSqr
) const; ) const;
//- Calculate nearest point on edge. Returns //- Calculate nearest point on edge.
// Returns
// - bool : any point found nearer than nearestDistSqr // - bool : any point found nearer than nearestDistSqr
// - label: relevant index in surface(=?) // - label: relevant index in surface(=?)
// - point: actual nearest point found // - point: actual nearest point found
@ -151,7 +153,8 @@ public:
const scalar nearestDistSqr const scalar nearestDistSqr
) const; ) const;
//- Find nearest to segment. Returns //- Find nearest to segment.
// Returns
// - bool : any point found? // - bool : any point found?
// - label: relevant index in shapes (=face 0..5) // - label: relevant index in shapes (=face 0..5)
// - point: actual nearest point found // - point: actual nearest point found
@ -241,7 +244,6 @@ public:
notImplemented("searchableBox::writeData(Ostream&) const"); notImplemented("searchableBox::writeData(Ostream&) const");
return false; return false;
} }
}; };

View File

@ -2,7 +2,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
@ -26,7 +26,6 @@ Class
Description Description
Contains information about location on a triSurface: Contains information about location on a triSurface:
- pointIndexHit: - pointIndexHit:
- location - location
- bool: hit/miss - bool: hit/miss

View File

@ -2,7 +2,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
@ -518,8 +518,7 @@ public:
// Tracking // Tracking
//- Test point on plane of triangle to see if on edge or point //- Test point on plane of triangle to see if on edge or point or inside
// or inside.
static surfaceLocation classify static surfaceLocation classify
( (
const triSurface&, const triSurface&,
@ -527,7 +526,8 @@ public:
const point& trianglePoint const point& trianglePoint
); );
//- Track on surface to get closer to point. Possible situations: //- Track on surface to get closer to point.
// Possible situations:
// - 1. reached endpoint // - 1. reached endpoint
// - 2. reached edge (normal situation) // - 2. reached edge (normal situation)
// - 3. reached end of surface (edge on single face) // - 3. reached end of surface (edge on single face)

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -28,10 +28,10 @@ Description
adds/subtracts a field or value to/from a base field. adds/subtracts a field or value to/from a base field.
New field name specified by -resultName option, or automatically as: New field name specified by -resultName option, or automatically as:
<baseFieldName>_add_<addSubtractFieldName> \<baseFieldName\>_add_<addSubtractFieldName>
<baseFieldName>_add_value \<baseFieldName\>_add_value
<baseFieldName>_subtract_<addSubtractFieldName> \<baseFieldName\>_subtract_<addSubtractFieldName>
<baseFieldName>_subtract_value \<baseFieldName\>_subtract_value
Example usage: Example usage:
addSubtract p add -value 100000 -resultName pAbs addSubtract p add -value 100000 -resultName pAbs

View File

@ -2,7 +2,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) 2009-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -72,32 +72,32 @@ Type Foam::fieldValues::cellSource::processValues
{ {
case opSum: case opSum:
{ {
result = sum(values); result = gSum(values);
break; break;
} }
case opVolAverage: case opVolAverage:
{ {
result = sum(values*V)/sum(V); result = gSum(values*V)/gSum(V);
break; break;
} }
case opVolIntegrate: case opVolIntegrate:
{ {
result = sum(values*V); result = gSum(values*V);
break; break;
} }
case opWeightedAverage: case opWeightedAverage:
{ {
result = sum(values*weightField)/sum(weightField); result = gSum(values*weightField)/gSum(weightField);
break; break;
} }
case opMin: case opMin:
{ {
result = min(values); result = gMin(values);
break; break;
} }
case opMax: case opMax:
{ {
result = max(values); result = gMax(values);
break; break;
} }
default: default:
@ -128,10 +128,10 @@ bool Foam::fieldValues::cellSource::writeValues(const word& fieldName)
combineFields(setFieldValues<scalar>(weightFieldName_)) combineFields(setFieldValues<scalar>(weightFieldName_))
); );
Type result = processValues(values, V, weightField);
if (Pstream::master()) if (Pstream::master())
{ {
Type result = processValues(values, V, weightField);
if (valueOutput_) if (valueOutput_)
{ {
IOField<Type> IOField<Type>

View File

@ -2,7 +2,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) 2009-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -91,32 +91,32 @@ Type Foam::fieldValues::faceSource::processValues
{ {
case opSum: case opSum:
{ {
result = sum(values); result = gSum(values);
break; break;
} }
case opAreaAverage: case opAreaAverage:
{ {
result = sum(values*magSf)/sum(magSf); result = gSum(values*magSf)/gSum(magSf);
break; break;
} }
case opAreaIntegrate: case opAreaIntegrate:
{ {
result = sum(values*magSf); result = gSum(values*magSf);
break; break;
} }
case opWeightedAverage: case opWeightedAverage:
{ {
result = sum(values*weightField)/sum(weightField); result = gSum(values*weightField)/gSum(weightField);
break; break;
} }
case opMin: case opMin:
{ {
result = min(values); result = gMin(values);
break; break;
} }
case opMax: case opMax:
{ {
result = max(values); result = gMax(values);
break; break;
} }
default: default:
@ -158,11 +158,10 @@ bool Foam::fieldValues::faceSource::writeValues(const word& fieldName)
magSf = combineFields(magSf); magSf = combineFields(magSf);
weightField = combineFields(weightField); weightField = combineFields(weightField);
Type result = processValues(values, magSf, weightField);
if (Pstream::master()) if (Pstream::master())
{ {
Type result = processValues(values, magSf, weightField);
if (valueOutput_) if (valueOutput_)
{ {
IOField<Type> IOField<Type>

View File

@ -56,6 +56,7 @@ namespace Foam
//- Private class for finding nearest //- Private class for finding nearest
// Comprising:
// - global index // - global index
// - sqr(distance) // - sqr(distance)
typedef Tuple2<scalar, label> nearInfo; typedef Tuple2<scalar, label> nearInfo;

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::compressible::RASModels::mutRoughWallFunctionFvPatchScalarField Foam::compressible::RASModels::mutkRoughWallFunctionFvPatchScalarField
Description Description
Boundary condition for turbulent (kinematic) viscosity when using wall Boundary condition for turbulent (kinematic) viscosity when using wall

View File

@ -2,7 +2,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
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::LESmodels::SpalartAllmaras Foam::incompressible::LESModels::SpalartAllmaras
Description Description
SpalartAllmaras DES (SA + LES) turbulence model for incompressible flows SpalartAllmaras DES (SA + LES) turbulence model for incompressible flows

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::LESmodels::SpalartAllmarasDDES Foam::incompressible::LESModels::SpalartAllmarasDDES
Description Description
SpalartAllmaras DDES LES turbulence model for incompressible flows SpalartAllmaras DDES LES turbulence model for incompressible flows

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::LESmodels::SpalartAllmarasIDDES Foam::incompressible::LESModels::SpalartAllmarasIDDES
Description Description
SpalartAllmarasIDDES LES turbulence model for incompressible flows SpalartAllmarasIDDES LES turbulence model for incompressible flows

View File

@ -2,7 +2,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) 2008-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::LESmodels::kOmegaSSTSAS Foam::incompressible::LESModels::kOmegaSSTSAS
Description Description
kOmegaSSTSAS LES turbulence model for incompressible flows kOmegaSSTSAS LES turbulence model for incompressible flows

View File

@ -0,0 +1,9 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -f system/fvSolution
rm -rf 0 > /dev/null 2>&1
cleanCase

View File

@ -1,11 +1,15 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions # Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions . $WM_PROJECT_DIR/bin/tools/RunFunctions
cp system/fvSolution.org system/fvSolution
cp -r 0.org 0 > /dev/null 2>&1
runApplication blockMesh runApplication blockMesh
runApplication snappyHexMesh -overwrite runApplication snappyHexMesh -overwrite
runApplication simpleFoam
# ----------------------------------------------------------------- end-of-file sed -i 's/\(nNonOrthogonalCorrectors\).*;/\1 10;/g' system/fvSolution
runApplication potentialFoam -writep
sed -i 's/\(nNonOrthogonalCorrectors\).*;/\1 0;/g' system/fvSolution
runApplication simpleFoam

View File

@ -0,0 +1,454 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
72
(
frontAndBack
{
type patch;
nFaces 320;
startFace 1028304;
}
inlet
{
type patch;
nFaces 64;
startFace 1028624;
}
outlet
{
type patch;
nFaces 64;
startFace 1028688;
}
lowerWall
{
type wall;
nFaces 5330;
startFace 1028752;
}
upperWall
{
type patch;
nFaces 160;
startFace 1034082;
}
motorBike_frt-fairing:001%1
{
type wall;
nFaces 5427;
startFace 1034242;
}
motorBike_windshield:002%2
{
type wall;
nFaces 50;
startFace 1039669;
}
motorBike_rr-wh-rim:005%5
{
type wall;
nFaces 136;
startFace 1039719;
}
motorBike_rr-wh-rim:010%10
{
type wall;
nFaces 340;
startFace 1039855;
}
motorBike_fr-wh-rim:011%11
{
type wall;
nFaces 473;
startFace 1040195;
}
motorBike_fr-wh-brake-disk:012%12
{
type wall;
nFaces 54;
startFace 1040668;
}
motorBike_frame:016-shadow%13
{
type wall;
nFaces 97;
startFace 1040722;
}
motorBike_rear-susp:014%14
{
type wall;
nFaces 839;
startFace 1040819;
}
motorBike_rear-susp:014-shadow%15
{
type wall;
nFaces 469;
startFace 1041658;
}
motorBike_frame:016%16
{
type wall;
nFaces 68;
startFace 1042127;
}
motorBike_rr-wh-rim:005-shadow%17
{
type wall;
nFaces 71;
startFace 1042195;
}
motorBike_rr-wh-chain-hub:022%22
{
type wall;
nFaces 141;
startFace 1042266;
}
motorBike_rearseat%24
{
type wall;
nFaces 430;
startFace 1042407;
}
motorBike_frt-fairing%25
{
type wall;
nFaces 626;
startFace 1042837;
}
motorBike_windshield%26
{
type wall;
nFaces 378;
startFace 1043463;
}
motorBike_headlights%27
{
type wall;
nFaces 161;
startFace 1043841;
}
motorBike_driversseat%28
{
type wall;
nFaces 368;
startFace 1044002;
}
motorBike_rear-body%29
{
type wall;
nFaces 2077;
startFace 1044370;
}
motorBike_fuel-tank%30
{
type wall;
nFaces 912;
startFace 1046447;
}
motorBike_exhaust%31
{
type wall;
nFaces 2392;
startFace 1047359;
}
motorBike_rr-wh-rim%32
{
type wall;
nFaces 1430;
startFace 1049751;
}
motorBike_fr-mud-guard%33
{
type wall;
nFaces 639;
startFace 1051181;
}
motorBike_fr-wh-rim%34
{
type wall;
nFaces 591;
startFace 1051820;
}
motorBike_fr-wh-brake-disk%35
{
type wall;
nFaces 431;
startFace 1052411;
}
motorBike_fr-brake-caliper%36
{
type wall;
nFaces 164;
startFace 1052842;
}
motorBike_fr-wh-tyre%37
{
type wall;
nFaces 1116;
startFace 1053006;
}
motorBike_hbars%38
{
type wall;
nFaces 535;
startFace 1054122;
}
motorBike_fr-forks%39
{
type wall;
nFaces 1140;
startFace 1054657;
}
motorBike_chain%40
{
type wall;
nFaces 474;
startFace 1055797;
}
motorBike_rr-wh-tyre%41
{
type wall;
nFaces 1787;
startFace 1056271;
}
motorBike_square-dial%42
{
type wall;
nFaces 6;
startFace 1058058;
}
motorBike_round-dial%43
{
type wall;
nFaces 17;
startFace 1058064;
}
motorBike_dial-holder%44
{
type wall;
nFaces 87;
startFace 1058081;
}
motorBike_rear-susp%45
{
type wall;
nFaces 1786;
startFace 1058168;
}
motorBike_rear-brake-lights%46
{
type wall;
nFaces 53;
startFace 1059954;
}
motorBike_rear-light-bracket%47
{
type wall;
nFaces 163;
startFace 1060007;
}
motorBike_frame%48
{
type wall;
nFaces 2040;
startFace 1060170;
}
motorBike_rear-mud-guard%49
{
type wall;
nFaces 663;
startFace 1062210;
}
motorBike_rear-susp-spring-damp%50
{
type wall;
nFaces 107;
startFace 1062873;
}
motorBike_fairing-inner-plate%51
{
type wall;
nFaces 445;
startFace 1062980;
}
motorBike_clutch-housing%52
{
type wall;
nFaces 970;
startFace 1063425;
}
motorBike_radiator%53
{
type wall;
nFaces 40;
startFace 1064395;
}
motorBike_water-pipe%54
{
type wall;
nFaces 104;
startFace 1064435;
}
motorBike_water-pump%55
{
type wall;
nFaces 74;
startFace 1064539;
}
motorBike_engine%56
{
type wall;
nFaces 2389;
startFace 1064613;
}
motorBike_rear-shock-link%57
{
type wall;
nFaces 25;
startFace 1067002;
}
motorBike_rear-brake-fluid-pot-bracket%58
{
type wall;
nFaces 44;
startFace 1067027;
}
motorBike_rear-brake-fluid-pot%59
{
type wall;
nFaces 53;
startFace 1067071;
}
motorBike_footpeg%60
{
type wall;
nFaces 86;
startFace 1067124;
}
motorBike_rr-wh-chain-hub%61
{
type wall;
nFaces 122;
startFace 1067210;
}
motorBike_rear-brake-caliper%62
{
type wall;
nFaces 142;
startFace 1067332;
}
motorBike_rider-helmet%65
{
type wall;
nFaces 583;
startFace 1067474;
}
motorBike_rider-visor%66
{
type wall;
nFaces 95;
startFace 1068057;
}
motorBike_rider-boots%67
{
type wall;
nFaces 1025;
startFace 1068152;
}
motorBike_rider-gloves%68
{
type wall;
nFaces 319;
startFace 1069177;
}
motorBike_rider-body%69
{
type wall;
nFaces 4555;
startFace 1069496;
}
motorBike_frame:0%70
{
type wall;
nFaces 37;
startFace 1074051;
}
motorBike_frt-fairing:001-shadow%74
{
type wall;
nFaces 3306;
startFace 1074088;
}
motorBike_windshield-shadow%75
{
type wall;
nFaces 239;
startFace 1077394;
}
motorBike_fr-mud-guard-shadow%81
{
type wall;
nFaces 332;
startFace 1077633;
}
motorBike_fr-wh-brake-disk-shadow%83
{
type wall;
nFaces 182;
startFace 1077965;
}
motorBike_rear-mud-guard-shadow%84
{
type wall;
nFaces 387;
startFace 1078147;
}
motorBike_rear-susp-spring-damp-shadow%85
{
type wall;
nFaces 41;
startFace 1078534;
}
motorBike_radiator-shadow%86
{
type wall;
nFaces 21;
startFace 1078575;
}
motorBike_rear-shock-link-shadow%87
{
type wall;
nFaces 10;
startFace 1078596;
}
motorBike_rear-brake-fluid-pot-bracket-shadow%88
{
type wall;
nFaces 22;
startFace 1078606;
}
motorBike_rr-wh-chain-hub-shadow%89
{
type wall;
nFaces 53;
startFace 1078628;
}
)
// ************************************************************************* //

View File

@ -22,7 +22,7 @@ startTime 0;
stopAt endTime; stopAt endTime;
endTime 1000; endTime 500;
deltaT 1; deltaT 1;

View File

@ -16,14 +16,12 @@ FoamFile
ddtSchemes ddtSchemes
{ {
default steadyState; default steadyState;
} }
gradSchemes gradSchemes
{ {
default Gauss linear; default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
} }
divSchemes divSchemes
@ -37,7 +35,7 @@ divSchemes
laplacianSchemes laplacianSchemes
{ {
default Gauss linear limited 0.333; default Gauss linear corrected;
} }
interpolationSchemes interpolationSchemes
@ -47,7 +45,7 @@ interpolationSchemes
snGradSchemes snGradSchemes
{ {
default limited 0.333; default corrected;
} }
fluxRequired fluxRequired

View File

@ -1,21 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class vectorField;
location "constant";
object reactingCloud1Axes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
(
(0 0 -1)
(0 0 -1)
)
// ************************************************************************* //

View File

@ -1,21 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class vectorField;
location "constant";
object reactingCloud1Positions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
(
(0.3 0.35 1.45)
(0.6 0.35 1.45)
)
// ************************************************************************* //

View File

@ -120,8 +120,11 @@ subModels
{ {
SOI 0.000; SOI 0.000;
duration 20.000; duration 20.000;
positionsFile "reactingCloud1Positions"; positionAxis
axesFile "reactingCloud1Axes"; (
(0.3 0.35 1.45) (0 0 -1)
(0.6 0.35 1.45) (0 0 -1)
);
massTotal 10; massTotal 10;
parcelsPerInjector 20000; parcelsPerInjector 20000;
parcelsPerSecond 500; parcelsPerSecond 500;

View File

@ -1,21 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class vectorField;
location "constant";
object reactingCloud1Axes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
(
(0 0 -1)
(0 0 -1)
)
// ************************************************************************* //

View File

@ -1,21 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class vectorField;
location "constant";
object reactingCloud1Positions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
(
(0.3 0.35 1.45)
(0.6 0.35 1.45)
)
// ************************************************************************* //

View File

@ -120,8 +120,11 @@ subModels
{ {
SOI 0.000; SOI 0.000;
duration 20.000; duration 20.000;
positionsFile "reactingCloud1Positions"; positionAxis
axesFile "reactingCloud1Axes"; (
(0.3 0.35 1.45) (0 0 -1)
(0.6 0.35 1.45) (0 0 -1)
);
massTotal 10; massTotal 10;
parcelsPerInjector 20000; parcelsPerInjector 20000;
parcelsPerSecond 500; parcelsPerSecond 500;