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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,7 +39,7 @@ Description
to Cavitation Prediction,”
Computers and Fluids,
29(8):849-875, 2000.
@verbatim
@endverbatim
SourceFiles
Kunz.C

View File

@ -2,7 +2,7 @@
========Merkle= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,7 @@ Description
"Computational modeling of the dynamics of sheet cavitation",
in Proceedings Third International Symposium on Cavitation
Grenoble, France 1998.
@verbatim
@endverbatim
SourceFiles
Merkle.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,7 @@ Description
"Physical and Numerical Modeling of Unsteady Cavitation Dynamics",
Proc. 4th International Conference on Multiphase Flow,
New Orleans, U.S.A., 2001.
@verbatim
@endverbatim
SourceFiles
SchnerrSauer.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,9 +30,9 @@ Description
- create baffles in original mesh with directMappedWall patches
- if extruding boundary faces:
- 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
(nonuniformTransform)cyclic <zoneA>_<zoneB>
(nonuniformTransform)cyclic \<zoneA\>_\<zoneB\>
- extrudes into master direction (i.e. away from the owner cell
if flipMap is false)
- not parallel
@ -106,7 +106,7 @@ becomes
Usage
- extrudeToRegionMesh <regionName> <faceZones> <thickness>
- extrudeToRegionMesh \<regionName\> \<faceZones\> \<thickness\>
@param \<regionName\> \n
Name of mesh to create.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,7 +39,8 @@ template<class Type>
void MapConsistentVolFields
(
const IOobjectList& objects,
const meshToMesh& meshToMeshInterp
const meshToMesh& meshToMeshInterp,
const meshToMesh::order& mapOrder
)
{
const fvMesh& meshSource = meshToMeshInterp.fromMesh();
@ -83,12 +84,7 @@ void MapConsistentVolFields
);
// Interpolate field
meshToMeshInterp.interpolate
(
fieldTarget,
fieldSource,
meshToMesh::INTERPOLATE
);
meshToMeshInterp.interpolate(fieldTarget, fieldSource, mapOrder);
// Write field
fieldTarget.write();
@ -101,11 +97,7 @@ void MapConsistentVolFields
GeometricField<Type, fvPatchField, volMesh> fieldTarget
(
fieldTargetIOobject,
meshToMeshInterp.interpolate
(
fieldSource,
meshToMesh::INTERPOLATE
)
meshToMeshInterp.interpolate(fieldSource, mapOrder)
);
// Write field

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,7 +39,8 @@ template<class Type>
void MapVolFields
(
const IOobjectList& objects,
const meshToMesh& meshToMeshInterp
const meshToMesh& meshToMeshInterp,
const meshToMesh::order& mapOrder
)
{
const fvMesh& meshSource = meshToMeshInterp.fromMesh();
@ -83,12 +84,7 @@ void MapVolFields
);
// Interpolate field
meshToMeshInterp.interpolate
(
fieldTarget,
fieldSource,
meshToMesh::INTERPOLATE
);
meshToMeshInterp.interpolate(fieldTarget, fieldSource, mapOrder);
// Write field
fieldTarget.write();

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,7 +45,8 @@ Description
void mapConsistentMesh
(
const fvMesh& meshSource,
const fvMesh& meshTarget
const fvMesh& meshTarget,
const meshToMesh::order& mapOrder
)
{
// Create the interpolation scheme
@ -61,11 +62,16 @@ void mapConsistentMesh
// Map volFields
// ~~~~~~~~~~~~~
MapConsistentVolFields<scalar>(objects, meshToMeshInterp);
MapConsistentVolFields<vector>(objects, meshToMeshInterp);
MapConsistentVolFields<sphericalTensor>(objects, meshToMeshInterp);
MapConsistentVolFields<symmTensor>(objects, meshToMeshInterp);
MapConsistentVolFields<tensor>(objects, meshToMeshInterp);
MapConsistentVolFields<scalar>(objects, meshToMeshInterp, mapOrder);
MapConsistentVolFields<vector>(objects, meshToMeshInterp, mapOrder);
MapConsistentVolFields<sphericalTensor>
(
objects,
meshToMeshInterp,
mapOrder
);
MapConsistentVolFields<symmTensor>(objects, meshToMeshInterp, mapOrder);
MapConsistentVolFields<tensor>(objects, meshToMeshInterp, mapOrder);
}
{
@ -98,7 +104,8 @@ void mapSubMesh
const fvMesh& meshSource,
const fvMesh& meshTarget,
const HashTable<word>& patchMap,
const wordList& cuttingPatches
const wordList& cuttingPatches,
const meshToMesh::order& mapOrder
)
{
// Create the interpolation scheme
@ -120,11 +127,11 @@ void mapSubMesh
// Map volFields
// ~~~~~~~~~~~~~
MapVolFields<scalar>(objects, meshToMeshInterp);
MapVolFields<vector>(objects, meshToMeshInterp);
MapVolFields<sphericalTensor>(objects, meshToMeshInterp);
MapVolFields<symmTensor>(objects, meshToMeshInterp);
MapVolFields<tensor>(objects, meshToMeshInterp);
MapVolFields<scalar>(objects, meshToMeshInterp, mapOrder);
MapVolFields<vector>(objects, meshToMeshInterp, mapOrder);
MapVolFields<sphericalTensor>(objects, meshToMeshInterp, mapOrder);
MapVolFields<symmTensor>(objects, meshToMeshInterp, mapOrder);
MapVolFields<tensor>(objects, meshToMeshInterp, mapOrder);
}
{
@ -155,7 +162,8 @@ void mapSubMesh
void mapConsistentSubMesh
(
const fvMesh& meshSource,
const fvMesh& meshTarget
const fvMesh& meshTarget,
const meshToMesh::order& mapOrder
)
{
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",
"specify the source time"
);
argList::addOption
(
"sourceRegion",
"word",
"specify the source region"
);
argList::addOption
(
"targetRegion",
"word",
"specify the target region"
);
argList::addBoolOption
(
"parallelSource",
@ -255,6 +282,12 @@ int main(int argc, char *argv[])
"consistent",
"source and target geometry and boundary conditions identical"
);
argList::addOption
(
"mapMethod",
"word",
"specify the mapping method"
);
argList args(argc, argv);
@ -270,13 +303,53 @@ int main(int argc, char *argv[])
const fileName rootDirSource = casePath.path();
const fileName caseDirSource = casePath.name();
Info<< "Source: " << rootDirSource << " " << caseDirSource << nl
<< "Target: " << rootDirTarget << " " << caseDirTarget << endl;
Info<< "Source: " << rootDirSource << " " << caseDirSource << 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 parallelTarget = args.optionFound("parallelTarget");
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"
HashTable<word> patchMap;
@ -323,7 +396,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
targetRegion,
runTimeTarget.timeName(),
runTimeTarget
)
@ -348,7 +421,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
sourceRegion,
runTimeSource.timeName(),
runTimeSource
)
@ -358,11 +431,18 @@ int main(int argc, char *argv[])
if (consistent)
{
mapConsistentSubMesh(meshSource, meshTarget);
mapConsistentSubMesh(meshSource, meshTarget, mapOrder);
}
else
{
mapSubMesh(meshSource, meshTarget, patchMap, cuttingPatches);
mapSubMesh
(
meshSource,
meshTarget,
patchMap,
cuttingPatches,
mapOrder
);
}
}
}
@ -390,7 +470,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
sourceRegion,
runTimeSource.timeName(),
runTimeSource
)
@ -413,7 +493,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
targetRegion,
runTimeTarget.timeName(),
runTimeTarget
)
@ -423,7 +503,7 @@ int main(int argc, char *argv[])
if (consistent)
{
mapConsistentSubMesh(meshSource, meshTarget);
mapConsistentSubMesh(meshSource, meshTarget, mapOrder);
}
else
{
@ -432,7 +512,8 @@ int main(int argc, char *argv[])
meshSource,
meshTarget,
patchMap,
addProcessorPatches(meshTarget, cuttingPatches)
addProcessorPatches(meshTarget, cuttingPatches),
mapOrder
);
}
}
@ -494,7 +575,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
sourceRegion,
runTimeSource.timeName(),
runTimeSource
)
@ -529,7 +610,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
targetRegion,
runTimeTarget.timeName(),
runTimeTarget
)
@ -544,7 +625,12 @@ int main(int argc, char *argv[])
{
if (consistent)
{
mapConsistentSubMesh(meshSource, meshTarget);
mapConsistentSubMesh
(
meshSource,
meshTarget,
mapOrder
);
}
else
{
@ -553,7 +639,8 @@ int main(int argc, char *argv[])
meshSource,
meshTarget,
patchMap,
addProcessorPatches(meshTarget, cuttingPatches)
addProcessorPatches(meshTarget, cuttingPatches),
mapOrder
);
}
}
@ -571,7 +658,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
sourceRegion,
runTimeSource.timeName(),
runTimeSource
)
@ -581,7 +668,7 @@ int main(int argc, char *argv[])
(
IOobject
(
fvMesh::defaultRegion,
targetRegion,
runTimeTarget.timeName(),
runTimeTarget
)
@ -592,11 +679,18 @@ int main(int argc, char *argv[])
if (consistent)
{
mapConsistentMesh(meshSource, meshTarget);
mapConsistentMesh(meshSource, meshTarget, mapOrder);
}
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
# \\ / O peration |
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
# \\/ M anipulation |
#-------------------------------------------------------------------------------
# License

View File

@ -2,7 +2,7 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
# \\/ M anipulation |
# -----------------------------------------------------------------------------
# License
@ -57,7 +57,7 @@ BEGIN {
# start comment block
if (state == 1)
{
printf "/*!\n"
printf "/*! "
state = 2
}
@ -79,7 +79,7 @@ BEGIN {
# end comment block
if (state == 2)
{
printf "*/\n"
printf "*/ "
}
state = 0
print

View File

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

View File

@ -1104,7 +1104,7 @@ TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# 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
# 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
# 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
# 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
# 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
# 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
# Doxygen selects the parser to use depending on the extension of the files it parses.
# With this tag you can assign which parser to use for a given extension.
# Doxygen has a built-in mapping, but you can override or extend it using this tag.
# The format is ext=language, where ext is a file extension, and language is one of
# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
# .inc files as Fortran files (default 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.
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension,
# and language is one of the parsers supported by doxygen: IDL, Java,
# Javascript, C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,
# C++. For instance to make doxygen treat .inc files as Fortran files (default
# 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 =
@ -238,10 +240,10 @@ CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
# For Microsoft's IDL there are propget and propput attributes to indicate getter
# and setter methods for a property. Setting this option to YES (the default)
# will make doxygen to replace the get and set methods by a property in the
# documentation. This will only work if the methods are indeed getting or
# For Microsoft's IDL there are propget and propput attributes to indicate
# getter and setter methods for a property. Setting this option to YES (the
# default) will make doxygen to replace the get and set methods by a property in
# 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
# methods anyway, you should set this option to NO.
@ -411,7 +413,12 @@ SORT_MEMBER_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
@ -505,12 +512,12 @@ SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
# doxygen. The layout file controls the global structure of the generated output files
# in an output format independent way. The create the layout file that represents
# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
# file name after the option, if omitted DoxygenLayout.xml will be used as the name
# of the layout file.
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# by doxygen. The layout file controls the global structure of the generated
# output files in an output format independent way. The create the layout file
# that represents doxygen's defaults, run doxygen with the -l option. You can
# optionally specify a file name after the option, if omitted DoxygenLayout.xml
# will be used as the name of the layout file.
LAYOUT_FILE =
@ -581,7 +588,9 @@ WARN_LOGFILE =
# limit input for testing purposes
INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global \
$(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
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@ -836,15 +845,15 @@ HTML_ALIGN_MEMBERS = YES
HTML_DYNAMIC_SECTIONS = NO
# If the GENERATE_DOCSET tag is set to YES, additional index files
# will be generated that can be used as input for Apple's Xcode 3
# integrated development environment, introduced with OSX 10.5 (Leopard).
# To create a documentation set, doxygen will generate a Makefile in the
# HTML output directory. Running make will produce the docset in that
# directory and running "make install" will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
# it at startup.
# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
# environment, introduced with OSX 10.5 (Leopard). To create a documentation
# set, doxygen will generate a Makefile in the HTML output directory. Running
# make will produce the docset in that directory and running "make install" will
# install the docset in ~/Library/Developer/Shared/Documentation/DocSets so that
# Xcode will find it at startup. See
# http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more
# information.
GENERATE_DOCSET = NO
@ -906,10 +915,10 @@ BINARY_TOC = NO
TOC_EXPAND = NO
# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
# are set, an additional index file will be generated that can be used as input for
# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
# HTML documentation.
# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
# (.qch) of the generated HTML documentation.
GENERATE_QHP = NO
@ -931,20 +940,23 @@ QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
# For more information please see
# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
# add. For more information please see
# http://doc.trolltech.com/qthelpproject.html#custom-filters
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
# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom
# 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 =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
# filter section matches.
# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. <a
# href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help
# Project / Filter Attributes</a>.
QHP_SECT_FILTER_ATTRS =
@ -955,13 +967,14 @@ QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
# will be generated, which together with the HTML files, form an Eclipse help
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
# generated, which together with the HTML files, form an Eclipse help
# 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
# 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 ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears.
# the directory within the plugins directory should be the same as the
# ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the
# help appears.
GENERATE_ECLIPSEHELP = NO
@ -1011,16 +1024,23 @@ TREEVIEW_WIDTH = 250
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
# 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
# typically be disabled. For large projects the javascript based search engine
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
# the HTML output. The underlying search engine uses javascript 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 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
# 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
# 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.
# 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 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
# old default
@ -1105,7 +1125,9 @@ LATEX_BATCHMODE = 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
@ -1353,7 +1375,7 @@ TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# 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
# in the class index. If set to NO only the inherited external classes
@ -1408,8 +1430,8 @@ HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
# 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
# font does not include all possible unicode characters however, so when you need
# directory and reference it in all dot files that doxygen generates. This font
# 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
# 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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -21,7 +21,8 @@ License
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
@file Foam::addToGlobalFunctionSelectionTable
Global
Foam::addToGlobalFunctionSelectionTable
Description
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
#define addNamedToGlobalFunctionSelectionTable\
(memberFunction,argNames,lookup,functionPtr) \
\
/* Add to the table, find by lookup name */ \
add##memberFunction##argNames##GlobalMemberFunctionToTable \
add_##lookup##_##memberFunction##argNames##GlobalMemberFunctionTo##Table_\
add_##lookup##_##memberFunction##argNames##GlobalMemberFunctionTo##Table_ \
(#lookup, functionPtr)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -90,7 +90,8 @@ fileName cwd();
// else return false
bool chDir(const fileName& dir);
//- Search for @em name in the following hierarchy:
//- Search for @em name
// in the following hierarchy:
// -# personal settings:
// - ~/.OpenFOAM/\<VERSION\>/
// <em>for version-specific files</em>

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::interpolationTable
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 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
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::DiagonalMatrix<Type>
Foam::DiagonalMatrix
Description
DiagonalMatrix<Type> is a 2D diagonal matrix of objects

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -122,6 +122,7 @@ public:
inline linePointRef line(const pointField&) const;
//- compare edges
// Returns:
// - 0: different
// - +1: identical
// - -1: same edge, but different orientation

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -307,6 +307,7 @@ public:
inline edge faceEdge(const label n) const;
//- Return the edge direction on the face
// Returns:
// - 0: edge not found on the face
// - +1: forward (counter-clockwise) on the face
// - -1: reverse (clockwise) on the face

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -201,12 +201,14 @@ public:
inline edge faceEdge(const label n) const;
//- Return the edge direction on the face
// Returns:
// - +1: forward (counter-clockwise) on the face
// - -1: reverse (clockwise) on the face
// - 0: edge not found on the face
inline int edgeDirection(const edge&) const;
//- compare triFaces
// Returns:
// - 0: different
// - +1: identical
// - -1: same face, but different orientation

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -415,6 +415,7 @@ public:
// Check
//- Calculate surface type formed by patch.
// Types:
// - all edges have two neighbours (manifold)
// - some edges have more than two neighbours (illegal)
// - other (open)

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -134,7 +134,8 @@ public:
}
//- compare Pairs
//- Compare Pairs
// Returning:
// - 0: different
// - +1: identical
// - -1: same pair, but reversed order

View File

@ -27,7 +27,7 @@ Class
Description
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
<entryName> constant <value>
@endverbatim

View File

@ -27,7 +27,7 @@ Class
Description
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
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
<entryName> table

View File

@ -26,7 +26,7 @@ Class
Description
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
@verbatim

View File

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

View File

@ -49,21 +49,21 @@ namespace Foam
//- An optimized version of Hasher
// @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
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
// @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
// on output, the primary hash value
// @param[in] hash1 - the previous hash, or an arbitrary value
// on output, the secondary hash value
unsigned HasherDual
(
const uint32_t*,
size_t len,
const uint32_t* data,
size_t length,
unsigned& hash1,
unsigned& hash2
);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -281,7 +281,8 @@ public:
// Point merging
//- Find topologically&geometrically shared points.
//- Find topologically and geometrically shared points.
//
// - should only be called for parallel correct mesh
// (since uses mesh.globalData)
// - returns Map from point to master point (all in mesh point
@ -293,6 +294,7 @@ public:
);
//- Helper: Merge points.
//
// - Gets map from point to destination point
// - Removes all points that don't map to themselves
// - Modifies all faces that use the points to be removed.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -382,6 +382,7 @@ public:
) const;
//- Like consistentRefinement but slower:
//
// - specify number of cells between consecutive refinement levels
// (consistentRefinement equivalent to 1)
// - specify max level difference between point-connected cells.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -36,14 +36,11 @@ License
namespace Foam
{
defineTypeNameAndDebug(removeCells, 0);
defineTypeNameAndDebug(removeCells, 0);
}
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
// Remove count of elements of f.
void Foam::removeCells::uncount
(
const labelList& f,
@ -59,7 +56,6 @@ void Foam::removeCells::uncount
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from mesh
Foam::removeCells::removeCells
(
const polyMesh& mesh,
@ -73,10 +69,6 @@ Foam::removeCells::removeCells
// * * * * * * * * * * * * * * * 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
(
const labelList& cellLabels

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -94,7 +94,8 @@ public:
// Topology changes
//- Get labels of exposed faces. These are
//- Get labels of exposed faces.
// These are
// - internal faces that become boundary faces
// - coupled faces that become uncoupled (since one of the sides
// gets deleted)
@ -114,7 +115,6 @@ public:
//- Force recalculation of locally stored data on topological change
void updateMesh(const mapPolyMesh&)
{}
};

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -178,7 +178,8 @@ public:
// 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
// - mastercell for each region. This is the lowest numbered cell
// of all cells that get merged.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::PorousZones<ZoneType>
Foam::PorousZones
Description
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 |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -42,6 +42,16 @@ SourceFiles
fvMesh.C
fvMeshGeometry.C
See Also
hmm
Usage
oeuoeuoeu
ToDo
oeuoeuoeu
oeueouoeu
\*---------------------------------------------------------------------------*/
#ifndef fvMesh_H

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -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>
static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
(
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>
static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
(

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,7 +31,6 @@ License
#include "KinematicCloud.H"
#include "ConeInjection.H"
#include "ConeInjectionMP.H"
#include "FieldActivatedInjection.H"
#include "InflationInjection.H"
#include "KinematicLookupTableInjection.H"
@ -53,12 +52,6 @@ License
ParcelType \
); \
makeInjectionModelType \
( \
ConeInjectionMP, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \
FieldActivatedInjection, \
KinematicCloud, \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,7 +32,6 @@ License
#include "KinematicCloud.H"
#include "ConeInjection.H"
#include "ConeInjectionMP.H"
#include "FieldActivatedInjection.H"
#include "ManualInjection.H"
#include "NoInjection.H"
@ -52,12 +51,6 @@ License
ParcelType \
); \
makeInjectionModelType \
( \
ConeInjectionMP, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \
FieldActivatedInjection, \
KinematicCloud, \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,7 +31,6 @@ License
#include "KinematicCloud.H"
#include "ConeInjection.H"
#include "ConeInjectionMP.H"
#include "FieldActivatedInjection.H"
#include "ManualInjection.H"
#include "NoInjection.H"
@ -51,12 +50,6 @@ License
ParcelType \
); \
makeInjectionModelType \
( \
ConeInjectionMP, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \
FieldActivatedInjection, \
KinematicCloud, \

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,14 +25,12 @@ Class
Foam::ConeInjection
Description
Cone injection
Multi-point cone injection model
- User specifies
- time of start of injection
- injector position
- direction (along injection axis)
- parcel flow rate
- parcel velocity
- list of injector positions and directions (along injection axes)
- number of parcels to inject per injector
- parcel velocities
- inner and outer cone angles
- Parcel diameters obtained by distribution model model
@ -46,6 +44,7 @@ SourceFiles
#include "InjectionModel.H"
#include "distributionModel.H"
#include "vectorList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -68,26 +67,23 @@ class ConeInjection
{
// 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]
const scalar duration_;
//- Injector position [m]
vector position_;
//- 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_;
//- Number of parcels to introduce per injector
const label parcelsPerInjector_;
//- Flow rate profile relative to SOI []
const autoPtr<DataEntry<scalar> > flowRateProfile_;
@ -104,14 +100,17 @@ class ConeInjection
//- 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
vector tanVec1_;
vectorList tanVec1_;
//- Second tangential vector
vector tanVec2_;
vectorList tanVec2_;
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
Manual injection
- User specifies
- Total mass to inject
- Parcel positions in file @c positionsFile

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -130,18 +130,21 @@ public:
inline label end() const;
//- Compare the given start and end points with this curve
// Return:
// - 0: different
// - +1: identical
// - -1: same edge, but different orientation
inline int compare(const curvedEdge&) const;
//- Compare the given start and end points with this curve
// Return:
// - 0: different
// - +1: identical
// - -1: same edge, but different orientation
inline int compare(const edge&) const;
//- Compare the given start and end points with this curve
// Return:
// - 0: different
// - +1: identical
// - -1: same edge, but different orientation
@ -159,6 +162,7 @@ public:
void operator=(const curvedEdge&);
// Ostream operator
friend Ostream& operator<<(Ostream&, const curvedEdge&);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -107,6 +107,7 @@ public:
//- Helper class for finding nearest
// Nearest:
// - point+local index
// - sqr(distance)
// - processor

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -511,7 +511,8 @@ public:
// Queries
//- Calculate nearest point on nearest shape. Returns
//- Calculate nearest point on nearest shape.
// Returns
// - bool : any point found nearer than nearestDistSqr
// - label: index in shapes
// - point: actual nearest point found
@ -532,7 +533,8 @@ public:
point& nearestPoint
) const;
//- Find nearest to line. Returns
//- Find nearest to line.
// Returns
// - bool : any point found?
// - label: index in shapes
// - point: actual nearest point found
@ -621,10 +623,10 @@ public:
bool write(Ostream& os) const;
// IOstream Operators
friend Ostream& operator<< <Type>(Ostream&, const indexedOctree<Type>&);
};

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -195,6 +195,7 @@ public:
bool pointInCell(const point& p, const label celli) const;
//- Find nearest cell in terms of cell centre.
// Options:
// - use octree
// - use linear search
// - if seed is provided walk. (uses findNearestCellWalk;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -131,7 +131,8 @@ public:
// Single point queries.
//- Calculate nearest point on surface. Returns
//- Calculate nearest point on surface.
// Returns
// - bool : any point found nearer than nearestDistSqr
// - label: relevant index in surface (=face 0..5)
// - point: actual nearest point found
@ -141,7 +142,8 @@ public:
const scalar nearestDistSqr
) const;
//- Calculate nearest point on edge. Returns
//- Calculate nearest point on edge.
// Returns
// - bool : any point found nearer than nearestDistSqr
// - label: relevant index in surface(=?)
// - point: actual nearest point found
@ -151,7 +153,8 @@ public:
const scalar nearestDistSqr
) const;
//- Find nearest to segment. Returns
//- Find nearest to segment.
// Returns
// - bool : any point found?
// - label: relevant index in shapes (=face 0..5)
// - point: actual nearest point found
@ -241,7 +244,6 @@ public:
notImplemented("searchableBox::writeData(Ostream&) const");
return false;
}
};

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -26,7 +26,6 @@ Class
Description
Contains information about location on a triSurface:
- pointIndexHit:
- location
- bool: hit/miss

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -518,8 +518,7 @@ public:
// Tracking
//- Test point on plane of triangle to see if on edge or point
// or inside.
//- Test point on plane of triangle to see if on edge or point or inside
static surfaceLocation classify
(
const triSurface&,
@ -527,7 +526,8 @@ public:
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
// - 2. reached edge (normal situation)
// - 3. reached end of surface (edge on single face)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::LESmodels::SpalartAllmaras
Foam::incompressible::LESModels::SpalartAllmaras
Description
SpalartAllmaras DES (SA + LES) turbulence model for incompressible flows

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::LESmodels::SpalartAllmarasIDDES
Foam::incompressible::LESModels::SpalartAllmarasIDDES
Description
SpalartAllmarasIDDES LES turbulence model for incompressible flows

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::LESmodels::kOmegaSSTSAS
Foam::incompressible::LESModels::kOmegaSSTSAS
Description
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
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
cp system/fvSolution.org system/fvSolution
cp -r 0.org 0 > /dev/null 2>&1
runApplication blockMesh
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;
endTime 1000;
endTime 500;
deltaT 1;

View File

@ -22,8 +22,6 @@ ddtSchemes
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
@ -37,7 +35,7 @@ divSchemes
laplacianSchemes
{
default Gauss linear limited 0.333;
default Gauss linear corrected;
}
interpolationSchemes
@ -47,7 +45,7 @@ interpolationSchemes
snGradSchemes
{
default limited 0.333;
default corrected;
}
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;
duration 20.000;
positionsFile "reactingCloud1Positions";
axesFile "reactingCloud1Axes";
positionAxis
(
(0.3 0.35 1.45) (0 0 -1)
(0.6 0.35 1.45) (0 0 -1)
);
massTotal 10;
parcelsPerInjector 20000;
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;
duration 20.000;
positionsFile "reactingCloud1Positions";
axesFile "reactingCloud1Axes";
positionAxis
(
(0.3 0.35 1.45) (0 0 -1)
(0.6 0.35 1.45) (0 0 -1)
);
massTotal 10;
parcelsPerInjector 20000;
parcelsPerSecond 500;