Merge branch 'master' into pairPatchAgglomeration

This commit is contained in:
sergio
2011-02-14 09:47:05 +00:00
315 changed files with 3930 additions and 10949 deletions

1
.gitignore vendored
View File

@ -42,6 +42,7 @@ linuxming*/
SiCortex*Gcc*/
solaris*Gcc*/
SunOS*Gcc*/
platforms/
# reinstate wmake/rules that might look like build folders
!wmake/rules/*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,7 +30,7 @@ Description
corresponding to PDR basic drag model (\link basic.H \endlink)
The default model coefficients correspond to the following:
@verbatim
\verbatim
PDRkEpsilonCoeffs
{
Cmu 0.09;
@ -41,7 +41,7 @@ Description
sigmaEps 1.3;
Prt 1.0; // only for compressible
}
@endverbatim
\endverbatim
The turbulence source term \f$ G_{R} \f$ appears in the
\f$ \kappa-\epsilon \f$ equation for the generation of turbulence due to

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,7 @@ Class
Description
Simple SCOPEBlendXiEq model for XiEq based on SCOPEXiEqs correlation
with a linear correction function to give a plausible profile for XiEq.
See @link SCOPELaminarFlameSpeed.H @endlink for details on the SCOPE
See \link SCOPELaminarFlameSpeed.H \endlink for details on the SCOPE
laminar flame speed model.
SourceFiles

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,7 @@ Class
Description
This is the equilibrium level of the flame wrinkling generated by
instability. It is a constant (default 2.5). It is used in
@link XiModel.H @endlink.
\link XiModel.H \endlink.
SourceFiles
instability.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,6 +47,8 @@ Description
int main(int argc, char *argv[])
{
argList::noParallel();
#include "setRootCase.H"
#include "createTime.H"
#include "createSingleCellMesh.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,7 +30,7 @@ Description
causing pressure loss as estimated using an adjoint formulation.
References:
@verbatim
\verbatim
"Implementation of a continuous adjoint for topology optimization of
ducted flows"
C. Othmer,
@ -38,7 +38,7 @@ Description
H.G. Weller
AIAA-2007-3947
http://pdf.aiaa.org/preview/CDReadyMCFD07_1379/PV2007_3947.pdf
@endverbatim
\endverbatim
Note that this solver optimises for total pressure loss whereas the
above paper describes the method for optimising power-loss.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,14 +32,14 @@ Description
implicit term in the pressure equation.
Reference:
@verbatim
\verbatim
Kunz, R.F., Boger, D.A., Stinebring, D.R., Chyczewski, Lindau. J.W.,
Gibeling, H.J., Venkateswaran, S., Govindan, T.R.,
“A Preconditioned Implicit Method for Two-Phase Flows with Application
to Cavitation Prediction,”
Computers and Fluids,
29(8):849-875, 2000.
@verbatim
\endverbatim
SourceFiles
Kunz.C

View File

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

View File

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

View File

@ -29,12 +29,12 @@ Description
Plot normal distribution test in gnuplot using:
@verbatim
\verbatim
normalDistribution(mean, sigma, x) = \
sqrt(1.0/(2.0*pi*sigma**2))*exp(-(x - mean)**2.0/(2.0*sigma**2))
plot normalDistribution(8.5, 2.5, x), "Distribution_scalar_test_x" w p
@endverbatim
\endverbatim
\*---------------------------------------------------------------------------*/

View File

@ -70,7 +70,12 @@ int main(int argc, char *argv[])
);
// Exchange data. Apply positional transforms.
globalPointSlavesMap.distribute(transforms, coords, true);
globalPointSlavesMap.distribute
(
transforms,
coords,
mapDistribute::transformPosition()
);
// Print
forAll(slaves, pointI)
@ -127,7 +132,12 @@ int main(int argc, char *argv[])
}
// Exchange data Apply positional transforms.
globalEdgeSlavesMap.distribute(transforms, ec, true);
globalEdgeSlavesMap.distribute
(
transforms,
ec,
mapDistribute::transformPosition()
);
// Print
forAll(slaves, edgeI)
@ -163,82 +173,131 @@ int main(int argc, char *argv[])
}
//// Test: (collocated) point to faces addressing
//{
// const labelListList& globalPointBoundaryFaces =
// globalData.globalPointBoundaryFaces();
// const mapDistribute& globalPointBoundaryFacesMap =
// globalData.globalPointBoundaryFacesMap();
//
// label nBnd = mesh.nFaces()-mesh.nInternalFaces();
//
// pointField fc(globalPointBoundaryFacesMap.constructSize());
// SubList<point>(fc, nBnd).assign
// (
// primitivePatch
// (
// SubList<face>
// (
// mesh.faces(),
// nBnd,
// mesh.nInternalFaces()
// ),
// mesh.points()
// ).faceCentres()
// );
//
// // Exchange data
// globalPointBoundaryFacesMap.distribute(fc);
//
// // Print
// forAll(globalPointBoundaryFaces, pointI)
// {
// const labelList& bFaces = globalPointBoundaryFaces[pointI];
//
// Pout<< "Point:" << pointI
// << " at:" << coupledPatch.localPoints()[pointI]
// << " connected to faces:" << endl;
//
// forAll(bFaces, i)
// {
// Pout<< " " << fc[bFaces[i]] << endl;
// }
// }
//}
//
//
//// Test:(collocated) point to cells addressing
//{
// const labelList& boundaryCells = globalData.boundaryCells();
// const labelListList& globalPointBoundaryCells =
// globalData.globalPointBoundaryCells();
// const mapDistribute& globalPointBoundaryCellsMap =
// globalData.globalPointBoundaryCellsMap();
//
// pointField cc(globalPointBoundaryCellsMap.constructSize());
// forAll(boundaryCells, i)
// {
// cc[i] = mesh.cellCentres()[boundaryCells[i]];
// }
//
// // Exchange data
// globalPointBoundaryCellsMap.distribute(cc);
//
// // Print
// forAll(globalPointBoundaryCells, pointI)
// {
// const labelList& bCells = globalPointBoundaryCells[pointI];
//
// Pout<< "Point:" << pointI
// << " at:" << coupledPatch.localPoints()[pointI]
// << " connected to cells:" << endl;
//
// forAll(bCells, i)
// {
// Pout<< " " << cc[bCells[i]] << endl;
// }
// }
//}
// Test: point to faces addressing
{
const mapDistribute& globalPointBoundaryFacesMap =
globalData.globalPointBoundaryFacesMap();
const labelListList& slaves =
globalData.globalPointBoundaryFaces();
const labelListList& transformedSlaves =
globalData.globalPointTransformedBoundaryFaces();
label nBnd = mesh.nFaces()-mesh.nInternalFaces();
pointField fc(globalPointBoundaryFacesMap.constructSize());
SubList<point>(fc, nBnd).assign
(
primitivePatch
(
SubList<face>
(
mesh.faces(),
nBnd,
mesh.nInternalFaces()
),
mesh.points()
).faceCentres()
);
// Exchange data
globalPointBoundaryFacesMap.distribute
(
transforms,
fc,
mapDistribute::transformPosition()
);
// Print
forAll(slaves, pointI)
{
const labelList& slaveFaces = slaves[pointI];
if (slaveFaces.size() > 0)
{
Pout<< "Master point:" << pointI
<< " at:" << coupledPatch.localPoints()[pointI]
<< " connected to " << slaveFaces.size()
<< " untransformed faces:" << endl;
forAll(slaveFaces, i)
{
Pout<< " " << fc[slaveFaces[i]] << endl;
}
}
const labelList& transformedSlaveFaces = transformedSlaves[pointI];
if (transformedSlaveFaces.size() > 0)
{
Pout<< "Master point:" << pointI
<< " connected to " << transformedSlaveFaces.size()
<< " transformed faces:" << endl;
forAll(transformedSlaveFaces, i)
{
Pout<< " " << fc[transformedSlaveFaces[i]] << endl;
}
}
}
}
// Test: point to cells addressing
{
const labelList& boundaryCells = globalData.boundaryCells();
const mapDistribute& globalPointBoundaryCellsMap =
globalData.globalPointBoundaryCellsMap();
const labelListList& slaves = globalData.globalPointBoundaryCells();
const labelListList& transformedSlaves =
globalData.globalPointTransformedBoundaryCells();
pointField cc(globalPointBoundaryCellsMap.constructSize());
forAll(boundaryCells, i)
{
cc[i] = mesh.cellCentres()[boundaryCells[i]];
}
// Exchange data
globalPointBoundaryCellsMap.distribute
(
transforms,
cc,
mapDistribute::transformPosition()
);
// Print
forAll(slaves, pointI)
{
const labelList& pointCells = slaves[pointI];
if (pointCells.size() > 0)
{
Pout<< "Master point:" << pointI
<< " at:" << coupledPatch.localPoints()[pointI]
<< " connected to " << pointCells.size()
<< " untransformed boundaryCells:" << endl;
forAll(pointCells, i)
{
Pout<< " " << cc[pointCells[i]] << endl;
}
}
const labelList& transformPointCells = transformedSlaves[pointI];
if (transformPointCells.size() > 0)
{
Pout<< "Master point:" << pointI
<< " connected to " << transformPointCells.size()
<< " transformed boundaryCells:" << endl;
forAll(transformPointCells, i)
{
Pout<< " " << cc[transformPointCells[i]] << endl;
}
}
}
}
Info<< "End\n" << endl;

View File

@ -30,12 +30,12 @@ Description
\*---------------------------------------------------------------------------*/
#include "syncTools.H"
#include "argList.H"
#include "polyMesh.H"
#include "Time.H"
#include "Random.H"
#include "PackedList.H"
#include "syncTools.H"
using namespace Foam;
@ -285,7 +285,7 @@ void testSparseData(const polyMesh& mesh, Random& rndGen)
{
// Create some data. Use slightly perturbed positions.
EdgeMap<vector> sparseData;
EdgeMap<point> sparseData;
pointField fullData(mesh.nEdges(), point::max);
const edgeList& edges = allBoundary.edges();
@ -313,13 +313,13 @@ void testSparseData(const polyMesh& mesh, Random& rndGen)
(
mesh,
sparseData,
minEqOp<vector>()
minMagSqrEqOp<point>()
);
syncTools::syncEdgeList
(
mesh,
fullData,
minEqOp<vector>(),
minMagSqrEqOp<point>(),
point::max
);
@ -350,7 +350,7 @@ void testSparseData(const polyMesh& mesh, Random& rndGen)
{
const edge& e = mesh.edges()[meshEdgeI];
EdgeMap<vector>::const_iterator iter = sparseData.find(e);
EdgeMap<point>::const_iterator iter = sparseData.find(e);
if (iter != sparseData.end())
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,16 +31,16 @@ Usage
- foamToStarMesh [OPTION] \n
Reads an OpenFOAM mesh and writes a pro-STAR (v4) bnd/cel/vrt format.
@param -noBnd \n
Suppress writing the @c .bnd file
\param -noBnd \n
Suppress writing the \c .bnd file
@param -scale \<factor\>\n
\param -scale \<factor\>\n
Specify an alternative geometry scaling factor.
The default is @b 1000 (scale @em [m] to @em [mm]).
The default is \b 1000 (scale \em [m] to \em [mm]).
Note
The cellTable information available in the files
@c constant/cellTable and @c constant/polyMesh/cellTableId
\c constant/cellTable and @c constant/polyMesh/cellTableId
will be used if available. Otherwise the cellZones are used when
creating the cellTable information.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,11 +31,11 @@ Usage
- foamToSurface [OPTION] \n
Reads an OpenFOAM mesh and writes the boundaries in a surface format.
@param -scale \<factor\>\n
\param -scale \<factor\>\n
Specify an alternative geometry scaling factor.
Eg, use @b 1000 to scale @em [m] to @em [mm].
Eg, use \b 1000 to scale \em [m] to \em [mm].
@param -tri \n
\param -tri \n
Triangulate surface.
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,7 @@ Description
Work in progress! Handles ascii multiblock (and optionally singleBlock)
format.
By default expects blanking. Use -noBlank if none.
Use -2D @a thickness if 2D.
Use -2D \a thickness if 2D.
Niklas Nordin has experienced a problem with lefthandedness of the blocks.
The code should detect this automatically - see hexBlock::readPoints but

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,14 +31,14 @@ Usage
- star4ToFoam [OPTION] ccmMesh\n
convert pro-STAR mesh to OpenFOAM
@param -ascii \n
\param -ascii \n
Write in ASCII format instead of binary
@param -scale \<factor\>\n
\param -scale \<factor\>\n
Specify an alternative geometry scaling factor.
The default is @b 0.001 (scale @em [mm] to @em [m]).
The default is \b 0.001 (scale \em [mm] to \em [m]).
@param -solids \n
\param -solids \n
Treat any solid cells present just like fluid cells.
The default is to discard them.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -29,7 +29,7 @@ Description
and run tetgen with -f option.
Sample smesh file:
@verbatim
\verbatim
# cube.smesh -- A 10x10x10 cube
8 3
1 0 0 0
@ -49,7 +49,7 @@ Description
4 2 6 7 3 65
0
0
@endverbatim
\endverbatim
Note
- for some reason boundary faces point inwards. I just reverse them

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,20 +28,20 @@ Description
A multi-block mesh generator.
Uses the block mesh description found in
@a constant/polyMesh/blockMeshDict
(or @a constant/\<region\>/polyMesh/blockMeshDict).
\a constant/polyMesh/blockMeshDict
(or \a constant/\<region\>/polyMesh/blockMeshDict).
Usage
- blockMesh [OPTION]
@param -blockTopology \n
\param -blockTopology \n
Write the topology as a set of edges in OBJ format.
@param -region \<name\> \n
\param -region \<name\> \n
Specify an alternative mesh region.
@param -dict \<filename\> \n
\param -dict \<filename\> \n
Specify alternative dictionary for the block mesh description.
\*---------------------------------------------------------------------------*/

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,7 +28,7 @@ Description
Walks from starting edge/face around point on patch.
-# Use in-place: \n
@code
\code
patchPointEdgeCirculator circ(..);
// Walk
@ -38,10 +38,10 @@ Description
++circ;
}
while (circ != circ.end());
@endcode
\endcode
-# Use like STL iterator: \n
@code
\code
patchPointEdgeCirculator circ(..);
for
(
@ -52,7 +52,7 @@ Description
{
Info<< "edge:" << iter.edgeID() << endl;
}
@endcode
\endcode
SourceFiles

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,7 +32,7 @@ Usage
- extrude2DMesh thickness
@param thickness \n
\param thickness \n
Thickness (in metre) of slab.
Note

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,18 +33,18 @@ Usage
for it. Normal behaviour is to have each point become a cell
(1.5 behaviour)
@param -concaveMultiCells
\param -concaveMultiCells
Creates multiple cells for each point on a concave edge. Might limit
the amount of distortion on some meshes.
@param -splitAllFaces
\param -splitAllFaces
Normally only constructs a single face between two cells. This single face
might be too distorted. splitAllFaces will create a single face for every
original cell the face passes through. The mesh will thus have
multiple faces inbetween two cells! (so is not strictly upper-triangular
anymore - checkMesh will complain)
@param -doNotPreserveFaceZones:
\param -doNotPreserveFaceZones:
By default all faceZones are preserved by marking all faces, edges and
points on them as features. The -doNotPreserveFaceZones disables this
behaviour.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -40,7 +40,7 @@ Description
Comparable to running a meshModifier of the form
(if masterPatch is called "M" and slavePatch "S"):
@verbatim
\verbatim
couple
{
type slidingInterface;
@ -52,7 +52,7 @@ Description
slavePatchName S;
typeOfMatch partial or integral
}
@endverbatim
\endverbatim
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,30 +32,30 @@ Usage
- decomposePar [OPTION]
@param -cellDist \n
\param -cellDist \n
Write the cell distribution as a labelList, for use with 'manual'
decomposition method or as a volScalarField for post-processing.
@param -region regionName \n
\param -region regionName \n
Decompose named region. Does not check for existence of processor*.
@param -copyUniform \n
Copy any @a uniform directories too.
\param -copyUniform \n
Copy any \a uniform directories too.
@param -constant \n
\param -constant \n
Override controlDict settings and use constant directory.
@param -fields \n
\param -fields \n
Use existing geometry decomposition and convert fields only.
@param -force \n
Remove any existing @a processor subdirectories before decomposing the
\param -force \n
Remove any existing \a processor subdirectories before decomposing the
geometry.
@param -ifRequired \n
\param -ifRequired \n
Only decompose the geometry if the number of domains has changed from a
previous decomposition. No @a processor subdirectories will be removed
unless the @a -force option is also specified. This option can be used
previous decomposition. No \a processor subdirectories will be removed
unless the \a -force option is also specified. This option can be used
to avoid redundant geometry decomposition (eg, in scripts), but should
be used with caution when the underlying (serial) geometry or the
decomposition method etc. have been changed between decompositions.

View File

@ -32,7 +32,7 @@ Description
Balances mesh and writes new mesh to new time directory.
Can also work like decomposePar:
@verbatim
\verbatim
# Create empty processor directories (have to exist for argList)
mkdir processor0
..
@ -43,7 +43,7 @@ Description
# Distribute
mpirun -np ddd redistributeMeshPar -parallel
@endverbatim
\endverbatim
\*---------------------------------------------------------------------------*/
#include "fvMesh.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,22 +30,22 @@ Usage
- foamToEnsight [OPTION] \n
Translates OpenFOAM data to Ensight format
@param -ascii \n
\param -ascii \n
Write Ensight data in ASCII format instead of "C Binary"
@param -patches patchList \n
\param -patches patchList \n
Specify particular patches to write.
Specifying an empty list suppresses writing the internalMesh.
@param -noPatches \n
\param -noPatches \n
Suppress writing any patches.
@param -faceZones zoneList \n
\param -faceZones zoneList \n
Specify faceZones to write, with wildcards
Note
Parallel support for cloud data is not supported
- writes to @a EnSight directory to avoid collisions with foamToEnsightParts
- writes to \a EnSight directory to avoid collisions with foamToEnsightParts
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,23 +32,23 @@ Usage
- foamToEnsightParts [OPTION] \n
Translates OpenFOAM data to Ensight format
@param -ascii \n
\param -ascii \n
Write Ensight data in ASCII format instead of "C Binary"
@param -noZero \n
\param -noZero \n
Exclude the often incomplete initial conditions.
@param -index \<start\>\n
\param -index \<start\>\n
Ignore the time index contained in the time file and use a
simple indexing when creating the @c Ensight/data/######## files.
simple indexing when creating the \c Ensight/data/######## files.
@param -noMesh \n
\param -noMesh \n
Suppress writing the geometry. Can be useful for converting partial
results for a static geometry.
Note
- no parallel data.
- writes to @a Ensight directory to avoid collisions with foamToEnsight.
- writes to \a Ensight directory to avoid collisions with foamToEnsight.
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,40 +31,40 @@ Usage
- foamToTecplot360 [OPTION]
@param -fields \<names\>\n
\param -fields \<names\>\n
Convert selected fields only. For example,
@verbatim
\verbatim
-fields '( p T U )'
@endverbatim
\endverbatim
The quoting is required to avoid shell expansions and to pass the
information as a single argument.
@param -cellSet \<name\>\n
@param -faceSet \<name\>\n
\param -cellSet \<name\>\n
\param -faceSet \<name\>\n
Restrict conversion to the cellSet, faceSet.
@param -nearCellValue \n
\param -nearCellValue \n
Output cell value on patches instead of patch value itself
@param -noInternal \n
\param -noInternal \n
Do not generate file for mesh, only for patches
@param -noPointValues \n
\param -noPointValues \n
No pointFields
@param -noFaceZones \n
\param -noFaceZones \n
No faceZones
@param -excludePatches \<patchNames\>\n
\param -excludePatches \<patchNames\>\n
Specify patches (wildcards) to exclude. For example,
@verbatim
\verbatim
-excludePatches '( inlet_1 inlet_2 "proc.*")'
@endverbatim
\endverbatim
The quoting is required to avoid shell expansions and to pass the
information as a single argument. The double quotes denote a regular
expression.
@param -useTimeName \n
\param -useTimeName \n
use the time index in the VTK file name instead of the time index
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -40,59 +40,59 @@ Usage
- foamToVTK [OPTION]
@param -ascii \n
\param -ascii \n
Write VTK data in ASCII format instead of binary.
@param -mesh \<name\>\n
\param -mesh \<name\>\n
Use a different mesh name (instead of -region)
@param -fields \<fields\>\n
\param -fields \<fields\>\n
Convert selected fields only. For example,
@verbatim
\verbatim
-fields "( p T U )"
@endverbatim
\endverbatim
The quoting is required to avoid shell expansions and to pass the
information as a single argument.
@param -surfaceFields \n
\param -surfaceFields \n
Write surfaceScalarFields (e.g., phi)
@param -cellSet \<name\>\n
@param -faceSet \<name\>\n
@param -pointSet \<name\>\n
\param -cellSet \<name\>\n
\param -faceSet \<name\>\n
\param -pointSet \<name\>\n
Restrict conversion to the cellSet, faceSet or pointSet.
@param -nearCellValue \n
\param -nearCellValue \n
Output cell value on patches instead of patch value itself
@param -noInternal \n
\param -noInternal \n
Do not generate file for mesh, only for patches
@param -noPointValues \n
\param -noPointValues \n
No pointFields
@param -noFaceZones \n
\param -noFaceZones \n
No faceZones
@param -noLinks \n
\param -noLinks \n
(in parallel) do not link processor files to master
@param poly \n
\param poly \n
write polyhedral cells without tet/pyramid decomposition
@param -allPatches \n
\param -allPatches \n
Combine all patches into a single file
@param -excludePatches \<patchNames\>\n
\param -excludePatches \<patchNames\>\n
Specify patches (wildcards) to exclude. For example,
@verbatim
\verbatim
-excludePatches '( inlet_1 inlet_2 "proc.*")'
@endverbatim
\endverbatim
The quoting is required to avoid shell expansions and to pass the
information as a single argument. The double quotes denote a regular
expression.
@param -useTimeName \n
\param -useTimeName \n
use the time index in the VTK file name instead of the time index
Note
@ -110,7 +110,7 @@ Note
However can have .pvd file format which refers to time simulation
if XML *.vtu files are available:
@verbatim
\verbatim
<?xml version="1.0"?>
<VTKFile type="Collection"
version="0.1"
@ -129,7 +129,7 @@ Note
<DataSet timestep="500" file="pitzDaily_11.vtu"/>
</Collection>
</VTKFile>
@endverbatim
\endverbatim
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,7 +45,7 @@ Description
namespace Foam
{
//! @cond fileScope
//! \cond fileScope
// Extract up to the first non-word characters
inline word getFirstWord(const char* str)
{
@ -64,7 +64,7 @@ namespace Foam
}
}
//! @endcond
//! \endcond
} // End namespace Foam

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,7 +39,7 @@ Description
namespace Foam
{
//! @cond fileScope
//! \cond fileScope
// Extract up to the first non-word characters
inline word getFirstWord(const char* str)
{
@ -58,7 +58,7 @@ namespace Foam
}
}
//! @endcond
//! \endcond
} // End namespace Foam

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,7 +45,7 @@ defineTypeNameAndDebug(Foam::vtkPV3Readers, 0);
namespace Foam
{
//! @cond fileScope
//! \cond fileScope
// Extract up to the first non-word characters
inline word getFirstWord(const char* str)
{
@ -64,7 +64,7 @@ namespace Foam
}
}
//! @endcond
//! \endcond
} // End namespace Foam

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,7 +31,7 @@ Usage
- foamListTimes [OPTION]
@param -processor \n
\param -processor \n
List times from processor0/ directory
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,13 +27,13 @@ Description
Keywords:
@param setFormat : set output format, choice of \n
\param setFormat : set output format, choice of \n
- xmgr
- jplot
- gnuplot
- raw
@param surfaceFormat : surface output format, choice of \n
\param surfaceFormat : surface output format, choice of \n
- null : suppress output
- foamFile : separate points, faces and values file
- dx : DX scalar or vector format
@ -42,7 +42,7 @@ Description
- obj : Wavefron stl. Does not contain values!
- stl : ascii stl. Does not contain values!
@param interpolationScheme : interpolation scheme, choice of \n
\param interpolationScheme : interpolation scheme, choice of \n
- cell : use cell-centre value; constant over cells (default)
- cellPoint : use cell-centre and vertex values
- cellPointFace : use cell-centre, vertex and face values. \n
@ -50,9 +50,9 @@ Description
-# face values determined using the current face interpolation scheme
for the field (linear, limitedLinear, etc.)
@param fields : list of fields to sample
\param fields : list of fields to sample
@param sets : list of sets to sample, choice of \n
\param sets : list of sets to sample, choice of \n
- uniform evenly distributed points on line
- face one point per face intersection
- midPoint one point per cell, inbetween two face intersections
@ -74,7 +74,7 @@ Description
uniform: extra number of sampling points
curve, cloud: list of coordinates
@param surfaces : list of surfaces to sample, choice of \n
\param surfaces : list of surfaces to sample, choice of \n
- plane : values on plane defined by point, normal.
- patch : values on patch.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,7 +30,7 @@ Description
The -noWrite option has no meaning.
The flow type parameter is obtained according to the following equation:
@verbatim
\verbatim
|D| - |Omega|
lambda = -------------
|D| + |Omega|
@ -38,7 +38,7 @@ Description
-1 = rotational flow
0 = simple shear flow
1 = planar extensional flow
@endverbatim
\endverbatim
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -29,10 +29,10 @@ Description
type in the field and polyMesh/boundary files.
Reads dictionaries (fields) and entries to change from a dictionary.
E.g. to make the @em movingWall a @em fixedValue for @em p but all other
@em Walls a zeroGradient boundary condition, the
@c system/changeDictionaryDict would contain the following:
@verbatim
E.g. to make the \em movingWall a \em fixedValue for @em p but all other
\em Walls a zeroGradient boundary condition, the
\c system/changeDictionaryDict would contain the following:
\verbatim
dictionaryReplacement
{
p // field to change
@ -51,13 +51,13 @@ Description
}
}
}
@endverbatim
\endverbatim
Usage
- changeDictionary [OPTION]
@param -literalRE \n
\param -literalRE \n
Do not interpret regular expressions; treat them as any other keyword.

View File

@ -31,7 +31,7 @@ Usage
- foamUpgradeCyclics [OPTION]
@param -test \n
\param -test \n
Suppress writing the updated files with split cyclics
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,7 +31,7 @@ Usage
- foamUpgradeFvSolution [OPTION]
@param -test \n
\param -test \n
Suppress writing the updated fvSolution file
\*---------------------------------------------------------------------------*/

View File

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

View File

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

View File

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

View File

@ -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,13 +30,13 @@ Description
Usage
- surfaceConvert inputFile outputFile [OPTION]
@param -clean \n
\param -clean \n
Perform some surface checking/cleanup on the input surface
@param -scale \<scale\> \n
\param -scale \<scale\> \n
Specify a scaling factor for writing the files
@param -group \n
\param -group \n
Orders faces by region
Note

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,25 +31,25 @@ Description
Usage
- surfaceMeshConvert inputFile outputFile [OPTION]
@param -clean \n
\param -clean \n
Perform some surface checking/cleanup on the input surface.
@param -scaleIn \<scale\> \n
\param -scaleIn \<scale\> \n
Specify a scaling factor when reading files.
@param -scaleOut \<scale\> \n
\param -scaleOut \<scale\> \n
Specify a scaling factor when writing files.
@param -dict \<dictionary\> \n
\param -dict \<dictionary\> \n
Specify an alternative dictionary for constant/coordinateSystems.
@param -from \<coordinateSystem\> \n
\param -from \<coordinateSystem\> \n
Specify a coordinate System when reading files.
@param -to \<coordinateSystem\> \n
\param -to \<coordinateSystem\> \n
Specify a coordinate System when writing files.
@param -tri \n
\param -tri \n
Triangulate surface.
Note

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,19 +31,19 @@ Description
Usage
- surfaceMeshConvertTesting inputFile outputFile [OPTION]
@param -clean \n
\param -clean \n
Perform some surface checking/cleanup on the input surface
@param -orient \n
\param -orient \n
Check face orientation on the input surface
@param -scale \<scale\> \n
\param -scale \<scale\> \n
Specify a scaling factor for writing the files
@param -triSurface \n
\param -triSurface \n
Use triSurface library for input/output
@param -keyed \n
\param -keyed \n
Use keyedSurface for input/output
Note

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,25 +32,25 @@ Description
Usage
- surfaceMeshExport outputFile [OPTION]
@param -clean \n
\param -clean \n
Perform some surface checking/cleanup on the input surface.
@param -name \<name\> \n
\param -name \<name\> \n
Specify an alternative surface name when writing.
@param -scaleIn \<scale\> \n
\param -scaleIn \<scale\> \n
Specify a scaling factor when reading files.
@param -scaleOut \<scale\> \n
\param -scaleOut \<scale\> \n
Specify a scaling factor when writing files.
@param -dict \<dictionary\> \n
\param -dict \<dictionary\> \n
Specify an alternative dictionary for constant/coordinateSystems.
@param -from \<coordinateSystem\> \n
\param -from \<coordinateSystem\> \n
Specify a coordinate system when reading files.
@param -to \<coordinateSystem\> \n
\param -to \<coordinateSystem\> \n
Specify a coordinate system when writing files.
Note

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,25 +32,25 @@ Description
Usage
- surfaceMeshImport inputFile [OPTION]
@param -clean \n
\param -clean \n
Perform some surface checking/cleanup on the input surface.
@param -name \<name\> \n
\param -name \<name\> \n
Specify an alternative surface name when writing.
@param -scaleIn \<scale\> \n
\param -scaleIn \<scale\> \n
Specify a scaling factor when reading files.
@param -scaleOut \<scale\> \n
\param -scaleOut \<scale\> \n
Specify a scaling factor when writing files.
@param -dict \<dictionary\> \n
\param -dict \<dictionary\> \n
Specify an alternative dictionary for constant/coordinateSystems.
@param -from \<coordinateSystem\> \n
\param -from \<coordinateSystem\> \n
Specify a coordinate system when reading files.
@param -to \<coordinateSystem\> \n
\param -to \<coordinateSystem\> \n
Specify a coordinate system when writing files.
Note

View File

@ -3,7 +3,7 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
# \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
# \\/ M anipulation |
#-------------------------------------------------------------------------------
# License

View File

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

View File

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

View File

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

View File

@ -2,12 +2,13 @@
#
#+TITLE: OpenFOAM C++ style guide
#+AUTHOR: OpenCFD Ltd.
#+DATE: June 2010
#+DATE: Feb 2011
#+LINK: http://www.opencfd.co.uk
#+OPTIONS: author:nil ^:{}
#+STARTUP: hidestars
#+STARTUP: odd
* OpenFOAM C++ style guide
*** General
+ 80 character lines max
+ The normal indentation is 4 spaces per logical level.
@ -23,103 +24,144 @@
+ stream output
+ =<<= is always four characters after the start of the stream,
so that the =<<= symbols align, i.e.
#+BEGIN_EXAMPLE
#+BEGIN_SRC c++
Info<< ...
os << ...
#+END_EXAMPLE
#+END_SRC
so
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
WarningIn("className::functionName()")
<< "Warning message"
#+END_EXAMPLE
NOT
#+BEGIN_EXAMPLE
#+END_SRC
*not*
#+BEGIN_SRC C++
WarningIn("className::functionName()")
<< "Warning message"
#+END_EXAMPLE
#+END_SRC
+ no unnecessary class section headers, i.e. remove
#+BEGIN_EXAMPLE
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
#+BEGIN_SRC C++
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
// Check
// Edit
// Write
#+END_EXAMPLE
#+END_SRC
if they contain nothing, even if planned for 'future use'
+ class titles are centred
#+BEGIN_EXAMPLE
/*---------------------------------------------------------------------------*\
#+BEGIN_SRC C++
/*---------------------------------------------------------------------------*\
Class exampleClass Declaration
\*---------------------------------------------------------------------------*/
#+END_EXAMPLE
\*---------------------------------------------------------------------------*/
#+END_SRC
NOT
*not*
#+BEGIN_EXAMPLE
/*---------------------------------------------------------------------------*\
#+BEGIN_SRC C++
/*---------------------------------------------------------------------------*\
Class exampleClass Declaration
\*---------------------------------------------------------------------------*/
#+END_EXAMPLE
\*---------------------------------------------------------------------------*/
#+END_SRC
*** The /.H/ Files
+ header file spacing
+ Leave two empty lines between sections
(as per functions in the /.C/ file etc)
+ use =//- Comment= comments in header file
+ add descriptions to class data and functions
+ use =//- Comment= comments in header file to add descriptions to class
data and functions do be included in the Doxygen documentation:
+ text on the line starting with =//-= becomes the Doxygen brief
description;
+ text on subsequent lines becomes the Doxygen detailed description /e.g./
#+BEGIN_SRC C++
//- A function which returns a thing
// This is a detailed description of the function
// which processes stuff and returns other stuff
// depending on things.
thing function(stuff1, stuff2);
#+END_SRC
+ list entries start with =-= or =-#= for numbered lists but cannot start
on the line immediately below the brief description so
#+BEGIN_SRC C++
//- Compare triFaces
// Returns:
// - 0: different
// - +1: identical
// - -1: same face, but different orientation
static inline int compare(const triFace&, const triFace&);
#+END_SRC
or
#+BEGIN_SRC C++
//- Compare triFaces returning 0, +1 or -1
//
// - 0: different
// - +1: identical
// - -1: same face, but different orientation
static inline int compare(const triFace&, const triFace&);
#+END_SRC
*not*
#+BEGIN_SRC C++
//- Compare triFaces returning 0, +1 or -1
// - 0: different
// - +1: identical
// - -1: same face, but different orientation
static inline int compare(const triFace&, const triFace&);
#+END_SRC
+ list can be nested for example
#+BEGIN_SRC C++
//- Search for \em name
// in the following hierarchy:
// -# personal settings:
// - ~/.OpenFOAM/\<VERSION\>/
// <em>for version-specific files</em>
// - ~/.OpenFOAM/
// <em>for version-independent files</em>
// -# site-wide settings:
// - $WM_PROJECT_INST_DIR/site/\<VERSION\>
// <em>for version-specific files</em>
// - $WM_PROJECT_INST_DIR/site/
// <em>for version-independent files</em>
// -# shipped settings:
// - $WM_PROJECT_DIR/etc/
//
// \return the full path name or fileName() if the name cannot be found
// Optionally abort if the file cannot be found
fileName findEtcFile(const fileName&, bool mandatory=false);
#+END_SRC
+ for more details see the Doxygen documentation.
+ destructor
+ If adding a comment to the destructor -
use =//-= and code as a normal function:
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
//- Destructor
~className();
#+END_EXAMPLE
#+END_SRC
+ inline functions
+ Use inline functions where appropriate in a separate /classNameI.H/ file.
Avoid cluttering the header file with function bodies.
+ Use inline functions where appropriate in a separate /classNameI.H/
file. Avoid cluttering the header file with function bodies.
*** The /.C/ Files
+ Do not open/close namespaces in a /.C/ file
+ Fully scope the function name, i.e.
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
Foam::returnType Foam::className::functionName()
#+END_EXAMPLE
NOT
#+BEGIN_EXAMPLE
#+END_SRC
*not*
#+BEGIN_SRC C++
namespace Foam
{
...
returnType className::functionName()
...
}
#+END_EXAMPLE
#+END_SRC
EXCEPTION
When there are multiple levels of namespace, they may be used in the /.C/
file, i.e.
#+BEGIN_EXAMPLE
When there are multiple levels of namespace, they may be used in the
/.C/ file, i.e.
#+BEGIN_SRC C++
namespace Foam
{
namespace compressible
@ -130,42 +172,35 @@
} // End namespace RASModels
} // End namespace compressible
} // End namespace Foam
#+END_EXAMPLE
#+END_SRC
+ Use two empty lines between functions
*** Coding Practice
+ passing data as arguments or return values.
+ Pass bool, label and scalar as copy, anything larger by reference.
+ const
+ Use everywhere it is applicable.
+ variable initialisation using
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
const className& variableName = otherClass.data();
#+END_EXAMPLE
NOT
#+BEGIN_EXAMPLE
#+END_SRC
*not*
#+BEGIN_SRC C++
const className& variableName(otherClass.data());
#+END_EXAMPLE
#+END_SRC
+ virtual functions
+ If a class is virtual, make all derived classes virtual.
*** Conditional Statements
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
if (condition)
{
code;
}
#+END_EXAMPLE
#+END_SRC
OR
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
if
(
long condition
@ -173,29 +208,24 @@
{
code;
}
#+END_EXAMPLE
NOT (no space between =if= and =(= used)
#+BEGIN_EXAMPLE
#+END_SRC
*not* (no space between =if= and =(= used)
#+BEGIN_SRC C++
if(condition)
{
code;
}
#+END_EXAMPLE
#+END_SRC
*** =for= and =while= Loops
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
for (i = 0; i < maxI; i++)
{
code;
}
#+END_EXAMPLE
#+END_SRC
OR
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
for
(
i = 0;
@ -205,33 +235,26 @@
{
code;
}
#+END_EXAMPLE
NOT this (no space between =for= and =(= used)
#+BEGIN_EXAMPLE
#+END_SRC
*not* this (no space between =for= and =(= used)
#+BEGIN_SRC C++
for(i = 0; i < maxI; i++)
{
code;
}
#+END_EXAMPLE
#+END_SRC
Note that when indexing through iterators, it is often slightly more
efficient to use the pre-increment form. Eg, =++iter= instead of =iter++=
*** =forAll=, =forAllIter=, =forAllConstIter=, etc. loops
like =for= loops, but
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
forAll(
#+END_EXAMPLE
NOT
#+BEGIN_EXAMPLE
#+END_SRC
*not*
#+BEGIN_SRC C++
forAll (
#+END_EXAMPLE
#+END_SRC
Using the =forAllIter= and =forAllConstIter= macros is generally
advantageous - less typing, easier to find later. However, since
they are macros, they will fail if the iterated object contains
@ -239,150 +262,120 @@
The following will FAIL!:
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
forAllIter(HashTable<labelPair, edge, Hash<edge> >, foo, iter)
#+END_EXAMPLE
#+END_SRC
These convenience macros are also generally avoided in other
container classes and OpenFOAM primitive classes.
*** Splitting Over Multiple Lines
**** Splitting return type and function name
***** Splitting return type and function name
+ split initially after the function return type and left align
+ do not put =const= onto its own line - use a split to keep it with
the function name and arguments.
so
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
const Foam::longReturnTypeName&
Foam::longClassName::longFunctionName const
#+END_EXAMPLE
NOT
#+BEGIN_EXAMPLE
#+END_SRC
*not*
#+BEGIN_SRC C++
const Foam::longReturnTypeName&
Foam::longClassName::longFunctionName const
#+END_EXAMPLE
NOR
#+BEGIN_EXAMPLE
#+END_SRC
*nor*
#+BEGIN_SRC C++
const Foam::longReturnTypeName& Foam::longClassName::longFunctionName
const
#+END_EXAMPLE
NOR
#+BEGIN_EXAMPLE
#+END_SRC
*nor*
#+BEGIN_SRC C++
const Foam::longReturnTypeName& Foam::longClassName::
longFunctionName const
#+END_EXAMPLE
#+END_SRC
+ if it needs to be split again, split at the function name (leaving
behind the preceding scoping =::=s), and again, left align, i.e.
For example,
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
const Foam::longReturnTypeName&
Foam::veryveryveryverylongClassName::
veryveryveryverylongFunctionName const
#+END_EXAMPLE
**** Splitting long lines at an "="
#+END_SRC
***** Splitting long lines at an "="
Indent after split
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
variableName =
longClassName.longFunctionName(longArgument);
#+END_EXAMPLE
#+END_SRC
OR (where necessary)
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
variableName =
longClassName.longFunctionName
(
longArgument1,
longArgument2
);
#+END_EXAMPLE
NOT
#+BEGIN_EXAMPLE
#+END_SRC
*not*
#+BEGIN_SRC C++
variableName =
longClassName.longFunctionName(longArgument);
#+END_EXAMPLE
NOR
#+BEGIN_EXAMPLE
#+END_SRC
*nor*
#+BEGIN_SRC C++
variableName = longClassName.longFunctionName
(
longArgument1,
longArgument2
);
#+END_EXAMPLE
#+END_SRC
*** Maths and Logic
+ operator spacing
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
a + b, a - b
a*b, a/b
a & b, a ^ b
a = b, a != b
a < b, a > b, a >= b, a <= b
a || b, a && b
#+END_EXAMPLE
#+END_SRC
+ splitting formulae over several lines
Split and indent as per "splitting long lines at an ="
with the operator on the lower line. Align operator so that first
variable, function or bracket on the next line is 4 spaces indented i.e.
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
variableName =
a * (a + b)
- exp(c/d)
* (k + t);
#+END_EXAMPLE
a*(a + b)
*exp(c/d)
*(k + t);
#+END_SRC
This is sometimes more legible when surrounded by extra parentheses:
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
variableName =
(
a * (a + b)
- exp(c/d)
* (k + t)
a*(a + b)
*exp(c/d)
*(k + t)
);
#+END_EXAMPLE
#+END_SRC
+ splitting logical tests over several lines
outdent the operator so that the next variable to test is aligned with
the four space indentation, i.e.
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
if
(
a == true
&& b == c
)
#+END_EXAMPLE
#+END_SRC
** Documentation
*** General
+ For readability in the comment blocks, certain tags are used that are
translated by pre-filtering the file before sending it to Doxygen.
@ -397,8 +390,7 @@
description.
For example,
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
Class
Foam::myClass
@ -407,7 +399,7 @@
The class is implemented as a set of recommendations that may
sometimes be useful.
#+END_EXAMPLE
#+END_SRC
+ The class name must be qualified by its namespace, otherwise Doxygen
will think you are documenting some other class.
@ -415,49 +407,33 @@
+ If you don't have anything to say about the class (at the moment), use
the namespace-qualified class name for the description. This aids with
finding these under-documented classes later.
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
Class
Foam::myUnderDocumentedClass
Description
Foam::myUnderDocumentedClass
#+END_EXAMPLE
#+END_SRC
+ Use 'Class' and 'Namespace' tags in the header files.
The Description block then applies to documenting the class.
+ Use 'InClass' and 'InNamespace' in the source files.
The Description block then applies to documenting the file itself.
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
InClass
Foam::myClass
Description
Implements the read and writing of files.
#+END_EXAMPLE
#+END_SRC
*** Doxygen Special Commands
Doxygen has a large number of special commands with a =\= prefix.
Doxygen has a large number of special commands with a =\= prefix or
(alternatively) an =@= prefix.
The =@= prefix form is recommended for most Doxygen specials, since it
has the advantage of standing out. It also happens to be what projects
like gcc and VTK are using.
The =\= prefix form, however, looks a bit better for the =\n= newline
command and when escaping single characters - eg, =\@=, =\<=, =\>=, etc.
Since the filtering removes the leading 4 spaces within the blocks, the
Since the filtering removes the leading spaces within the blocks, the
Doxygen commmands can be inserted within the block without problems.
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
InClass
Foam::myClass
@ -465,68 +441,57 @@
Implements the read and writing of files.
An example input file:
@verbatim
\verbatim
patchName
{
type myPatchType;
refValue 100;
value uniform 1;
}
@endverbatim
\endverbatim
Within the implementation, a loop over all patches is done:
@code
\code
forAll(patches, patchI)
{
... // some operation
}
@endcode
#+END_EXAMPLE
\endcode
#+END_SRC
*** HTML Special Commands
Since Doxygen also handles HTML tags to a certain extent, the angle
brackets need quoting in the documentation blocks. Non-HTML tags cause
Doxygen to complain, but seem to work anyhow.
eg,
+ The template with type =<HR>= is a bad example.
+ The template with type =\<HR\>= is a better example.
+ The template with type =<Type>= causes Doxygen to complain about an
unknown html type, but it seems to work okay anyhow.
*** Documenting Namespaces
+ If namespaces are explictly declared with the =Namespace()= macro,
they should be documented there.
+ If the namespaces is used to hold sub-models, the namespace can be
documented in the same file as the class with the model selector.
eg,
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
documented namespace 'Foam::functionEntries' within the
class 'Foam::functionEntry'
#+END_EXAMPLE
#+END_SRC
+ If nothing else helps, find some sensible header.
eg,
#+BEGIN_EXAMPLE
#+BEGIN_SRC C++
namespace 'Foam' is documented in the foamVersion.H file
#+END_EXAMPLE
#+END_SRC
*** Documenting typedefs and classes defined via macros
... not yet properly resolved
*** Documenting Applications
Any number of classes might be defined by a particular application, but
these classes will not, however, be available to other parts of
OpenFOAM. At the moment, the sole purpuse for running Doxygen on the
@ -542,23 +507,17 @@
The layout of the application documentation has not yet been finalized,
but foamToVTK shows an initial attempt.
*** Orthography (an opinion)
Given the origins of OpenFOAM, the British spellings (eg, neighbour and
not neighbor) are generally favoured. For code sections that interact
with external libraries, it can be useful to adopt American spellings,
especially for names that constitute a significant part of the external
library - eg, 'color' within graphics sub-systems.
*** Orthography
Given the origins of OpenFOAM, the British spellings (eg, neighbour and not
neighbor) are generally favoured.
Both '-ize' and the '-ise' variant are found in the code comments. If
used as a variable or class method name, it is probably better to use
'-ize', which is considered the main form by the Oxford University
Press.
Eg,
#+BEGIN_EXAMPLE
Press. Eg,
#+BEGIN_SRC C++
myClass.initialize()
#+END_EXAMPLE
#+END_SRC
The word "its" (possesive) vs. "it's" (colloquial for "it is" or "it has")
seems to confuse non-native (and some native) English speakers.

Binary file not shown.

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -29,7 +29,7 @@ Description
SeeAlso
The manpage regex(7) for more information about POSIX regular expressions.
These differ somewhat from @c Perl and @c sed regular expressions.
These differ somewhat from \c Perl and @c sed regular expressions.
SourceFiles
regExp.C

View File

@ -28,9 +28,9 @@ Description
Set up trapping for floating point exceptions (signal FPE).
Controlled by two env vars:
@param FOAM_SIGFPE \n
\param FOAM_SIGFPE \n
exception trapping
@param FOAM_SETNAN \n
\param FOAM_SETNAN \n
initialization of all malloced memory to NaN. If FOAM_SIGFPE
also set, this will cause usage of uninitialized scalars to trigger
an abort.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,7 +28,7 @@ Description
Implements a timeout mechanism via sigalarm.
Example usage:
@code
\code
timer myTimer(5); // 5 sec
..
if (timedOut(myTimer))
@ -39,7 +39,7 @@ Description
{
// do something possible blocking
}
@endcode
\endcode
Constructor set signal handler on sigalarm and alarm(). Destructor
clears these.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -236,10 +236,10 @@ public:
//- Read a bracket-delimited list, or handle a single value as list of size 1.
// For example,
// @code
// \code
// wList = readList<word>(IStringStream("(patch1 patch2 patch3)")());
// wList = readList<word>(IStringStream("patch0")());
// @endcode
// \endcode
// Mostly useful for handling command-line arguments.
template<class T>
List<T> readList(Istream&);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -37,7 +37,7 @@ Description
in one go, minimizing communication, and then picked apart and recombined.
Example:
@code
\code
// Assuming myContainer defined which holds all the data I want to
// transfer (say a pointField and a faceList). myContainer also defines
// access operators to
@ -76,7 +76,7 @@ Description
gatheredData, sizes, myContainerFaces(), offsetOp<face>()
)
);
@endcode
\endcode
SourceFiles
ListListOps.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -54,7 +54,7 @@ namespace Foam
// Forward declaration
class PackedBoolList;
//- @typedef A List of PackedBoolList
//- \typedef A List of PackedBoolList
typedef List<PackedBoolList> PackedBoolListList;
/*---------------------------------------------------------------------------*\

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -42,11 +42,11 @@ Note
Using the iteratorBase as a proxy allows assignment of values
between list elements. Thus the following bit of code works as expected:
@code
\code
list[1] = list[5]; // value assignment, not iterator position
list[2] = list[5] = 4; // propagates value
list[1] = list[5] = list[6]; // propagates value
@endcode
\endcode
Using get() or the '[]' operator are similarly fast. Looping and reading
via an iterator is approx. 15% slower, but can be more flexible.
@ -56,21 +56,21 @@ Note
advantage of also returning a bool if the value changed. This can be
useful for branching on changed values.
@code
\code
list[5] = 4;
changed = list.set(5, 8);
if (changed) ...
@endcode
\endcode
The lazy evaluation used means that reading an out-of-range element
returns zero, but does not affect the list size. Even in a non-const
context, only the assigment itself causes the element to be created.
For example,
@code
\code
list.resize(4);
Info<< list[10] << "\n"; // print zero, but doesn't adjust list
list[8] = 1;
@endcode
\endcode
Also note that all unused internal storage elements are guaranteed to
always be bit-wise zero. This property must not be violated by any
@ -79,14 +79,14 @@ Note
In addition to the normal output format, PackedList also supports a
compact ASCII format that may be convenient for user input in some
situations. The general format is a group of index/value pairs:
@verbatim
\verbatim
{ (index1 value1) (index2 value2) (index3 value3) }
@endverbatim
\endverbatim
The bool specialization just uses the indices corresponding to
non-zero entries instead of a index/value pair:
@verbatim
\verbatim
{ index1 index2 index3 }
@endverbatim
\endverbatim
In both cases, the supplied indices can be randomly ordered.
SeeAlso
@ -356,14 +356,14 @@ public:
//
// The indexed output may be convenient in some situations.
// The general format is a group of index/value pairs:
// @verbatim
// \verbatim
// { (index1 value1) (index2 value2) (index3 value3) }
// @endverbatim
// \endverbatim
// The bool specialization just uses the indices corresponding to
// non-zero entries instead of a index/value pair:
// @verbatim
// \verbatim
// { index1 index2 index3 }
// @endverbatim
// \endverbatim
//
// Note the indexed output is only supported for ASCII streams.
Ostream& write

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -367,28 +367,28 @@ inline void reverse(UList<T>&);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
/**
* @def forAll(list, i)
* Loop across all elements in @a list
* @par Usage
* @code
* \def forAll(list, i)
* Loop across all elements in \a list
* \par Usage
* \code
* forAll(anyList, i)
* {
* statements;
* }
* @endcode
* @sa forAllReverse
* \endcode
* \sa forAllReverse
*/
/**
* @def forAllReverse(list, i)
* Reverse loop across all elements in @a list
* @par Usage
* @code
* \def forAllReverse(list, i)
* Reverse loop across all elements in \a list
* \par Usage
* \code
* forAllReverse(anyList, i)
* {
* statements;
* }
* @endcode
* @sa forAll
* \endcode
* \sa forAll
*/
#define forAll(list, i) \
for (Foam::label i=0; i<(list).size(); i++)
@ -397,17 +397,17 @@ inline void reverse(UList<T>&);
for (Foam::label i=(list).size()-1; i>=0; i--)
/**
* @def forAllIter(Container, container, iter)
* Iterate across all elements in the @a container object of type
* @a Container.
* @par Usage
* @code
* \def forAllIter(Container, container, iter)
* Iterate across all elements in the \a container object of type
* \a Container.
* \par Usage
* \code
* forAll(ContainerType, container, iter)
* {
* statements;
* }
* @endcode
* @sa forAllConstIter
* \endcode
* \sa forAllConstIter
*/
#define forAllIter(Container,container,iter) \
for \
@ -418,17 +418,17 @@ inline void reverse(UList<T>&);
)
/**
* @def forAllConstIter(Container, container, iter)
* Iterate across all elements in the @a container object of type
* @a Container with const access.
* @par Usage
* @code
* \def forAllConstIter(Container, container, iter)
* Iterate across all elements in the \a container object of type
* \a Container with const access.
* \par Usage
* \code
* forAllConstIter(ContainerType, container, iter)
* {
* statements;
* }
* @endcode
* @sa forAllIter
* \endcode
* \sa forAllIter
*/
#define forAllConstIter(Container,container,iter) \
for \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,32 +33,32 @@ Description
path, a reference to a objectRegistry, and parameters determining its
storage status.
@par Read options
\par Read options
Define what is done on object construction and explicit reads:
@param MUST_READ
\param MUST_READ
Object must be read from Istream on construction. \n
Error if Istream does not exist or can't be read.
Does not check timestamp or re-read.
@param MUST_READ_IF_MODIFIED
\param MUST_READ_IF_MODIFIED
Object must be read from Istream on construction. \n
Error if Istream does not exist or can't be read. If object is
registered its timestamp will be checked every timestep and possibly
re-read.
@param READ_IF_PRESENT
\param READ_IF_PRESENT
Read object from Istream if Istream exists, otherwise don't. \n
Error only if Istream exists but can't be read.
Does not check timestamp or re-read.
@param NO_READ
\param NO_READ
Don't read
@par Write options
\par Write options
Define what is done on object destruction and explicit writes:
@param AUTO_WRITE
\param AUTO_WRITE
Object is written automatically when requested to by the
objectRegistry.
@param NO_WRITE
\param NO_WRITE
No automatic write on destruction but can be written explicitly
SourceFiles

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -393,39 +393,39 @@ public:
//- Return true if run should continue,
// also invokes the functionObjectList::end() method
// when the time goes out of range
// @note
// \note
// For correct behaviour, the following style of time-loop
// is recommended:
// @code
// \code
// while (runTime.run())
// {
// runTime++;
// solve;
// runTime.write();
// }
// @endcode
// \endcode
virtual bool run() const;
//- Return true if run should continue and if so increment time
// also invokes the functionObjectList::end() method
// when the time goes out of range
// @note
// \note
// For correct behaviour, the following style of time-loop
// is recommended:
// @code
// \code
// while (runTime.loop())
// {
// solve;
// runTime.write();
// }
// @endcode
// \endcode
virtual bool loop();
//- Return true if end of run,
// does not invoke any functionObject methods
// @note
// \note
// The rounding heuristics near endTime mean that
// @code run() @endcode and @code !end() @endcode may
// \code run() \endcode and \code !end() \endcode may
// not yield the same result
virtual bool end() const;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,7 +30,7 @@ Description
The timeSelector provides a convenient means of selecting multiple
times. A typical use would be the following:
@verbatim
\verbatim
timeSelector::addOptions();
// add other options
#include "setRootCase.H"
@ -41,27 +41,27 @@ Description
{
...
}
@endverbatim
\endverbatim
The result program would receive @b -time, @b -latestTime, @b -constant
and @b -noZero options. The @b -constant option explicitly includes the
@c constant/ directory in the time list and the @b -noZero option
explicitly excludes the @c 0/ directory from the time list.
The result program would receive \b -time, @b -latestTime, @b -constant
and \b -noZero options. The @b -constant option explicitly includes the
\c constant/ directory in the time list and the \b -noZero option
explicitly excludes the \c 0/ directory from the time list.
There may however also be many cases in which neither the @c constant/
directory nor the @c 0/ directory contain particularly relevant
There may however also be many cases in which neither the \c constant/
directory nor the \c 0/ directory contain particularly relevant
information. This might occur, for example, when post-processing
results. In this case, addOptions is called with optional boolean
arguments.
@verbatim
\verbatim
timeSelector::addOptions(false, true);
@endverbatim
\endverbatim
The first argument avoids adding the @b -constant option. The second
argument adds an additional @b -zeroTime option and also prevents the
@c 0/ directory from being included in the default time range and in the
@b -latestTime selection.
The first argument avoids adding the \b -constant option. The second
argument adds an additional \b -zeroTime option and also prevents the
\c 0/ directory from being included in the default time range and in the
\b -latestTime selection.
SourceFiles
timeSelector.C
@ -119,15 +119,15 @@ public:
//- Add the options handled by timeSelector to argList::validOptions
//
// @param constant
// Add the @b -constant option to include the @c constant/ directory
// \param constant
// Add the \b -constant option to include the \c constant/ directory
//
// @param zeroTime
// Enable the @b -zeroTime option and alter the normal time selection
// behaviour (and @b -latestTime behaviour) to exclude the @c 0/
// directory. The @c 0/ directory will only be included when
// @b -zeroTime is specified.
// The @b -noZero option has precedence over the @b -zeroTime option.
// \param zeroTime
// Enable the \b -zeroTime option and alter the normal time selection
// behaviour (and \b -latestTime behaviour) to exclude the \c 0/
// directory. The \c 0/ directory will only be included when
// \b -zeroTime is specified.
// The \b -noZero option has precedence over the @b -zeroTime option.
static void addOptions
(
const bool constant=true,

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -35,7 +35,7 @@ Description
A functionEntry causes entries to be added/manipulated on the specified
dictionary given an input stream.
In dictionaries, a @c '\#' sigil is typically used for a functionEntry.
In dictionaries, a \c '\#' sigil is typically used for a functionEntry.
SourceFiles
functionEntry.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,13 +28,13 @@ Description
Specify an include file when reading dictionaries, expects a
single string to follow.
An example of the @c \#include directive:
@verbatim
An example of the \c \#include directive:
\verbatim
#include "includeFile"
@endverbatim
\endverbatim
The usual expansion of environment variables and other constructs
(eg, the @c ~OpenFOAM/ expansion) is retained.
(eg, the \c ~OpenFOAM/ expansion) is retained.
See Also
fileName, string::expand()

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,7 @@ Class
Description
Specify a file to include if it exists. Expects a single string to follow.
The @c \#includeIfPresent directive is similar to the @c \#include
The \c \#includeIfPresent directive is similar to the @c \#include
directive, but does not generate an error if the file does not exist.
See Also

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,18 +28,18 @@ Description
Specify the input mode when reading dictionaries, expects
a single word to follow.
An example of @c \#inputMode directive:
@verbatim
An example of \c \#inputMode directive:
\verbatim
#inputMode merge
@endverbatim
\endverbatim
The possible input modes:
@param merge merge sub-dictionaries when possible
@param overwrite keep last entry and silently remove previous ones
@param protect keep initial entry and silently ignore subsequent ones
@param warn keep initial entry and warn about subsequent ones
@param error issue a FatalError for duplicate entries
@param default currently identical to merge
\param merge merge sub-dictionaries when possible
\param overwrite keep last entry and silently remove previous ones
\param protect keep initial entry and silently ignore subsequent ones
\param warn keep initial entry and warn about subsequent ones
\param error issue a FatalError for duplicate entries
\param default currently identical to merge
SourceFiles
inputModeEntry.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,14 +27,14 @@ Class
Description
Remove a dictionary entry.
The @c \#remove directive takes a list or a single wordRe.
The \c \#remove directive takes a list or a single wordRe.
For example,
@verbatim
\verbatim
#remove entry0
#remove ( entry1 entry2 entry3 otherEntry )
#remove "entry[1-3]"
#remove ( "entry[1-3]" otherEntry )
@endverbatim
\endverbatim
The removal only occurs in the current context.
Removing sub-entries or parent entries is not supported.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -72,7 +72,7 @@ class StaticAssertionTest {};
// external use:
// ~~~~~~~~~~~~~
/**
* @def StaticAssert(Test)
* \def StaticAssert(Test)
* Assert that some test is true at compile-time
*/
#define StaticAssert(Test) \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -35,10 +35,10 @@ Description
handling has beed switched on (off by default).
Usage
@code
\code
error << "message1" << "message2" << FoamDataType << exit(errNo);
error << "message1" << "message2" << FoamDataType << abort();
@endcode
\endcode
SourceFiles
error.C
@ -296,7 +296,7 @@ extern IOerror FatalIOError;
// Convenience macros to add the file name and line number to the function name
/**
* @def FatalErrorIn(functionName)
* \def FatalErrorIn(functionName)
* Report an error message using Foam::FatalError for functionName in
* file __FILE__ at line __LINE__
*/
@ -304,7 +304,7 @@ extern IOerror FatalIOError;
::Foam::FatalError((fn), __FILE__, __LINE__)
/**
* @def FatalIOErrorIn(functionName, ios)
* \def FatalIOErrorIn(functionName, ios)
* Report an error message using Foam::FatalIOError for functionName in
* file __FILE__ at line __LINE__
* for a particular IOstream
@ -313,12 +313,12 @@ extern IOerror FatalIOError;
::Foam::FatalIOError((fn), __FILE__, __LINE__, (ios))
/**
* @def notImplemented(functionName)
* \def notImplemented(functionName)
* Issue a FatalErrorIn for the functionName.
* This is used for functions that are not currently implemented.
* The functionName is printed and then abort is called.
*
* @note
* \note
* This macro can be particularly useful when methods must be defined to
* complete the interface of a derived class even if they should never be
* called for this derived class.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,10 +30,10 @@ Description
handling has been switched on (off by default).
Usage
@code
\code
error << "message1" << "message2" << FoamDataType << exit(error, errNo);
error << "message1" << "message2" << FoamDataType << abort(error);
@endcode
\endcode
\*---------------------------------------------------------------------------*/

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -34,10 +34,10 @@ Description
the messageStream class in the standard manner.
Usage
@code
\code
messageStream
<< "message1" << "message2" << FoamDataType << endl;
@endcode
\endcode
SourceFiles
messageStream.C
@ -214,7 +214,7 @@ extern messageStream Info;
// Convenience macros to add the file name and line number to the function name
/**
* @def SeriousErrorIn(functionName)
* \def SeriousErrorIn(functionName)
* Report an error message using Foam::SeriousError for functionName in
* file __FILE__ at line __LINE__
*/
@ -222,7 +222,7 @@ extern messageStream Info;
::Foam::SeriousError((fn), __FILE__, __LINE__)
/**
* @def SeriousIOErrorIn(functionName, ios)
* \def SeriousIOErrorIn(functionName, ios)
* Report an IO error message using Foam::SeriousError for functionName in
* file __FILE__ at line __LINE__
* for a particular IOstream
@ -231,7 +231,7 @@ extern messageStream Info;
::Foam::SeriousError((fn), __FILE__, __LINE__, ios)
/**
* @def WarningIn(functionName)
* \def WarningIn(functionName)
* Report a warning using Foam::Warning for functionName in
* file __FILE__ at line __LINE__
*/
@ -239,7 +239,7 @@ extern messageStream Info;
::Foam::Warning((fn), __FILE__, __LINE__)
/**
* @def IOWarningIn(functionName, ios)
* \def IOWarningIn(functionName, ios)
* Report an IO warning using Foam::Warning for functionName in
* file __FILE__ at line __LINE__
* for a particular IOstream
@ -248,7 +248,7 @@ extern messageStream Info;
::Foam::Warning((fn), __FILE__, __LINE__, (ios))
/**
* @def InfoIn(functionName)
* \def InfoIn(functionName)
* Report a information message using Foam::Info for functionName in
* file __FILE__ at line __LINE__
*/
@ -256,7 +256,7 @@ extern messageStream Info;
::Foam::Info((fn), __FILE__, __LINE__)
/**
* @def IOInfoIn(functionName, ios)
* \def IOInfoIn(functionName, ios)
* Report an IO information message using Foam::Info for functionName in
* file __FILE__ at line __LINE__
* for a particular IOstream

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,9 +30,9 @@ Description
Note
Since the timeIndex is used directly from Foam::Time, it is unaffected
by user-time conversions. For example, Foam::engineTime might cause @a
by user-time conversions. For example, Foam::engineTime might cause \a
writeInterval to be degrees crank angle, but the functionObject
execution @a interval would still be in timestep.
execution \a interval would still be in timestep.
SourceFiles
OutputFilterFunctionObject.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -108,7 +108,7 @@ public:
//- Construct from Time, a dictionary with "functions" entry
// and the execution setting.
// @param[in] parentDict - the parent dictionary containing
// \param[in] parentDict - the parent dictionary containing
// a "functions" entry, which can either be a list or a dictionary
// of functionObject specifications.
functionObjectList

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -74,7 +74,7 @@ private:
//- Type of output
outputControls outputControl_;
//- The execution interval (in time steps) when using @c timeStep mode,
//- The execution interval (in time steps) when using \c timeStep mode,
// a value <= 1 means execute at every time step
label outputInterval_;

View File

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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,19 +39,19 @@ Description
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//- Add typeName information from argument @a TypeNameString to a class.
//- Add typeName information from argument \a TypeNameString to a class.
// Without debug information
#define ClassNameNoDebug(TypeNameString) \
static const char* typeName_() { return TypeNameString; } \
static const ::Foam::word typeName
//- Add typeName information from argument @a TypeNameString to a namespace.
//- Add typeName information from argument \a TypeNameString to a namespace.
// Without debug information.
#define NamespaceNameNoDebug(TypeNameString) \
inline const char* typeName_() { return TypeNameString; } \
extern const ::Foam::word typeName
//- Add typeName information from argument @a TemplateNameString to a
//- Add typeName information from argument \a TemplateNameString to a
// template class. Without debug information.
#define TemplateNameNoDebug(TemplateNameString) \
class TemplateNameString##Name \
@ -68,19 +68,19 @@ public: \
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//- Add typeName information from argument @a TypeNameString to a class.
//- Add typeName information from argument \a TypeNameString to a class.
// Also declares debug information.
#define ClassName(TypeNameString) \
ClassNameNoDebug(TypeNameString); \
static int debug
//- Add typeName information from argument @a TypeNameString to a namespace.
//- Add typeName information from argument \a TypeNameString to a namespace.
// Also declares debug information.
#define NamespaceName(TypeNameString) \
NamespaceNameNoDebug(TypeNameString); \
extern int debug
//- Add typeName information from argument @a TypeNameString to a
//- Add typeName information from argument \a TypeNameString to a
// template class. Also declares debug information.
#define TemplateName(TemplateNameString) \
class TemplateNameString##Name \
@ -97,7 +97,7 @@ public: \
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//- Define the typeName, with alternative lookup as @a Name
//- Define the typeName, with alternative lookup as \a Name
#define defineTypeNameWithName(Type, Name) \
const ::Foam::word Type::typeName(Name)
@ -106,18 +106,18 @@ public: \
defineTypeNameWithName(Type, Type::typeName_())
#ifdef __INTEL_COMPILER
//- Define the typeName as @a Name for template classes
//- Define the typeName as \a Name for template classes
# define defineTemplateTypeNameWithName(Type, Name) \
defineTypeNameWithName(Type, Name)
//- Define the typeName as @a Name for template sub-classes
//- Define the typeName as \a Name for template sub-classes
# define defineTemplate2TypeNameWithName(Type, Name) \
defineTypeNameWithName(Type, Name)
#else
//- Define the typeName as @a Name for template classes
//- Define the typeName as \a Name for template classes
# define defineTemplateTypeNameWithName(Type, Name) \
template<> \
defineTypeNameWithName(Type, Name)
//- Define the typeName as @a Name for template sub-classes
//- Define the typeName as \a Name for template sub-classes
# define defineTemplate2TypeNameWithName(Type, Name) \
template<> \
template<> \
@ -139,7 +139,7 @@ public: \
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//- Define the debug information, lookup as @a Name
//- Define the debug information, lookup as \a Name
#define defineDebugSwitchWithName(Type, Name, DebugSwitch) \
int Type::debug(::Foam::debug::debugSwitch(Name, DebugSwitch))
@ -148,18 +148,18 @@ public: \
defineDebugSwitchWithName(Type, Type::typeName_(), DebugSwitch)
#ifdef __INTEL_COMPILER
//- Define the debug information for templates, lookup as @a Name
//- Define the debug information for templates, lookup as \a Name
# define defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch) \
defineDebugSwitchWithName(Type, Name, DebugSwitch)
//- Define the debug information for templates sub-classes, lookup as @a Name
//- Define the debug information for templates sub-classes, lookup as \a Name
# define defineTemplate2DebugSwitchWithName(Type, Name, DebugSwitch) \
defineDebugSwitchWithName(Type, Name, DebugSwitch)
#else
//- Define the debug information for templates, lookup as @a Name
//- Define the debug information for templates, lookup as \a Name
# define defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch) \
template<> \
defineDebugSwitchWithName(Type, Name, DebugSwitch)
//- Define the debug information for templates sub-classes, lookup as @a Name
//- Define the debug information for templates sub-classes, lookup as \a Name
# define defineTemplate2DebugSwitchWithName(Type, Name, DebugSwitch) \
template<> \
template<> \
@ -199,7 +199,7 @@ public: \
defineTypeName(Type); \
defineDebugSwitch(Type, DebugSwitch)
//- Define the typeName and debug information, lookup as @a Name
//- Define the typeName and debug information, lookup as \a Name
#define defineTemplateTypeNameAndDebugWithName(Type, Name, DebugSwitch) \
defineTemplateTypeNameWithName(Type, Name); \
defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch)
@ -216,7 +216,7 @@ public: \
// for templated sub-classes
//- Define the typeName and debug information, lookup as @a Name
//- Define the typeName and debug information, lookup as \a Name
#define defineTemplate2TypeNameAndDebugWithName(Type, Name, DebugSwitch) \
defineTemplate2TypeNameWithName(Type, Name); \
defineTemplate2DebugSwitchWithName(Type, Name, DebugSwitch)

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -29,22 +29,22 @@ Description
Used to enhance the standard RTTI to cover I/O.
The user can get the type's type name using the type info access function
@code
\code
type()
@endcode
\endcode
The reference type cast template function:
@code
\code
refCast<T>(r)
@endcode
\endcode
wraps dynamic_cast to handle the bad_cast exception and generate a
FatalError.
The isA function:
@code
\code
isA<T>(r)
@endcode
\endcode
returns true if r is of type T or derived from type T.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -46,11 +46,17 @@ Foam::List<T> Foam::transform
template <class T>
void Foam::transformList
(
const tensorField& rotTensor,
UList<T>& field
)
void Foam::transformList(const tensor& rotTensor, UList<T>& field)
{
forAll(field, i)
{
field[i] = transform(rotTensor, field[i]);
}
}
template <class T>
void Foam::transformList(const tensorField& rotTensor, UList<T>& field)
{
if (rotTensor.size() == 1)
{
@ -79,11 +85,17 @@ void Foam::transformList
template <class T>
void Foam::transformList
(
const tensorField& rotTensor,
Map<T>& field
)
void Foam::transformList(const tensor& rotTensor, Map<T>& field)
{
forAllIter(typename Map<T>, field, iter)
{
iter() = transform(rotTensor[0], iter());
}
}
template <class T>
void Foam::transformList(const tensorField& rotTensor, Map<T>& field)
{
if (rotTensor.size() == 1)
{
@ -105,11 +117,17 @@ void Foam::transformList
template <class T>
void Foam::transformList
(
const tensorField& rotTensor,
EdgeMap<T>& field
)
void Foam::transformList(const tensor& rotTensor, EdgeMap<T>& field)
{
forAllIter(typename EdgeMap<T>, field, iter)
{
iter() = transform(rotTensor[0], iter());
}
}
template <class T>
void Foam::transformList(const tensorField& rotTensor, EdgeMap<T>& field)
{
if (rotTensor.size() == 1)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -60,33 +60,57 @@ List<T> transform
//- Apply transformation to list. Either single transformation tensor
// or one tensor per element.
template<class T>
void transformList(const tensor&, UList<T>&);
template<class T>
void transformList(const tensorField&, UList<T>&);
template<class T>
void transformList(const tensor&, Map<T>&);
template<class T>
void transformList(const tensorField&, Map<T>&);
template<class T>
void transformList(const tensor&, EdgeMap<T>&);
template<class T>
void transformList(const tensorField&, EdgeMap<T>&);
template<>
inline void transformList(const tensor&, labelUList&)
{}
template<>
inline void transformList(const tensorField&, labelUList&)
{}
template<>
inline void transformList(const tensor&, Map<label>&)
{}
template<>
inline void transformList(const tensorField&, Map<label>&)
{}
template<>
inline void transformList(const tensor&, EdgeMap<label>&)
{}
template<>
inline void transformList(const tensorField&, EdgeMap<label>&)
{}
template<>
inline void transformList(const tensor&, UList<scalar>&)
{}
template<>
inline void transformList(const tensorField&, UList<scalar>&)
{}
template<>
inline void transformList(const tensor&, Map<scalar>&)
{}
template<>
inline void transformList(const tensorField&, Map<scalar>&)
{}
template<>
inline void transformList(const tensor&, EdgeMap<scalar>&)
{}
template<>
inline void transformList(const tensorField&, EdgeMap<scalar>&)
{}

View File

@ -26,38 +26,38 @@ Class
Description
Extract command arguments and options from the supplied
@a argc and @a argv parameters.
\a argc and @a argv parameters.
Sequences with "(" ... ")" are transformed into a stringList.
For example,
@verbatim
\verbatim
program -listFiles \( *.txt \)
@endverbatim
\endverbatim
would create a stringList:
@verbatim
\verbatim
( "file1.txt" "file2.txt" ... "fileN.txt" )
@endverbatim
\endverbatim
The backslash-escaping is required to avoid interpretation by the shell.
@par Default command-line options
@param -case \<dir\> \n
\par Default command-line options
\param -case \<dir\> \n
select an case directory instead of the current working directory
@param -parallel \n
\param -parallel \n
specify case as a parallel job
@param -doc \n
\param -doc \n
display the documentation in browser
@param -srcDoc \n
\param -srcDoc \n
display the source documentation in browser
@param -help \n
\param -help \n
print the usage
The environment variable @b FOAM_CASE is set to the path of the
The environment variable \b FOAM_CASE is set to the path of the
global case (same for serial and parallel jobs).
The environment variable @b FOAM_CASENAME is set to the name of the
The environment variable \b FOAM_CASENAME is set to the name of the
global case.
Note
- The document browser used is defined by the @b FOAM_DOC_BROWSER
- The document browser used is defined by the \b FOAM_DOC_BROWSER
environment variable or the <tt>Documentation/docBrowser</tt> entry
in the <tt>~OpenFOAM/controlDict</tt> file.
The \%f token is used as a placeholder for the file name.
@ -168,14 +168,14 @@ public:
//- Max screen width for displaying usage (default: 80)
static string::size_type usageMax;
//! @cond internalClass
//! \cond internalClass
class initValidTables
{
public:
initValidTables();
};
//! @endcond
//! \endcond
// Constructors
@ -230,7 +230,7 @@ public:
inline T argRead(const label index) const;
//- Return arguments that are additional to the executable
// @deprecated use operator[] directly (deprecated Feb 2010)
// \deprecated use operator[] directly (deprecated Feb 2010)
stringList::subList additionalArgs() const
{
return stringList::subList(args_, args_.size()-1, 1);
@ -292,7 +292,7 @@ public:
inline const string& operator[](const label index) const;
//- Return the argument string associated with the named option
// @sa option()
// \sa option()
inline const string& operator[](const word& opt) const;
// Edit

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -38,7 +38,7 @@ namespace Foam
namespace debug
{
//! @cond ignoreDocumentation - local scope
//! \cond ignoreDocumentation - local scope
dictionary* controlDictPtr_(NULL);
dictionary* debugSwitchesPtr_(NULL);
dictionary* infoSwitchesPtr_(NULL);
@ -63,7 +63,7 @@ public:
};
deleteControlDictPtr deleteControlDictPtr_;
//! @endcond
//! \endcond
} // End namespace debug

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -49,7 +49,7 @@ namespace debug
{
//- The central control dictionary.
// Located in ~/.OpenFOAM/VERSION or $WM_PROJECT_DIR/etc
// @sa Foam::findEtcFile()
// \sa Foam::findEtcFile()
dictionary& controlDict();
//- The DebugSwitches sub-dictionary in the central controlDict.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::xmgrGraph
Description
Output and @b agr file for @em xmgrace
Output and \b agr file for \em xmgrace
(http://plasma-gate.weizmann.ac.il/Grace/)
SourceFiles

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -90,7 +90,8 @@ fileName cwd();
// else return false
bool chDir(const fileName& dir);
//- Search for @em name in the following hierarchy:
//- Search for \em name
// in the following hierarchy:
// -# personal settings:
// - ~/.OpenFOAM/\<VERSION\>/
// <em>for version-specific files</em>
@ -104,7 +105,7 @@ bool chDir(const fileName& dir);
// -# shipped settings:
// - $WM_PROJECT_DIR/etc/
//
// @return the full path name or fileName() if the name cannot be found
// \return the full path name or fileName() if the name cannot be found
// Optionally abort if the file cannot be found
fileName findEtcFile(const fileName&, bool mandatory=false);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,13 +25,13 @@ 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
of @a outOfBounds.
of \a outOfBounds.
If @a REPEAT is chosen for the out-of-bounds handling, the final time
If \a REPEAT is chosen for the out-of-bounds handling, the final time
value is treated as being equivalent to time=0 for the following periods.
Note

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,7 +30,7 @@ Description
Example usage (scalar): values specified within a dictionary:
@verbatim
\verbatim
{
x0 0; // lower limit
dx 0.2; // fixed interval
@ -43,7 +43,7 @@ Description
7870 // value at x0 + n*dx
);
}
@endverbatim
\endverbatim
SourceFiles
uniformInterpolationTable.C

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -38,7 +38,7 @@ Description
the same point. The neighbour labels are also ordered in ascending
order but only for groups of edges belonging to each point. An example
is given below:
@verbatim
\verbatim
owner eighbour
0 1
0 20
@ -60,7 +60,7 @@ Description
8 28
9 10
9 29
@endverbatim
\endverbatim
There exists an alternative way of addressing the owner
list: instead of repeating the same label in the owner list, it is
@ -68,9 +68,9 @@ Description
neighbour list. This reduces the size of owner addressing from a list
over all edges to a list over all points + 1:
@verbatim
\verbatim
Owner start list: 0 2 4 6 8 10 12 14 16 18
@endverbatim
\endverbatim
We shall use the second form of the addressing for fast lookup
of edge label from the known owner and neighbour, using the following

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -36,12 +36,12 @@ License
int Foam::solution::debug(::Foam::debug::debugSwitch("solution", 0));
// List of sub-dictionaries to rewrite
//! @cond localScope
//! \cond localScope
static const Foam::List<Foam::word> subDictNames
(
Foam::IStringStream("(preconditioner smoother)")()
);
//! @endcond
//! \endcond
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -43,21 +43,21 @@ Description
memory becoming inaccessible, the xferMoveTo() function should be used to
invoke the correct List\<T\>::transfer(DynamicList\<T\>&) method.
@code
\code
DynamicList<label> dynLst;
...
labelList plainLst( xferMoveTo<labelList>(dynLst) );
@endcode
\endcode
Of course, since this example is a very common operation, the
DynamicList::xfer() method transfers to a plain List anyhow.
It would thus be simpler (and clearer) just to use the following code:
@code
\code
DynamicList<label> dynLst;
...
labelList plainLst(dynLst.xfer());
@endcode
\endcode
SeeAlso
xferCopy, xferCopyTo, xferMove, xferMoveTo, xferTmp
@ -135,53 +135,53 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
/**
* Construct by copying the contents of the @a arg
* Construct by copying the contents of the \a arg
*
* @sa xferCopyTo, xferMove, xferMoveTo, xferTmp and Foam::Xfer
* \sa xferCopyTo, xferMove, xferMoveTo, xferTmp and Foam::Xfer
*/
template<class T>
inline Xfer<T> xferCopy(const T&);
/**
* Construct by transferring the contents of the @a arg
* Construct by transferring the contents of the \a arg
*
* @sa xferCopy, xferCopyTo, xferMoveTo, xferTmp and Foam::Xfer
* \sa xferCopy, xferCopyTo, xferMoveTo, xferTmp and Foam::Xfer
*/
template<class T>
inline Xfer<T> xferMove(T&);
/**
* Construct by transferring the contents of the @a arg
* Construct by transferring the contents of the \a arg
*
* @sa xferCopy, xferCopyTo, xferMove, xferMoveTo and Foam::Xfer
* \sa xferCopy, xferCopyTo, xferMove, xferMoveTo and Foam::Xfer
*/
template<class T>
inline Xfer<T> xferTmp(Foam::tmp<T>&);
/**
* Construct by copying the contents of the @a arg
* Construct by copying the contents of the \a arg
* between dissimilar types
*
* @sa xferCopy, xferMove, xferMoveTo, xferTmp and Foam::Xfer
* \sa xferCopy, xferMove, xferMoveTo, xferTmp and Foam::Xfer
*/
template<class To, class From>
inline Xfer<To> xferCopyTo(const From&);
/**
* Construct by transferring the contents of the @a arg
* Construct by transferring the contents of the \a arg
* between dissimilar types
*
* @par Example Use
* @code
* \par Example Use
* \code
* DynamicList<label> dynLst;
* ...
* labelList plainLst( xferMoveTo<labelList>(dynLst) );
* @endcode
* \endcode
*
* @sa xferCopy, xferCopyTo, xferMove, xferTmp and Foam::Xfer
* \sa xferCopy, xferCopyTo, xferMove, xferTmp and Foam::Xfer
*/
template<class To, class From>
inline Xfer<To> xferMoveTo(From&);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,22 +31,22 @@ Description
cell-face to mesh-face mapping.
For example,
@verbatim
\verbatim
hexMatcher hex(mesh);
cellShape shape;
..
bool isHex = hex.match(cellI, shape);
@endverbatim
Now shape is set to the correct Hex cellShape (if @a isHex is true)
\endverbatim
Now shape is set to the correct Hex cellShape (if \a isHex is true)
Alternatively there is direct access to the vertex and face mapping:
@verbatim
\verbatim
const labelList& hexVertLabels = hex.vertLabels();
const labelList& hexFaceLabels = hex.faceLabels();
@endverbatim
\endverbatim
Now
- @c hexVertLabels[n] is vertex label of hex vertex n
- @c hexFaceLabels[n] is face label of hex vertex n
- \c hexVertLabels[n] is vertex label of hex vertex n
- \c hexFaceLabels[n] is face label of hex vertex n
Process of cellShape recognition consists of following steps:
- renumber vertices of cell to local vertex numbers

View File

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

View File

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

Some files were not shown because too many files have changed in this diff Show More