mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>?
|
||||
}
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
);
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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&)
|
||||
{}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
(
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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, \
|
||||
|
||||
@ -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, \
|
||||
|
||||
@ -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, \
|
||||
|
||||
@ -70,7 +70,7 @@ class particleForces
|
||||
const fvMesh& mesh_;
|
||||
|
||||
//- The particleForces dictionary
|
||||
const dictionary& dict_;
|
||||
const dictionary dict_;
|
||||
|
||||
//- Gravity
|
||||
const vector g_;
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -26,7 +26,6 @@ Class
|
||||
|
||||
Description
|
||||
Manual injection
|
||||
|
||||
- User specifies
|
||||
- Total mass to inject
|
||||
- Parcel positions in file @c positionsFile
|
||||
|
||||
@ -26,7 +26,6 @@ Class
|
||||
|
||||
Description
|
||||
Patch injection
|
||||
|
||||
- User specifies
|
||||
- Total mass to inject
|
||||
- Name of patch
|
||||
|
||||
@ -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&);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>&);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -56,6 +56,7 @@ namespace Foam
|
||||
|
||||
|
||||
//- Private class for finding nearest
|
||||
// Comprising:
|
||||
// - global index
|
||||
// - sqr(distance)
|
||||
typedef Tuple2<scalar, label> nearInfo;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
9
tutorials/incompressible/simpleFoam/motorBike/Allclean
Executable file
9
tutorials/incompressible/simpleFoam/motorBike/Allclean
Executable 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
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
)
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -22,7 +22,7 @@ startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 1000;
|
||||
endTime 500;
|
||||
|
||||
deltaT 1;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
)
|
||||
// ************************************************************************* //
|
||||
@ -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)
|
||||
)
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
)
|
||||
// ************************************************************************* //
|
||||
@ -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)
|
||||
)
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user