GIT: Resolved conflict

This commit is contained in:
Andrew Heather
2016-06-08 13:57:05 +01:00
258 changed files with 2035 additions and 1070 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -42,154 +42,235 @@ Description
using namespace Foam;
void testMapDistribute()
{
Random rndGen(43544*Pstream::myProcNo());
// Generate random data.
List<Tuple2<label, List<scalar>>> complexData(100);
forAll(complexData, i)
{
complexData[i].first() = rndGen.integer(0, Pstream::nProcs()-1);
complexData[i].second().setSize(3);
complexData[i].second()[0] = 1;
complexData[i].second()[1] = 2;
complexData[i].second()[2] = 3;
}
// Send all ones to processor indicated by .first()
// Count how many to send
labelList nSend(Pstream::nProcs(), 0);
forAll(complexData, i)
{
label procI = complexData[i].first();
nSend[procI]++;
}
// Collect items to be sent
labelListList sendMap(Pstream::nProcs());
forAll(sendMap, procI)
{
sendMap[procI].setSize(nSend[procI]);
}
nSend = 0;
forAll(complexData, i)
{
label procI = complexData[i].first();
sendMap[procI][nSend[procI]++] = i;
}
// Sync how many to send
labelList nRecv;
Pstream::exchangeSizes(sendMap, nRecv);
// Collect items to be received
labelListList recvMap(Pstream::nProcs());
forAll(recvMap, procI)
{
recvMap[procI].setSize(nRecv[procI]);
}
label constructSize = 0;
// Construct with my own elements first
forAll(recvMap[Pstream::myProcNo()], i)
{
recvMap[Pstream::myProcNo()][i] = constructSize++;
}
// Construct from other processors
forAll(recvMap, procI)
{
if (procI != Pstream::myProcNo())
{
forAll(recvMap[procI], i)
{
recvMap[procI][i] = constructSize++;
}
}
}
// Construct distribute map (destructively)
mapDistribute map(constructSize, sendMap.xfer(), recvMap.xfer());
// Distribute complexData
map.distribute(complexData);
Pout<< "complexData:" << complexData << endl;
}
template<class T>
void testTransfer(const T& input)
{
T data = input;
if (Pstream::master())
{
Perr<<"test transfer (" << (typeid(T).name()) << "): " << data << nl << endl;
}
if (Pstream::myProcNo() != Pstream::masterNo())
{
{
Perr<< "slave sending to master " << Pstream::masterNo() << endl;
OPstream toMaster(Pstream::blocking, Pstream::masterNo());
toMaster << data;
}
Perr<< "slave receiving from master " << Pstream::masterNo() << endl;
IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
fromMaster >> data;
Perr<< data << endl;
}
else
{
for
(
int slave = Pstream::firstSlave();
slave <= Pstream::lastSlave();
++slave
)
{
Perr<< "master receiving from slave " << slave << endl;
IPstream fromSlave(Pstream::blocking, slave);
fromSlave >> data;
Perr<< data << endl;
}
for
(
int slave = Pstream::firstSlave();
slave <= Pstream::lastSlave();
++slave
)
{
Perr<< "master sending to slave " << slave << endl;
OPstream toSlave(Pstream::blocking, slave);
toSlave << data;
}
}
}
template<class T>
void testTokenized(const T& data)
{
token tok;
if (Pstream::master())
{
Perr<<"test tokenized \"" << data << "\"" << nl << endl;
}
if (Pstream::myProcNo() != Pstream::masterNo())
{
{
Perr<< "slave sending to master " << Pstream::masterNo() << endl;
OPstream toMaster(Pstream::blocking, Pstream::masterNo());
toMaster << data;
}
Perr<< "slave receiving from master " << Pstream::masterNo() << endl;
IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
fromMaster >> tok;
Perr<< tok.info() << endl;
}
else
{
for
(
int slave = Pstream::firstSlave();
slave <= Pstream::lastSlave();
++slave
)
{
Perr<< "master receiving from slave " << slave << endl;
IPstream fromSlave(Pstream::blocking, slave);
fromSlave >> tok;
Perr<< tok.info() << endl;
}
for
(
int slave = Pstream::firstSlave();
slave <= Pstream::lastSlave();
++slave
)
{
Perr<< "master sending to slave " << slave << endl;
OPstream toSlave(Pstream::blocking, slave);
toSlave << data;
}
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
testMapDistribute();
// Test mapDistribute
// ~~~~~~~~~~~~~~~~~~
if (true)
if (!Pstream::parRun())
{
Random rndGen(43544*Pstream::myProcNo());
// Generate random data.
List<Tuple2<label, List<scalar>>> complexData(100);
forAll(complexData, i)
{
complexData[i].first() = rndGen.integer(0, Pstream::nProcs()-1);
complexData[i].second().setSize(3);
complexData[i].second()[0] = 1;
complexData[i].second()[1] = 2;
complexData[i].second()[2] = 3;
}
// Send all ones to processor indicated by .first()
// Count how many to send
labelList nSend(Pstream::nProcs(), 0);
forAll(complexData, i)
{
label procI = complexData[i].first();
nSend[procI]++;
}
// Collect items to be sent
labelListList sendMap(Pstream::nProcs());
forAll(sendMap, procI)
{
sendMap[procI].setSize(nSend[procI]);
}
nSend = 0;
forAll(complexData, i)
{
label procI = complexData[i].first();
sendMap[procI][nSend[procI]++] = i;
}
// Sync how many to send
labelList nRecv;
Pstream::exchangeSizes(sendMap, nRecv);
// Collect items to be received
labelListList recvMap(Pstream::nProcs());
forAll(recvMap, procI)
{
recvMap[procI].setSize(nRecv[procI]);
}
label constructSize = 0;
// Construct with my own elements first
forAll(recvMap[Pstream::myProcNo()], i)
{
recvMap[Pstream::myProcNo()][i] = constructSize++;
}
// Construct from other processors
forAll(recvMap, procI)
{
if (procI != Pstream::myProcNo())
{
forAll(recvMap[procI], i)
{
recvMap[procI][i] = constructSize++;
}
}
}
// Construct distribute map (destructively)
mapDistribute map(constructSize, sendMap.xfer(), recvMap.xfer());
// Distribute complexData
map.distribute(complexData);
Pout<< "complexData:" << complexData << endl;
Info<< "\nWarning: not parallel - skipping further tests\n" << endl;
return 0;
}
Info<< "\nStarting transfers\n\n" << endl;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
testTransfer(vector(0, 1, 2));
testTransfer(label(1234));
testTransfer(scalar(3.14159));
testTransfer(string("test string"));
testTransfer(string(" x "));
testTransfer(word("3.141 59")); // bad word, but transfer doesn't care
Perr<< "\nStarting transfers\n" << endl;
testTokenized(label(1234));
testTokenized(scalar(3.14159));
testTokenized('a');
testTokenized('$'); // will not tokenize well
vector data(0, 1, 2);
testTokenized(string("test string1"));
testTokenized("test string1");
testTokenized(word("3.141 59")); // bad word, but transfer doesn't care
if (Pstream::parRun())
{
if (Pstream::myProcNo() != Pstream::masterNo())
{
{
Perr<< "slave sending to master "
<< Pstream::masterNo() << endl;
OPstream toMaster(Pstream::blocking, Pstream::masterNo());
toMaster << data;
}
testTokenized(string(" a "));
testTokenized(" a ");
Perr<< "slave receiving from master "
<< Pstream::masterNo() << endl;
IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
fromMaster >> data;
testTokenized(string(" $ "));
testTokenized(" $ "); // reduces to 'char' and will not tokenize well
Perr<< data << endl;
}
else
{
for
(
int slave=Pstream::firstSlave();
slave<=Pstream::lastSlave();
slave++
)
{
Perr << "master receiving from slave " << slave << endl;
IPstream fromSlave(Pstream::blocking, slave);
fromSlave >> data;
testTokenized(string(" $$ "));
testTokenized(" $$ "); // reduces to 'word' and is tagged as such
Perr<< data << endl;
}
for
(
int slave=Pstream::firstSlave();
slave<=Pstream::lastSlave();
slave++
)
{
Perr << "master sending to slave " << slave << endl;
OPstream toSlave(Pstream::blocking, slave);
toSlave << data;
}
}
}
Info<< "End\n" << endl;
return 0;
}

View File

@ -285,14 +285,18 @@ castellatedMeshControls
// after refinement.
//
// There are two different ways of specifying the regions to keep:
// 1. a single locationInMesh. All the 'zoned' surfaces are marked as such
// 1. a single locationInMesh. This is the unzoned part of the mesh.
// All the 'zoned' surfaces are marked as such
// in the refinementSurfaces with the faceZone and cellZone keywords.
// It is illegal to have the locationInMesh inside a surface for which
// a cellZone is specified.
//
// or
//
// 2. multiple locationsInMesh, with per location the name of the cellZone.
// This uses walking to determine zones and automatically creates
// faceZones on the outside of cellZones.
// faceZones on the outside of cellZones. The special name 'none' is
// used to indicate the unzoned/background part of the mesh.
// Ad 1. Specify a single location and how to treat faces inbetween

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -97,8 +97,8 @@ public:
virtual void write(const char* val)
{
char buffer[80] = {0};
strcpy(buffer, val);
char buffer[80];
strncpy(buffer, val, 80);
str_().write(buffer, 80*sizeof(char));
}

View File

@ -2,11 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
=======
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
>>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -48,18 +44,10 @@ InClass
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template<class Type>
<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
void Foam::vtkPV4Foam::convertVolField
void Foam::vtkPVFoam::convertVolField
(
const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
const GeometricField<Type, fvPatchField, volMesh>& tf,
=======
void Foam::vtkPVFoam::convertVolFields
(
const fvMesh& mesh,
const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
const IOobjectList& objects,
>>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
const bool interpFields,
vtkMultiBlockDataSet* output
)
@ -81,27 +69,7 @@ void Foam::vtkPVFoam::convertVolFields
(
volPointInterpolation::New(mesh).interpolate(tf).ptr()
);
<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
}
=======
// Interpolated field (demand driven)
autoPtr<GeometricField<Type, pointPatchField, pointMesh>> ptfPtr;
if (interpFields)
{
if (debug)
{
Info<< "convertVolFieldBlock interpolating:" << tf.name()
<< endl;
}
ptfPtr.reset
(
volPointInterpolation::New(tf.mesh()).interpolate(tf).ptr()
);
}
>>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
// Convert activated internalMesh regions
convertVolFieldBlock
@ -169,7 +137,6 @@ void Foam::vtkPVFoam::convertVolFields
tmp<Field<Type>> tpptf
(
<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
fvPatchField<Type>(p, tf).patchInternalField()
);
@ -181,22 +148,6 @@ void Foam::vtkPVFoam::convertVolFields
arrayRangePatches_,
datasetNo
);
=======
isType<emptyFvPatchField<Type>>(ptf)
||
(
reader_->GetExtrapolatePatches()
&& !polyPatch::constraintType(patches[patchId].type())
)
)
{
fvPatch p(ptf.patch().patch(), tf.mesh().boundary());
tmp<Field<Type>> tpptf
(
fvPatchField<Type>(p, tf).patchInternalField()
);
>>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
if (interpFields)
{
@ -310,7 +261,7 @@ void Foam::vtkPVFoam::convertVolFields
template<class Type>
void Foam::vtkPV4Foam::convertVolFields
void Foam::vtkPVFoam::convertVolFields
(
const fvMesh& mesh,
const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
@ -345,7 +296,7 @@ void Foam::vtkPV4Foam::convertVolFields
template<class Type>
void Foam::vtkPV4Foam::convertDimFields
void Foam::vtkPVFoam::convertDimFields
(
const fvMesh& mesh,
const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,

View File

@ -74,6 +74,11 @@ formatOptions
//collateTimes true; // write single file containing multiple timesteps
// (only for static surfaces)
}
vtk
{
// Non-default write precision for floating point numbers
writePrecision 10;
}
nastran
{
// From OpenFOAM field name to Nastran field name

View File

@ -88,7 +88,7 @@ tmp<vectorField> calcVertexNormals(const triSurface& surf)
// Weight = fA / (mag(e0)^2 * mag(e1)^2);
tmp<vectorField> tpointNormals
(
new pointField(surf.nPoints(), vector::zero)
new pointField(surf.nPoints(), Zero)
);
vectorField& pointNormals = tpointNormals.ref();
@ -151,7 +151,7 @@ tmp<vectorField> calcPointNormals
{
if (!isFeaturePoint[e[i]])
{
pointNormals[e[i]] = vector::zero;
pointNormals[e[i]] = Zero;
}
}
}
@ -164,7 +164,7 @@ tmp<vectorField> calcPointNormals
const labelList& eFaces = edgeFaces[edgeI];
// Get average edge normal
vector n = vector::zero;
vector n = Zero;
forAll(eFaces, i)
{
n += s.faceNormals()[eFaces[i]];
@ -483,7 +483,7 @@ void lloydsSmoothing
{
const labelList& pFaces = pointFaces[pointI];
point avg = point::zero;
point avg(Zero);
forAll(pFaces, pFaceI)
{
avg += faceCentres[pFaces[pFaceI]];
@ -498,7 +498,7 @@ void lloydsSmoothing
const pointField& points = s.points();
vectorField pointSum(s.nPoints(), vector::zero);
vectorField pointSum(s.nPoints(), Zero);
labelList nPointSum(s.nPoints(), 0);
forAll(edges, edgeI)

25
bin/tools/RunFunctions Normal file → Executable file
View File

@ -2,9 +2,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
# \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -42,8 +41,10 @@ isTest()
getNumberOfProcessors()
{
expandDictionary system/decomposeParDict \
| sed -ne 's/^numberOfSubdomains\s*\(.*\);/\1/p'
if [ -f $1 ]
then
expandDictionary $1 | sed -ne 's/^numberOfSubdomains\s*\(.*\);/\1/p'
fi
}
getApplication()
@ -101,13 +102,16 @@ runParallel()
{
LOG_NAME=
APP_RUN=
# Store any parsed additional arguments e.g. decomposeParDict
APP_PARARGS=
LOG_IGNORE=false
LOG_APPEND=false
LOG_SUFFIX=
nProcs=$(getNumberOfProcessors)
# Check the default decomposeParDict if available
nProcs=$(getNumberOfProcessors "system/decomposeParDict")
# Parse options and executable
while [ $# -gt 0 ] && [ -z "$APP_RUN" ]; do
while [ $# -gt 0 ] && [ -z "$APP_RUN" ] ; do
key="$1"
case "$key" in
-append|-a)
@ -125,6 +129,11 @@ runParallel()
nProcs="$2"
shift
;;
-decomposeParDict)
nProcs=$(getNumberOfProcessors "$2")
APP_PARARGS="$APP_PARARGS -decomposeParDict $2"
shift
;;
*)
APP_RUN="$key"
APP_NAME="${key##*/}"
@ -142,9 +151,9 @@ runParallel()
else
echo "Running $APP_RUN in parallel on $PWD using $nProcs processes"
if [ "$LOG_APPEND" = "true" ]; then
( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
( mpirun -np $nProcs $APP_RUN $APP_PARARGS -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
else
( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
( mpirun -np $nProcs $APP_RUN $APP_PARARGS -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
fi
fi
}

View File

@ -179,6 +179,7 @@ _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/ensight`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch`
# Clean environment paths again. Only remove duplicates

View File

@ -21,7 +21,7 @@ wmakeCheckPwd "$WM_PROJECT_DIR/src" || {
set -x
# Update OpenFOAM version strings if required
wmakePrintBuild -check || /bin/rm -f OpenFOAM/Make/*/global.? 2>/dev/null
wmakePrintBuild -check || wrmo OpenFOAM/global/global.o
wmakeLnInclude OpenFOAM
wmakeLnInclude OSspecific/${WM_OSTYPE:-POSIX}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -40,7 +40,7 @@ void Foam::Ostream::decrIndent()
}
else
{
indentLevel_--;
--indentLevel_;
}
}
@ -79,4 +79,35 @@ Foam::Ostream& Foam::Ostream::writeKeyword(const keyType& kw)
}
Foam::Ostream& Foam::Ostream::beginBlock(const word& keyword)
{
indent();
write(keyword);
endl();
beginBlock();
return *this;
}
Foam::Ostream& Foam::Ostream::beginBlock()
{
indent();
write(char(token::BEGIN_BLOCK));
incrIndent();
return *this;
}
Foam::Ostream& Foam::Ostream::endBlock()
{
decrIndent();
indent();
write(char(token::END_BLOCK));
return *this;
}
// ************************************************************************* //

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -109,8 +109,8 @@ public:
virtual Ostream& write(const word&) = 0;
//- Write keyType
// write regular expression as quoted string
// write plain word as word (unquoted)
// A plain word is written unquoted.
// A regular expression is written as a quoted string.
virtual Ostream& write(const keyType&);
//- Write string
@ -157,14 +157,29 @@ public:
//- Incrememt the indent level
void incrIndent()
{
indentLevel_++;
++indentLevel_;
}
//- Decrememt the indent level
void decrIndent();
//- Write the keyword followed by an appropriate indentation
Ostream& writeKeyword(const keyType&);
virtual Ostream& writeKeyword(const keyType&);
//- Write begin block group with the given name
// Uses the appropriate indentation,
// does not include a trailing newline.
virtual Ostream& beginBlock(const word&);
//- Write begin block group without a name
// Uses the appropriate indentation,
// does not include a trailing newline.
virtual Ostream& beginBlock();
//- Write end block group
// Uses the appropriate indentation,
// does not include a trailing newline.
virtual Ostream& endBlock();
// Stream state functions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -194,7 +194,7 @@ Foam::Ostream& Foam::UOPstream::write(const char* str)
if (nonWhiteChars.size() == 1)
{
return write(nonWhiteChars.c_str()[1]);
return write(nonWhiteChars[0]);
}
else if (nonWhiteChars.size())
{

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -95,157 +95,6 @@ void Foam::UPstream::setParRun(const label nProcs)
}
Foam::List<Foam::UPstream::commsStruct> Foam::UPstream::calcLinearComm
(
const label nProcs
)
{
List<commsStruct> linearCommunication(nProcs);
// Master
labelList belowIDs(nProcs - 1);
forAll(belowIDs, i)
{
belowIDs[i] = i + 1;
}
linearCommunication[0] = commsStruct
(
nProcs,
0,
-1,
belowIDs,
labelList(0)
);
// Slaves. Have no below processors, only communicate up to master
for (label procID = 1; procID < nProcs; procID++)
{
linearCommunication[procID] = commsStruct
(
nProcs,
procID,
0,
labelList(0),
labelList(0)
);
}
return linearCommunication;
}
void Foam::UPstream::collectReceives
(
const label procID,
const List<DynamicList<label>>& receives,
DynamicList<label>& allReceives
)
{
// Append my children (and my children children etc.) to allReceives.
const DynamicList<label>& myChildren = receives[procID];
forAll(myChildren, childI)
{
allReceives.append(myChildren[childI]);
collectReceives(myChildren[childI], receives, allReceives);
}
}
Foam::List<Foam::UPstream::commsStruct> Foam::UPstream::calcTreeComm
(
label nProcs
)
{
// Tree like schedule. For 8 procs:
// (level 0)
// 0 receives from 1
// 2 receives from 3
// 4 receives from 5
// 6 receives from 7
// (level 1)
// 0 receives from 2
// 4 receives from 6
// (level 2)
// 0 receives from 4
//
// The sends/receives for all levels are collected per processor
// (one send per processor; multiple receives possible) creating a table:
//
// So per processor:
// proc receives from sends to
// ---- ------------- --------
// 0 1,2,4 -
// 1 - 0
// 2 3 0
// 3 - 2
// 4 5 0
// 5 - 4
// 6 7 4
// 7 - 6
label nLevels = 1;
while ((1 << nLevels) < nProcs)
{
nLevels++;
}
List<DynamicList<label>> receives(nProcs);
labelList sends(nProcs, -1);
// Info<< "Using " << nLevels << " communication levels" << endl;
label offset = 2;
label childOffset = offset/2;
for (label level = 0; level < nLevels; level++)
{
label receiveID = 0;
while (receiveID < nProcs)
{
// Determine processor that sends and we receive from
label sendID = receiveID + childOffset;
if (sendID < nProcs)
{
receives[receiveID].append(sendID);
sends[sendID] = receiveID;
}
receiveID += offset;
}
offset <<= 1;
childOffset <<= 1;
}
// For all processors find the processors it receives data from
// (and the processors they receive data from etc.)
List<DynamicList<label>> allReceives(nProcs);
for (label procID = 0; procID < nProcs; procID++)
{
collectReceives(procID, receives, allReceives[procID]);
}
List<commsStruct> treeCommunication(nProcs);
for (label procID = 0; procID < nProcs; procID++)
{
treeCommunication[procID] = commsStruct
(
nProcs,
procID,
sends[procID],
receives[procID].shrink(),
allReceives[procID].shrink()
);
}
return treeCommunication;
}
Foam::label Foam::UPstream::allocateCommunicator
(
const label parentIndex,
@ -299,9 +148,9 @@ Foam::label Foam::UPstream::allocateCommunicator
}
parentCommunicator_[index] = parentIndex;
linearCommunication_[index] = calcLinearComm(procIDs_[index].size());
treeCommunication_[index] = calcTreeComm(procIDs_[index].size());
// Size but do not fill structure - this is done on-the-fly
linearCommunication_[index] = List<commsStruct>(procIDs_[index].size());
treeCommunication_[index] = List<commsStruct>(procIDs_[index].size());
if (doPstream && parRun())
{
@ -397,6 +246,115 @@ Foam::label Foam::UPstream::procNo
}
template<>
Foam::UPstream::commsStruct&
Foam::UList<Foam::UPstream::commsStruct>::operator[](const label procID)
{
UPstream::commsStruct& t = v_[procID];
if (t.allBelow().size() + t.allNotBelow().size() + 1 != size())
{
// Not yet allocated
label above(-1);
labelList below(0);
labelList allBelow(0);
if (size() < UPstream::nProcsSimpleSum)
{
// Linear schedule
if (procID == 0)
{
below.setSize(size()-1);
for (label procI = 1; procI < size(); procI++)
{
below[procI-1] = procI;
}
}
else
{
above = 0;
}
}
else
{
// Use tree like schedule. For 8 procs:
// (level 0)
// 0 receives from 1
// 2 receives from 3
// 4 receives from 5
// 6 receives from 7
// (level 1)
// 0 receives from 2
// 4 receives from 6
// (level 2)
// 0 receives from 4
//
// The sends/receives for all levels are collected per processor
// (one send per processor; multiple receives possible) creating
// a table:
//
// So per processor:
// proc receives from sends to
// ---- ------------- --------
// 0 1,2,4 -
// 1 - 0
// 2 3 0
// 3 - 2
// 4 5 0
// 5 - 4
// 6 7 4
// 7 - 6
label mod = 0;
for (label step = 1; step < size(); step = mod)
{
mod = step * 2;
if (procID % mod)
{
above = procID - (procID % mod);
break;
}
else
{
for
(
label j = procID + step;
j < size() && j < procID + mod;
j += step
)
{
below.append(j);
}
for
(
label j = procID + step;
j < size() && j < procID + mod;
j++
)
{
allBelow.append(j);
}
}
}
}
t = UPstream::commsStruct(size(), procID, above, below, allBelow);
}
return t;
}
template<>
const Foam::UPstream::commsStruct&
Foam::UList<Foam::UPstream::commsStruct>::operator[](const label procID) const
{
return const_cast<UList<UPstream::commsStruct>& >(*this).operator[](procID);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
bool Foam::UPstream::parRun_(false);

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -504,6 +504,14 @@ public:
Ostream& operator<<(Ostream&, const UPstream::commsStruct&);
// Template specialisation for access of commsStruct
template<>
UPstream::commsStruct&
UList<UPstream::commsStruct>::operator[](const label);
template<>
const UPstream::commsStruct&
UList<UPstream::commsStruct>::operator[](const label) const;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -61,8 +61,6 @@ void Foam::Pstream::exchange
recvBufs.setSize(sendBufs.size());
recvBufs.setSize(sendBufs.size());
if (UPstream::parRun() && UPstream::nProcs(comm) > 1)
{
label startOfRequests = Pstream::nRequests();

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -174,7 +174,8 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
{
if (subDict)
{
os << nl << indent << token::BEGIN_BLOCK << incrIndent << nl;
os << nl;
os.beginBlock() << nl;
}
forAllConstIter(IDLList<entry>, *this, iter)
@ -202,7 +203,7 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
if (subDict)
{
os << decrIndent << indent << token::END_BLOCK << endl;
os.endBlock() << endl;
}
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -122,7 +122,7 @@ void Foam::functionObjectFile::resetFile(const word& fileName)
Foam::Omanip<int> Foam::functionObjectFile::valueWidth(const label offset) const
{
return setw(IOstream::defaultPrecision() + addChars + offset);
return setw(writePrecision_ + addChars + offset);
}
@ -211,7 +211,7 @@ bool Foam::functionObjectFile::writeToFile() const
Foam::label Foam::functionObjectFile::charWidth() const
{
return IOstream::defaultPrecision() + addChars;
return writePrecision_ + addChars;
}

View File

@ -569,17 +569,16 @@ template<class Type, template<class> class PatchField, class GeoMesh>
void Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricBoundaryField::
writeEntry(const word& keyword, Ostream& os) const
{
os << keyword << nl << token::BEGIN_BLOCK << incrIndent << nl;
os.beginBlock(keyword) << nl;
forAll(*this, patchi)
{
os << indent << this->operator[](patchi).patch().name() << nl
<< indent << token::BEGIN_BLOCK << nl
<< incrIndent << this->operator[](patchi) << decrIndent
<< indent << token::END_BLOCK << endl;
os.beginBlock(this->operator[](patchi).patch().name()) << nl;
os << this->operator[](patchi);
os.endBlock() << endl;
}
os << decrIndent << token::END_BLOCK << endl;
os.endBlock() << endl;
// Check state of IOstream
os.check

View File

@ -584,61 +584,84 @@ void Foam::globalMeshData::calcPointConnectivity
transforms.nullTransformIndex()
);
}
// Send over.
// Send to master
globalPointSlavesMap().distribute(myData);
// String of connected points with their transform
allPointConnectivity.setSize(globalPointSlavesMap().constructSize());
allPointConnectivity = labelPairList(0);
// Pass1: do the master points since these also update local slaves
// (e.g. from local cyclics)
forAll(slaves, pointI)
{
// Reconstruct string of connected points
const labelList& pSlaves = slaves[pointI];
const labelList& pTransformSlaves = transformedSlaves[pointI];
labelPairList& pConnectivity = allPointConnectivity[pointI];
pConnectivity.setSize(1+pSlaves.size()+pTransformSlaves.size());
label connI = 0;
// Add myself
pConnectivity[connI++] = myData[pointI];
// Add untransformed points
forAll(pSlaves, i)
if (pSlaves.size()+pTransformSlaves.size())
{
pConnectivity[connI++] = myData[pSlaves[i]];
}
// Add transformed points.
forAll(pTransformSlaves, i)
{
// Get transform from index
label transformI = globalPointSlavesMap().whichTransform
(
pTransformSlaves[i]
);
// Add transform to connectivity
const labelPair& n = myData[pTransformSlaves[i]];
label procI = globalIndexAndTransform::processor(n);
label index = globalIndexAndTransform::index(n);
pConnectivity[connI++] = globalIndexAndTransform::encode
(
procI,
index,
transformI
);
}
labelPairList& pConnectivity = allPointConnectivity[pointI];
// Put back in slots
forAll(pSlaves, i)
{
allPointConnectivity[pSlaves[i]] = pConnectivity;
}
forAll(pTransformSlaves, i)
{
allPointConnectivity[pTransformSlaves[i]] = pConnectivity;
pConnectivity.setSize(1+pSlaves.size()+pTransformSlaves.size());
label connI = 0;
// Add myself
pConnectivity[connI++] = myData[pointI];
// Add untransformed points
forAll(pSlaves, i)
{
pConnectivity[connI++] = myData[pSlaves[i]];
}
// Add transformed points.
forAll(pTransformSlaves, i)
{
// Get transform from index
label transformI = globalPointSlavesMap().whichTransform
(
pTransformSlaves[i]
);
// Add transform to connectivity
const labelPair& n = myData[pTransformSlaves[i]];
label proci = globalIndexAndTransform::processor(n);
label index = globalIndexAndTransform::index(n);
pConnectivity[connI++] = globalIndexAndTransform::encode
(
proci,
index,
transformI
);
}
// Put back in slots
forAll(pSlaves, i)
{
allPointConnectivity[pSlaves[i]] = pConnectivity;
}
forAll(pTransformSlaves, i)
{
allPointConnectivity[pTransformSlaves[i]] = pConnectivity;
}
}
}
// Pass2: see if anything is still unset (should not be the case)
forAll(slaves, pointI)
{
labelPairList& pConnectivity = allPointConnectivity[pointI];
if (pConnectivity.size() == 0)
{
pConnectivity.setSize(1, myData[pointI]);
}
}
globalPointSlavesMap().reverseDistribute
(
allPointConnectivity.size(),
slaves.size(),
allPointConnectivity
);
}
@ -792,13 +815,13 @@ void Foam::globalMeshData::calcGlobalPointEdges
// Push back
globalPointSlavesMap().reverseDistribute
(
globalPointEdges.size(),
slaves.size(),
globalPointEdges
);
// Push back
globalPointSlavesMap().reverseDistribute
(
globalPointPoints.size(),
slaves.size(),
globalPointPoints
);
}
@ -880,7 +903,7 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
// 1. collect point connectivity - basically recreating globalPoints output.
// All points will now have a string of points. The transforms are
// All points will now have a string of coupled points. The transforms are
// in respect to the master.
List<labelPairList> allPointConnectivity;
calcPointConnectivity(allPointConnectivity);

View File

@ -1116,10 +1116,9 @@ bool Foam::polyBoundaryMesh::writeData(Ostream& os) const
forAll(patches, patchI)
{
os << indent << patches[patchI].name() << nl
<< indent << token::BEGIN_BLOCK << nl
<< incrIndent << patches[patchI] << decrIndent
<< indent << token::END_BLOCK << endl;
os.beginBlock(patches[patchI].name()) << nl;
os << patches[patchI];
os.endBlock() << endl;
}
os << decrIndent << token::END_LIST;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -437,12 +437,15 @@ void Foam::plane::writeDict(Ostream& os) const
{
os.writeKeyword("planeType") << "pointAndNormal"
<< token::END_STATEMENT << nl;
os << indent << "pointAndNormalDict" << nl
<< indent << token::BEGIN_BLOCK << incrIndent << nl;
os.writeKeyword("basePoint") << basePoint_ << token::END_STATEMENT << nl;
os.writeKeyword("normalVector") << unitVector_ << token::END_STATEMENT
<< nl;
os << decrIndent << indent << token::END_BLOCK << endl;
os.beginBlock("pointAndNormalDict") << nl;
os.writeKeyword("basePoint") << basePoint_
<< token::END_STATEMENT << nl;
os.writeKeyword("normalVector") << unitVector_
<< token::END_STATEMENT << nl;
os.endBlock() << endl;
}

View File

@ -230,7 +230,7 @@ public:
// point and density specification
inline tensor inertia
(
PointRef refPt = vector::zero,
PointRef refPt = Zero,
scalar density = 1.0
) const;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -264,16 +264,17 @@ void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
{
Function1<Type>::writeData(os);
os << token::END_STATEMENT << nl;
os << indent << word(this->name() + "Coeffs") << nl;
os << indent << token::BEGIN_BLOCK << incrIndent << nl;
os.beginBlock(word(this->name() + "Coeffs")) << nl;
// Note: for TableBase write the dictionary entries it needs but not
// the values themselves
TableBase<Type>::writeEntries(os);
os.writeKeyword("nHeaderLine") << nHeaderLine_ << token::END_STATEMENT
<< nl;
os.writeKeyword("refColumn") << refColumn_ << token::END_STATEMENT << nl;
os.writeKeyword("nHeaderLine") << nHeaderLine_
<< token::END_STATEMENT << nl;
os.writeKeyword("refColumn") << refColumn_
<< token::END_STATEMENT << nl;
// Force writing labelList in ascii
os.writeKeyword("componentColumns");
@ -293,8 +294,10 @@ void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
<< token::END_STATEMENT << nl;
os.writeKeyword("mergeSeparators") << mergeSeparators_
<< token::END_STATEMENT << nl;
os.writeKeyword("fileName") << fName_ << token::END_STATEMENT << nl;
os << decrIndent << indent << token::END_BLOCK << endl;
os.writeKeyword("fileName") << fName_
<< token::END_STATEMENT << nl;
os.endBlock() << endl;
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -90,14 +90,16 @@ void Foam::Function1Types::Sine<Type>::writeData(Ostream& os) const
{
Function1<Type>::writeData(os);
os << token::END_STATEMENT << nl;
os << indent << word(this->name() + "Coeffs") << nl;
os << indent << token::BEGIN_BLOCK << incrIndent << nl;
os.beginBlock(word(this->name() + "Coeffs")) << nl;
os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl;
amplitude_->writeData(os);
frequency_->writeData(os);
scale_->writeData(os);
level_->writeData(os);
os << decrIndent << indent << token::END_BLOCK << endl;
os.endBlock() << endl;
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -103,15 +103,17 @@ void Foam::Function1Types::Square<Type>::writeData(Ostream& os) const
{
Function1<Type>::writeData(os);
os << token::END_STATEMENT << nl;
os << indent << word(this->name() + "Coeffs") << nl;
os << indent << token::BEGIN_BLOCK << incrIndent << nl;
os.beginBlock(word(this->name() + "Coeffs")) << nl;
os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl;
os.writeKeyword("markSpace") << markSpace_ << token::END_STATEMENT << nl;
amplitude_->writeData(os);
frequency_->writeData(os);
scale_->writeData(os);
level_->writeData(os);
os << decrIndent << indent << token::END_BLOCK << endl;
os.endBlock() << endl;
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -78,17 +78,16 @@ template<class Type>
void Foam::Function1Types::TableFile<Type>::writeData(Ostream& os) const
{
Function1<Type>::writeData(os);
os << token::END_STATEMENT << nl;
os << token::END_STATEMENT << nl
<< indent << word(this->name() + "Coeffs") << nl
<< indent << token::BEGIN_BLOCK << nl << incrIndent;
os.beginBlock(word(this->name() + "Coeffs")) << nl;
// Note: for TableBase write the dictionary entries it needs but not
// the values themselves
TableBase<Type>::writeEntries(os);
os.writeKeyword("fileName")<< fName_ << token::END_STATEMENT << nl;
os << decrIndent << indent << token::END_BLOCK << endl;
os.endBlock() << endl;
}

View File

@ -195,9 +195,9 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
fvm::ddt(alpha, rho, flm_)
+ fvm::div(alphaRhoPhi, flm_)
==
rho*invT*LM
- fvm::Sp(rho*invT, flm_)
+ fvOptions(flm_)
alpha*rho*invT*LM
- fvm::Sp(alpha*rho*invT, flm_)
+ fvOptions(alpha, rho, flm_)
);
flmEqn.relax();
@ -213,9 +213,9 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
fvm::ddt(alpha, rho, fmm_)
+ fvm::div(alphaRhoPhi, fmm_)
==
rho*invT*MM
- fvm::Sp(rho*invT, fmm_)
+ fvOptions(fmm_)
alpha*rho*invT*MM
- fvm::Sp(alpha*rho*invT, fmm_)
+ fvOptions(alpha, rho, fmm_)
);
fmmEqn.relax();

View File

@ -525,7 +525,7 @@ void Foam::motionSmootherAlgo::setDisplacement
label pointI = cppMeshPoints[i];
if (isPatchPoint[pointI])
{
displacement[pointI] = vector::zero;
displacement[pointI] = Zero;
}
}
}

View File

@ -118,7 +118,7 @@ void Foam::polyMeshGeometry::updateCellCentresAndVols
const labelList& cFaces(cells[cellI]);
// Estimate the cell centre and bounding box using the face centres
vector cEst = vector::zero;
vector cEst(Zero);
boundBox bb(boundBox::invertedBox);
forAll(cFaces, cFaceI)

View File

@ -112,7 +112,7 @@ void Foam::pointMVCWeight::calcWeights
u(j) = uVec[toLocal[f[j]]];
}
vector v(point::zero);
vector v(Zero);
forAll(f, j)
{
label jPlus1 = f.fcIndex(j);

View File

@ -124,7 +124,7 @@ displacementSBRStressFvMotionSolver
(
"cellDisplacement",
displacementMotionSolver::pointDisplacement().dimensions(),
vector::zero
Zero
),
cellMotionBoundaryTypes<vector>
(

View File

@ -169,7 +169,7 @@ displacementLaplacianFvMotionSolver
(
"cellDisplacement",
pointDisplacement_.dimensions(),
vector::zero
Zero
),
cellMotionBoundaryTypes<vector>(pointDisplacement_.boundaryField())
),

View File

@ -74,7 +74,7 @@ surfaceAlignedSBRStressFvMotionSolver
IOobject::NO_WRITE
),
fvMesh_,
dimensionedVector("zero", dimless, vector::zero)
dimensionedVector("zero", dimless, Zero)
),
maxAng_(coeffDict().lookupOrDefault<scalar>("maxAng", 80.0)),
minAng_(coeffDict().lookupOrDefault<scalar>("minAng", 20.0)),
@ -93,7 +93,7 @@ surfaceAlignedSBRStressFvMotionSolver
IOobject::NO_WRITE
),
fvMesh_,
dimensionedSymmTensor("zero", dimless, symmTensor::zero)
dimensionedSymmTensor("zero", dimless, Zero)
),
minSigmaDiff_(coeffDict().lookupOrDefault<scalar>("minSigmaDiff", 1e-4))
{
@ -131,8 +131,8 @@ Foam::surfaceAlignedSBRStressFvMotionSolver::
void Foam::surfaceAlignedSBRStressFvMotionSolver::calculateCellRot()
{
cellRot_.internalField() = vector::zero;
pointDisplacement_.internalField() = vector::zero;
cellRot_.internalField() = Zero;
pointDisplacement_.internalField() = Zero;
// Find intersections
pointField start(fvMesh_.nInternalFaces());
@ -316,7 +316,7 @@ void Foam::surfaceAlignedSBRStressFvMotionSolver::solve()
IOobject::NO_WRITE
),
fvMesh_,
dimensionedVector("zero", dimLength, vector::zero),
dimensionedVector("zero", dimLength, Zero),
cellMotionBoundaryTypes<vector>
(
pointDisplacement().boundaryField()

View File

@ -123,11 +123,11 @@ void Foam::patchTransformedInterpolation::interpolate
pointDisplacement.correctBoundaryConditions();
vectorField pointRotation(nPoints, vector::zero);
vectorField pointRotation(nPoints, Zero);
scalarField pointExpansion(nPoints, scalar(0));
labelList pointDisplacementNSum(nPoints, 0);
vectorField pointDisplacementSum(nPoints, vector::zero);
vectorField pointDisplacementSum(nPoints, Zero);
forAll(patches_, patchI)
{

View File

@ -13,6 +13,12 @@ $(generalSources)/semiImplicitSource/semiImplicitSource.C
derivedSources=sources/derived
$(derivedSources)/actuationDiskSource/actuationDiskSource.C
$(derivedSources)/buoyancyForce/buoyancyForce.C
$(derivedSources)/buoyancyForce/buoyancyForceIO.C
$(derivedSources)/buoyancyEnergy/buoyancyEnergy.C
$(derivedSources)/buoyancyEnergy/buoyancyEnergyIO.C
$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSourceIO.C
$(derivedSources)/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.C
$(derivedSources)/explicitPorositySource/explicitPorositySource.C
$(derivedSources)/meanVelocityForce/meanVelocityForce.C
@ -33,14 +39,6 @@ $(derivedSources)/solidificationMeltingSource/solidificationMeltingSource.C
$(derivedSources)/solidificationMeltingSource/solidificationMeltingSourceIO.C
$(derivedSources)/tabulatedAccelerationSource/tabulatedAccelerationSource.C
$(derivedSources)/tabulatedAccelerationSource/tabulated6DoFAcceleration/tabulated6DoFAcceleration.C
/*
$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSourceIO.C
*/
$(derivedSources)/buoyancyForce/buoyancyForce.C
$(derivedSources)/buoyancyForce/buoyancyForceIO.C
$(derivedSources)/buoyancyEnergy/buoyancyEnergy.C
$(derivedSources)/buoyancyEnergy/buoyancyEnergyIO.C
interRegion = sources/interRegion
$(interRegion)/interRegionHeatTransfer/interRegionHeatTransferModel/interRegionHeatTransferModel.C

View File

@ -179,9 +179,9 @@ directionalPressureGradientExplicitSource
:
cellSetOption(sourceName, modelType, dict, mesh),
model_(PressureDropModelNames_.read(coeffs_.lookup("model"))),
gradP0_(cells_.size(), vector::zero),
dGradP_(cells_.size(), vector::zero),
gradPporous_(cells_.size(), vector::zero),
gradP0_(cells_.size(), Zero),
dGradP_(cells_.size(), Zero),
gradPporous_(cells_.size(), Zero),
flowDir_(coeffs_.lookup("flowDir")),
invAPtr_(NULL),
D_(0),
@ -386,7 +386,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::correct
}
// Accumulate 'upstream' velocity into cells
vectorField UfCells(cells_.size(), vector::zero);
vectorField UfCells(cells_.size(), Zero);
scalarField UfCellWeights(cells_.size(), 0.0);
const polyBoundaryMesh& pbm = mesh_.boundaryMesh();
@ -486,7 +486,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::addSup
IOobject::NO_WRITE
),
mesh_,
dimensionedVector("zero", eqn.dimensions()/dimVolume, vector::zero)
dimensionedVector("zero", eqn.dimensions()/dimVolume, Zero)
);
UIndirectList<vector>(Su, cells_) = gradP0_ + dGradP_ + gradPporous_;
@ -536,7 +536,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::constrain
}
gradP0_ += dGradP_;
dGradP_ = vector::zero;
dGradP_ = Zero;
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -69,14 +69,12 @@ class DSMCParcel
:
public ParcelType
{
// Private member data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Class to hold DSMC particle constant properties
class constantProperties
{

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,7 +31,7 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
template<class ParcelType>
const std::size_t Foam::DSMCParcel<ParcelType>::sizeofFields_
const std::size_t Foam::DSMCParcel<ParcelType>::sizeofFields
(
sizeof(DSMCParcel<ParcelType>) - sizeof(ParcelType)
);
@ -62,7 +62,7 @@ Foam::DSMCParcel<ParcelType>::DSMCParcel
}
else
{
is.read(reinterpret_cast<char*>(&U_), sizeofFields_);
is.read(reinterpret_cast<char*>(&U_), sizeofFields);
}
}
@ -160,7 +160,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.U_),
DSMCParcel<ParcelType>::sizeofFields_
DSMCParcel<ParcelType>::sizeofFields
);
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -85,12 +85,12 @@ class particle
//- Size in bytes of the position data
static const std::size_t sizeofPosition_;
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
template<class CloudType>
class TrackingData
{
@ -319,6 +319,12 @@ public:
"tetFaceI tetPtI origProc origId"
);
//- String representation of property types
DefinePropertyTypes
(
"vector label label scalar label label label label"
);
//- Cumulative particle counter - used to provode unique ID
static label particleCount_;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -28,14 +28,15 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
Foam::string Foam::particle::propertyList_ = Foam::particle::propertyList();
Foam::string Foam::particle::propertyList_ = Foam::particle::propertyList();
Foam::string Foam::particle::propertyTypes_ = Foam::particle::propertyTypes();
const std::size_t Foam::particle::sizeofPosition_
(
offsetof(particle, faceI_) - offsetof(particle, position_)
);
const std::size_t Foam::particle::sizeofFields_
const std::size_t Foam::particle::sizeofFields
(
sizeof(particle) - offsetof(particle, position_)
);
@ -73,7 +74,7 @@ Foam::particle::particle(const polyMesh& mesh, Istream& is, bool readFields)
{
if (readFields)
{
is.read(reinterpret_cast<char*>(&position_), sizeofFields_);
is.read(reinterpret_cast<char*>(&position_), sizeofFields);
}
else
{
@ -120,7 +121,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const particle& p)
os.write
(
reinterpret_cast<const char*>(&p.position_),
particle::sizeofFields_
particle::sizeofFields
);
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -39,6 +39,9 @@ namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Define a static 'propertyList' for particle properties
// The property list is space-delimited with brackets for vector groupings
// \sa AddToPropertyList
#define DefinePropertyList(str) \
\
static string propertyList_; \
@ -49,6 +52,9 @@ namespace Foam
}
//- Add to existing static 'propertyList' for particle properties
// The property list is space-delimited with brackets for vector groupings
// \sa DefinePropertyList
#define AddToPropertyList(ParcelType, str) \
\
static string propertyList_; \
@ -59,6 +65,30 @@ namespace Foam
}
//- Define a static 'propertyTypes' for the types of particle properties
// \sa AddToPropertyTypes
#define DefinePropertyTypes(str) \
\
static string propertyTypes_; \
\
static string propertyTypes() \
{ \
return str; \
}
//- Add to existing static 'propertyTypes' for the types of particle properties
// \sa AddToPropertyTypes
#define AddToPropertyTypes(ParcelType, str) \
\
static string propertyTypes_; \
\
static string propertyTypes() \
{ \
return ParcelType::propertyTypes() + str; \
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -72,14 +72,12 @@ class CollidingParcel
:
public ParcelType
{
// Private member data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Class to hold thermo particle constant properties
class constantProperties
:
@ -160,6 +158,14 @@ public:
+ " (collisionRecordsWallData)"
);
//- String representation of property types
static string propertyTypes()
{
// TODO: collision information types
NotImplemented;
return string::null;
}
// Constructors

View File

@ -34,7 +34,7 @@ Foam::string Foam::CollidingParcel<ParcelType>::propertyList_ =
Foam::CollidingParcel<ParcelType>::propertyList();
template<class ParcelType>
const std::size_t Foam::CollidingParcel<ParcelType>::sizeofFields_
const std::size_t Foam::CollidingParcel<ParcelType>::sizeofFields
(
offsetof(CollidingParcel<ParcelType>, collisionRecords_)
- offsetof(CollidingParcel<ParcelType>, f_)
@ -67,7 +67,7 @@ Foam::CollidingParcel<ParcelType>::CollidingParcel
}
else
{
is.read(reinterpret_cast<char*>(&f_), sizeofFields_);
is.read(reinterpret_cast<char*>(&f_), sizeofFields);
}
is >> collisionRecords_;
@ -297,7 +297,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.f_),
CollidingParcel<ParcelType>::sizeofFields_
CollidingParcel<ParcelType>::sizeofFields
);
os << p.collisionRecords();
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -80,15 +80,15 @@ class KinematicParcel
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
//- Number of particle tracking attempts before we assume that it stalls
static label maxTrackAttempts;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Class to hold kinematic particle constant properties
class constantProperties
{
@ -234,7 +234,8 @@ protected:
// Parcel properties
//- Active flag - tracking inactive when active = false
bool active_;
// Store as label for data alignment, but only has bool states
label active_;
//- Parcel type id
label typeId_;
@ -309,7 +310,7 @@ public:
+ " typeId"
+ " nParticle"
+ " d"
+ " dTarget "
+ " dTarget"
+ " (Ux Uy Uz)"
+ " rho"
+ " age"
@ -317,6 +318,22 @@ public:
+ " (UTurbx UTurby UTurbz)"
);
//- String representation of property types
AddToPropertyTypes
(
ParcelType,
" label"
+ " label"
+ " scalar"
+ " scalar"
+ " scalar"
+ " vector"
+ " scalar"
+ " scalar"
+ " scalar"
+ " vector"
);
// Constructors
@ -442,8 +459,8 @@ public:
// Edit
//- Return const access to active flag
inline bool& active();
//- Set active flag to the specified state
inline void active(const bool state);
//- Return access to type id
inline label& typeId();

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -265,9 +265,9 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::muc() const
template<class ParcelType>
inline bool& Foam::KinematicParcel<ParcelType>::active()
inline void Foam::KinematicParcel<ParcelType>::active(const bool state)
{
return active_;
active_ = state;
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -35,7 +35,11 @@ Foam::string Foam::KinematicParcel<ParcelType>::propertyList_ =
Foam::KinematicParcel<ParcelType>::propertyList();
template<class ParcelType>
const std::size_t Foam::KinematicParcel<ParcelType>::sizeofFields_
Foam::string Foam::KinematicParcel<ParcelType>::propertyTypes_ =
Foam::KinematicParcel<ParcelType>::propertyTypes();
template<class ParcelType>
const std::size_t Foam::KinematicParcel<ParcelType>::sizeofFields
(
offsetof(KinematicParcel<ParcelType>, rhoc_)
- offsetof(KinematicParcel<ParcelType>, active_)
@ -84,7 +88,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel
}
else
{
is.read(reinterpret_cast<char*>(&active_), sizeofFields_);
is.read(reinterpret_cast<char*>(&active_), sizeofFields);
}
}
@ -229,7 +233,7 @@ Foam::Ostream& Foam::operator<<
if (os.format() == IOstream::ASCII)
{
os << static_cast<const ParcelType&>(p)
<< token::SPACE << p.active()
<< token::SPACE << bool(p.active())
<< token::SPACE << p.typeId()
<< token::SPACE << p.nParticle()
<< token::SPACE << p.d()
@ -246,7 +250,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.active_),
KinematicParcel<ParcelType>::sizeofFields_
KinematicParcel<ParcelType>::sizeofFields
);
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -73,14 +73,13 @@ class MPPICParcel
:
public ParcelType
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Tracking data
template<class CloudType>
class TrackingData
:
@ -175,7 +174,14 @@ public:
AddToPropertyList
(
ParcelType,
"(UCorrectx UCorrecty UCorrectz)"
" (UCorrectx UCorrecty UCorrectz)"
);
//- String representation of property types
AddToPropertyTypes
(
ParcelType,
" vector"
);

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -34,7 +34,11 @@ Foam::string Foam::MPPICParcel<ParcelType>::propertyList_ =
Foam::MPPICParcel<ParcelType>::propertyList();
template<class ParcelType>
const std::size_t Foam::MPPICParcel<ParcelType>::sizeofFields_
Foam::string Foam::MPPICParcel<ParcelType>::propertyTypes_ =
Foam::MPPICParcel<ParcelType>::propertyTypes();
template<class ParcelType>
const std::size_t Foam::MPPICParcel<ParcelType>::sizeofFields
(
sizeof(MPPICParcel<ParcelType>) - sizeof(ParcelType)
);
@ -61,7 +65,7 @@ Foam::MPPICParcel<ParcelType>::MPPICParcel
}
else
{
is.read(reinterpret_cast<char*>(&UCorrect_), sizeofFields_);
is.read(reinterpret_cast<char*>(&UCorrect_), sizeofFields);
}
}
@ -146,7 +150,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.UCorrect_),
MPPICParcel<ParcelType>::sizeofFields_
MPPICParcel<ParcelType>::sizeofFields
);
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -66,14 +66,12 @@ class ReactingMultiphaseParcel
:
public ParcelType
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
// IDs of phases in ReacingParcel phase list (Y)
static const label GAS;
@ -267,6 +265,15 @@ public:
+ " nSolid(Y1..YN)"
);
//- String representation of property types
AddToPropertyTypes
(
ParcelType,
" List<scalar>"
+ " List<scalar>"
+ " List<Scalar>"
);
// Constructors

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +33,11 @@ Foam::string Foam::ReactingMultiphaseParcel<ParcelType>::propertyList_ =
Foam::ReactingMultiphaseParcel<ParcelType>::propertyList();
template<class ParcelType>
const std::size_t Foam::ReactingMultiphaseParcel<ParcelType>::sizeofFields_
Foam::string Foam::ReactingMultiphaseParcel<ParcelType>::propertyTypes_ =
Foam::ReactingMultiphaseParcel<ParcelType>::propertyTypes();
template<class ParcelType>
const std::size_t Foam::ReactingMultiphaseParcel<ParcelType>::sizeofFields
(
0
);

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,14 +67,12 @@ class ReactingParcel
:
public ParcelType
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Class to hold reacting parcel constant properties
class constantProperties
:
@ -221,6 +219,14 @@ public:
+ " nPhases(Y1..YN)"
);
//- String representation of property types
AddToPropertyTypes
(
ParcelType,
" scalar"
+ " List<scalar>"
);
// Constructors

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +33,11 @@ Foam::string Foam::ReactingParcel<ParcelType>::propertyList_ =
Foam::ReactingParcel<ParcelType>::propertyList();
template<class ParcelType>
const std::size_t Foam::ReactingParcel<ParcelType>::sizeofFields_
Foam::string Foam::ReactingParcel<ParcelType>::propertyTypes_ =
Foam::ReactingParcel<ParcelType>::propertyTypes();
template<class ParcelType>
const std::size_t Foam::ReactingParcel<ParcelType>::sizeofFields
(
sizeof(scalar)
);
@ -64,7 +68,7 @@ Foam::ReactingParcel<ParcelType>::ReactingParcel
}
else
{
is.read(reinterpret_cast<char*>(&mass0_), sizeofFields_);
is.read(reinterpret_cast<char*>(&mass0_), sizeofFields);
is >> Ymix;
}
@ -251,7 +255,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.mass0_),
ReactingParcel<ParcelType>::sizeofFields_
ReactingParcel<ParcelType>::sizeofFields
);
os << p.Y();
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,14 +67,12 @@ class ThermoParcel
:
public ParcelType
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Class to hold thermo particle constant properties
class constantProperties
:
@ -277,6 +275,14 @@ public:
+ " Cp"
);
//- String representation of property types
AddToPropertyTypes
(
ParcelType,
" scalar"
+ " scalar"
);
// Constructors

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +33,11 @@ Foam::string Foam::ThermoParcel<ParcelType>::propertyList_ =
Foam::ThermoParcel<ParcelType>::propertyList();
template<class ParcelType>
const std::size_t Foam::ThermoParcel<ParcelType>::sizeofFields_
Foam::string Foam::ThermoParcel<ParcelType>::propertyTypes_ =
Foam::ThermoParcel<ParcelType>::propertyTypes();
template<class ParcelType>
const std::size_t Foam::ThermoParcel<ParcelType>::sizeofFields
(
offsetof(ThermoParcel<ParcelType>, Tc_)
- offsetof(ThermoParcel<ParcelType>, T_)
@ -65,7 +69,7 @@ Foam::ThermoParcel<ParcelType>::ThermoParcel
}
else
{
is.read(reinterpret_cast<char*>(&T_), sizeofFields_);
is.read(reinterpret_cast<char*>(&T_), sizeofFields);
}
}
@ -154,7 +158,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.T_),
ThermoParcel<ParcelType>::sizeofFields_
ThermoParcel<ParcelType>::sizeofFields
);
}

View File

@ -36,7 +36,7 @@ namespace Foam
Foam::kinematicParcelInjectionData::kinematicParcelInjectionData()
:
x_(point::zero),
x_(Zero),
U_(Zero),
d_(0.0),
rho_(0.0),

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -181,7 +181,6 @@ bool Foam::LocalInteraction<CloudType>::correct
if (patchI >= 0)
{
vector& U = p.U();
bool& active = p.active();
typename PatchInteractionModel<CloudType>::interactionType it =
this->wordToInteractionType
@ -196,7 +195,7 @@ bool Foam::LocalInteraction<CloudType>::correct
scalar dm = p.mass()*p.nParticle();
keepParticle = false;
active = false;
p.active(false);
U = Zero;
nEscape_[patchI]++;
massEscape_[patchI] += dm;
@ -213,7 +212,7 @@ bool Foam::LocalInteraction<CloudType>::correct
scalar dm = p.mass()*p.nParticle();
keepParticle = true;
active = false;
p.active(false);
U = Zero;
nStick_[patchI]++;
massStick_[patchI] += dm;
@ -228,7 +227,7 @@ bool Foam::LocalInteraction<CloudType>::correct
case PatchInteractionModel<CloudType>::itRebound:
{
keepParticle = true;
active = true;
p.active(true);
vector nw;
vector Up;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -69,7 +69,7 @@ bool Foam::Rebound<CloudType>::correct
vector& U = p.U();
keepParticle = true;
p.active() = true;
p.active(true);
vector nw;
vector Up;

View File

@ -112,8 +112,6 @@ bool Foam::StandardWallInteraction<CloudType>::correct
{
vector& U = p.U();
bool& active = p.active();
if (isA<wallPolyPatch>(pp))
{
switch (interactionType_)
@ -121,7 +119,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
case PatchInteractionModel<CloudType>::itEscape:
{
keepParticle = false;
active = false;
p.active(false);
U = Zero;
nEscape_++;
massEscape_ += p.nParticle()*p.mass();
@ -130,7 +128,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
case PatchInteractionModel<CloudType>::itStick:
{
keepParticle = true;
active = false;
p.active(false);
U = Zero;
nStick_++;
massStick_ += p.nParticle()*p.mass();
@ -139,7 +137,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
case PatchInteractionModel<CloudType>::itRebound:
{
keepParticle = true;
active = true;
p.active(true);
vector nw;
vector Up;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -58,17 +58,15 @@ class molecule
:
public particle
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Size in bytes of the fields
static const std::size_t sizeofFields;
// Values of special that are less than zero are for built-in functionality.
// Values greater than zero are user specifiable/expandable (i.e. test
// special_ >= SPECIAL_USER)
// Values greater than zero are user specifiable/expandable
// (i.e. test special_ >= SPECIAL_USER)
enum specialTypes
{
@ -78,6 +76,7 @@ public:
SPECIAL_USER = 1
};
//- Class to hold molecule constant properties
class constantProperties
{

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,7 +29,7 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
const std::size_t Foam::molecule::sizeofFields_
const std::size_t Foam::molecule::sizeofFields
(
offsetof(molecule, siteForces_) - offsetof(molecule, Q_)
);
@ -77,7 +77,7 @@ Foam::molecule::molecule
}
else
{
is.read(reinterpret_cast<char*>(&Q_), sizeofFields_);
is.read(reinterpret_cast<char*>(&Q_), sizeofFields);
is >> siteForces_ >> sitePositions_;
}
}
@ -276,7 +276,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const molecule& mol)
os.write
(
reinterpret_cast<const char*>(&mol.Q_),
molecule::sizeofFields_
molecule::sizeofFields
);
os << mol.siteForces_ << mol.sitePositions_;
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -61,9 +61,6 @@ class solidParticle
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
//- Diameter
scalar d_;
@ -116,6 +113,12 @@ public:
};
// Static data members
//- Size in bytes of the fields
static const std::size_t sizeofFields;
// Constructors
//- Construct from components

View File

@ -28,7 +28,7 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
const std::size_t Foam::solidParticle::sizeofFields_
const std::size_t Foam::solidParticle::sizeofFields
(
sizeof(solidParticle) - sizeof(particle)
);
@ -54,7 +54,7 @@ Foam::solidParticle::solidParticle
}
else
{
is.read(reinterpret_cast<char*>(&d_), sizeofFields_);
is.read(reinterpret_cast<char*>(&d_), sizeofFields);
}
}
@ -130,7 +130,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const solidParticle& p)
os.write
(
reinterpret_cast<const char*>(&p.d_),
solidParticle::sizeofFields_
solidParticle::sizeofFields
);
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ Class
Foam::SprayParcel
Description
Reacing spray parcel, with added functionality for atomization and breakup
Reacting spray parcel, with added functionality for atomization and breakup
\*---------------------------------------------------------------------------*/
@ -59,12 +59,6 @@ class SprayParcel
:
public ParcelType
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
public:
//- Class to hold reacting particle constant properties
@ -178,6 +172,9 @@ public:
// Static data members
//- Size in bytes of the fields
static const std::size_t sizeofFields;
//- Runtime type information
TypeName("SprayParcel");
@ -185,7 +182,7 @@ public:
AddToPropertyList
(
ParcelType,
+ " d0"
" d0"
+ " position0"
+ " sigma"
+ " mu"
@ -200,6 +197,25 @@ public:
+ " user"
);
//- String representation of property types
AddToPropertyTypes
(
ParcelType,
" scalar"
+ " vector"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
+ " scalar"
);
// Constructors

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,9 +32,13 @@ template<class ParcelType>
Foam::string Foam::SprayParcel<ParcelType>::propertyList_ =
Foam::SprayParcel<ParcelType>::propertyList();
template<class ParcelType>
Foam::string Foam::SprayParcel<ParcelType>::propertyTypes_ =
Foam::SprayParcel<ParcelType>::propertyTypes();
template<class ParcelType>
const std::size_t Foam::SprayParcel<ParcelType>::sizeofFields_
const std::size_t Foam::SprayParcel<ParcelType>::sizeofFields
(
sizeof(SprayParcel<ParcelType>) - sizeof(ParcelType)
);
@ -85,7 +89,7 @@ Foam::SprayParcel<ParcelType>::SprayParcel
}
else
{
is.read(reinterpret_cast<char*>(&d0_), sizeofFields_);
is.read(reinterpret_cast<char*>(&d0_), sizeofFields);
}
}
@ -311,7 +315,7 @@ Foam::Ostream& Foam::operator<<
os.write
(
reinterpret_cast<const char*>(&p.d0_),
SprayParcel<ParcelType>::sizeofFields_
SprayParcel<ParcelType>::sizeofFields
);
}

View File

@ -630,13 +630,13 @@ bool Foam::medialAxisMeshMover::unmarkExtrusion
if (extrudeStatus[patchPointI] == snappyLayerDriver::EXTRUDE)
{
extrudeStatus[patchPointI] = snappyLayerDriver::NOEXTRUDE;
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
return true;
}
else if (extrudeStatus[patchPointI] == snappyLayerDriver::EXTRUDEREMOVE)
{
extrudeStatus[patchPointI] = snappyLayerDriver::NOEXTRUDE;
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
return true;
}
else
@ -1224,7 +1224,7 @@ Foam::medialAxisMeshMover::medialAxisMeshMover
false
),
pMesh(),
dimensionedVector("dispVec", dimLength, vector::zero)
dimensionedVector("dispVec", dimLength, Zero)
),
medialRatio_
(
@ -1266,7 +1266,7 @@ Foam::medialAxisMeshMover::medialAxisMeshMover
false
),
pMesh(),
dimensionedVector("medialVec", dimLength, vector::zero)
dimensionedVector("medialVec", dimLength, Zero)
)
{
update(dict);
@ -1594,7 +1594,7 @@ void Foam::medialAxisMeshMover::calculateDisplacement
{
if (!pointWallDist[pointI].valid(dummyTrackData))
{
displacement[pointI] = vector::zero;
displacement[pointI] = Zero;
}
else
{

View File

@ -1737,7 +1737,7 @@ Foam::tmp<Foam::pointVectorField> Foam::meshRefinement::makeDisplacementField
IOobject::AUTO_WRITE
),
pMesh,
dimensionedVector("displacement", dimLength, vector::zero),
dimensionedVector("displacement", dimLength, Zero),
patchFieldTypes
)
);

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -669,6 +669,7 @@ private:
//- Determines cell zone from cell region information.
bool calcRegionToZone
(
const label backgroundZoneID,
const label surfZoneI,
const label ownRegion,
const label neiRegion,
@ -680,6 +681,7 @@ private:
// marked in namedSurfaceIndex regarded as blocked.
void findCellZoneTopo
(
const label backgroundZoneID,
const pointField& locationsInMesh,
const labelList& allSurfaceIndex,
const labelList& namedSurfaceIndex,
@ -700,6 +702,7 @@ private:
void zonify
(
const bool allowFreeStandingZoneFaces,
const label backgroundZoneID,
const pointField& locationsInMesh,
const wordList& zonesInMesh,

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -311,6 +311,7 @@ void Foam::meshRefinement::getBafflePatches
zonify
(
true, // allowFreeStandingZoneFaces
-2, // zone to put unreached cells into
locationsInMesh,
zonesInMesh,
@ -1812,6 +1813,7 @@ void Foam::meshRefinement::findCellZoneInsideWalk
bool Foam::meshRefinement::calcRegionToZone
(
const label backgroundZoneID,
const label surfZoneI,
const label ownRegion,
const label neiRegion,
@ -1835,8 +1837,12 @@ bool Foam::meshRefinement::calcRegionToZone
{
// Face between unset and my region. Put unset
// region into keepRegion
regionToCellZone[ownRegion] = -1;
changed = true;
//MEJ: see comment in findCellZoneTopo
if (backgroundZoneID != -2)
{
regionToCellZone[ownRegion] = backgroundZoneID;
changed = true;
}
}
else if (regionToCellZone[neiRegion] != -2)
{
@ -1852,8 +1858,11 @@ bool Foam::meshRefinement::calcRegionToZone
{
// Face between unset and my region. Put unset
// region into keepRegion
regionToCellZone[neiRegion] = -1;
changed = true;
if (backgroundZoneID != -2)
{
regionToCellZone[neiRegion] = backgroundZoneID;
changed = true;
}
}
else if (regionToCellZone[ownRegion] != -2)
{
@ -1870,6 +1879,7 @@ bool Foam::meshRefinement::calcRegionToZone
void Foam::meshRefinement::findCellZoneTopo
(
const label backgroundZoneID,
const pointField& locationsInMesh,
const labelList& allSurfaceIndex,
const labelList& namedSurfaceIndex,
@ -1877,6 +1887,25 @@ void Foam::meshRefinement::findCellZoneTopo
labelList& cellToZone
) const
{
// This routine splits the mesh into regions, based on the intersection
// with a surface. The problem is that we know the surface which
// (intersected) face belongs to (in namedSurfaceIndex) but we don't
// know which side of the face it relates to. So all we are doing here
// is get the correspondence between surface/cellZone and regionSplit
// region.
// See the logic in calcRegionToZone. The problem is what to do
// with unreachable parts of the mesh (cellToZone = -2).
// In 23x this routine was only called for actually zoneing an existing
// mesh so we had to do something with these cells and they
// would get set to -1 (background). However in this version this routine
// also gets used much earlier on when after the surface refinement it
// removes unreachable cells ('Removing mesh beyond surface intersections')
// and this is when we keep -2 so it gets removed.
// So the zone to set these unmarked cells to is provided as argument:
// - backgroundZoneID = -2 : do not change so remove cells
// - backgroundZoneID = -1 : put into background
// Assumes:
// - region containing keepPoint does not go into a cellZone
// - all other regions can be found by crossing faces marked in
@ -1995,6 +2024,7 @@ void Foam::meshRefinement::findCellZoneTopo
// of internal face.
bool changedCell = calcRegionToZone
(
backgroundZoneID,
surfaceToCellZone[surfI],
cellRegion[mesh_.faceOwner()[faceI]],
cellRegion[mesh_.faceNeighbour()[faceI]],
@ -2032,6 +2062,7 @@ void Foam::meshRefinement::findCellZoneTopo
{
bool changedCell = calcRegionToZone
(
backgroundZoneID,
surfaceToCellZone[surfI],
cellRegion[mesh_.faceOwner()[faceI]],
neiCellRegion[faceI-mesh_.nInternalFaces()],
@ -2309,6 +2340,7 @@ void Foam::meshRefinement::getIntersections
void Foam::meshRefinement::zonify
(
const bool allowFreeStandingZoneFaces,
const label backgroundZoneID,
const pointField& locationsInMesh,
const wordList& zonesInMesh,
@ -2513,6 +2545,7 @@ void Foam::meshRefinement::zonify
findCellZoneTopo
(
backgroundZoneID,
pointField(0),
globalRegion1, // To split up cells
namedSurfaceIndex, // Step across named surfaces to propagate
@ -4271,7 +4304,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zone per cell:
// -2 : unset
// -2 : unset : not allowed!
// -1 : not in any zone (zone 'none')
// >=0: zoneID
// namedSurfaceIndex:
@ -4283,6 +4316,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify
zonify
(
allowFreeStandingZoneFaces,
-1, // Set all cells with cellToZone -2 to -1
locationsInMesh,
zonesInMesh,

View File

@ -1558,7 +1558,7 @@ bool Foam::meshRefinement::isGap
{
scalar cosAngle = (normal0 & normal1);
vector avg = vector::zero;
vector avg = Zero;
if (cosAngle < (-1+planarCos))
{
// Opposite normals
@ -1615,7 +1615,7 @@ bool Foam::meshRefinement::isNormalGap
{
scalar cosAngle = (normal0 & normal1);
vector avg = vector::zero;
vector avg = Zero;
if (cosAngle < (-1+planarCos))
{
// Opposite normals
@ -1782,8 +1782,8 @@ Foam::label Foam::meshRefinement::markProximityRefinement
// minLevel) and cache per cell the max surface level and the local normal
// on that surface.
labelList cellMaxLevel(mesh_.nCells(), -1);
vectorField cellMaxNormal(mesh_.nCells(), vector::zero);
pointField cellMaxLocation(mesh_.nCells(), vector::zero);
vectorField cellMaxNormal(mesh_.nCells(), Zero);
pointField cellMaxLocation(mesh_.nCells(), Zero);
{
// Per segment the normals of the surfaces

View File

@ -536,7 +536,7 @@ void Foam::refinementFeatures::findNearestEdge
nearInfo.setSize(samples.size());
nearInfo = pointIndexHit();
nearNormal.setSize(samples.size());
nearNormal = vector::zero;
nearNormal = Zero;
forAll(edgeTrees_, featI)
{
@ -595,7 +595,7 @@ void Foam::refinementFeatures::findNearestRegionEdge
nearInfo.setSize(samples.size());
nearInfo = pointIndexHit();
nearNormal.setSize(samples.size());
nearNormal = vector::zero;
nearNormal = Zero;
const PtrList<indexedOctree<treeDataEdge>>& regionTrees =

View File

@ -1216,7 +1216,7 @@ void Foam::refinementSurfaces::findNearestIntersection
region1.setSize(start.size());
region1 = -1;
normal1.setSize(start.size());
normal1 = vector::zero;
normal1 = Zero;
// Current end of segment to test.
pointField nearest(end);
@ -1325,7 +1325,7 @@ void Foam::refinementSurfaces::findNearestIntersection
surface1.setSize(start.size());
surface1 = -1;
normal1.setSize(start.size());
normal1 = vector::zero;
normal1 = Zero;
// Current end of segment to test.
pointField nearest(end);
@ -1374,7 +1374,7 @@ void Foam::refinementSurfaces::findNearestIntersection
hitInfo1.setSize(start.size());
hitInfo1 = pointIndexHit();
normal1.setSize(start.size());
normal1 = vector::zero;
normal1 = Zero;
// Current end of segment to test.
pointField nearest(end);
@ -1559,7 +1559,7 @@ void Foam::refinementSurfaces::findNearestRegion
hitRegion.setSize(hitSurface.size());
hitRegion = -1;
hitNormal.setSize(hitSurface.size());
hitNormal = vector::zero;
hitNormal = Zero;
forAll(surfacesToTest, i)
{
@ -1784,7 +1784,7 @@ void Foam::refinementSurfaces::findNearestRegion
hitRegion.setSize(hitSurface.size());
hitRegion = -1;
hitNormal.setSize(hitSurface.size());
hitNormal = vector::zero;
hitNormal = Zero;
forAll(surfacesToTest, i)
{

View File

@ -223,14 +223,14 @@ bool Foam::snappyLayerDriver::unmarkExtrusion
{
extrudeStatus[patchPointI] = NOEXTRUDE;
patchNLayers[patchPointI] = 0;
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
return true;
}
else if (extrudeStatus[patchPointI] == EXTRUDEREMOVE)
{
extrudeStatus[patchPointI] = NOEXTRUDE;
patchNLayers[patchPointI] = 0;
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
return true;
}
else
@ -866,7 +866,7 @@ Foam::snappyLayerDriver::makeLayerDisplacementField
IOobject::AUTO_WRITE
),
pMesh,
dimensionedVector("displacement", dimLength, vector::zero),
dimensionedVector("displacement", dimLength, Zero),
patchFieldTypes,
actualPatchTypes
)
@ -953,7 +953,7 @@ void Foam::snappyLayerDriver::growNoExtrusion
{
if (extrudeStatus[patchPointI] == NOEXTRUDE)
{
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
patchNLayers[patchPointI] = 0;
}
}
@ -1532,7 +1532,7 @@ void Foam::snappyLayerDriver::getPatchDisplacement
{
// Do not use unmarkExtrusion; forcibly set to zero extrusion.
patchNLayers[patchPointI] = 0;
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
}
else
{
@ -1561,7 +1561,7 @@ void Foam::snappyLayerDriver::getPatchDisplacement
{
if (extrudeStatus[patchPointI] == EXTRUDEREMOVE)
{
point avg(vector::zero);
point avg(Zero);
label nPoints = 0;
const labelList& pEdges = pp.pointEdges()[patchPointI];
@ -1798,7 +1798,7 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
else if (extrudeStatus[patchPointI] == NOEXTRUDE)
{
// Make sure displacement is 0. Should already be so but ...
patchDisp[patchPointI] = vector::zero;
patchDisp[patchPointI] = Zero;
patchNLayers[patchPointI] = 0;
}
}
@ -3681,7 +3681,7 @@ void Foam::snappyLayerDriver::addLayers
// Calculate displacement for final layer for addPatchLayer.
// (layer of cells next to the original mesh)
vectorField finalDisp(patchNLayers.size(), vector::zero);
vectorField finalDisp(patchNLayers.size(), Zero);
forAll(nPatchPointLayers, i)
{

View File

@ -1025,7 +1025,7 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
// const scalar rCVol = pow(cellVolumes[cellI], -5.0/3.0);
//
// // Determine principal axes of cell
// symmTensor R(symmTensor::zero);
// symmTensor R(Zero);
//
// forAll(cFaces, i)
// {

View File

@ -250,7 +250,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
// Calculate average of connected cells
labelList nCells(mesh.nPoints(), 0);
pointField sumLocation(mesh.nPoints(), vector::zero);
pointField sumLocation(mesh.nPoints(), Zero);
forAll(isMovingPoint, pointI)
{
@ -276,7 +276,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
vector::zero
);
tmp<pointField> tdisplacement(new pointField(mesh.nPoints(), vector::zero));
tmp<pointField> tdisplacement(new pointField(mesh.nPoints(), Zero));
pointField& displacement = tdisplacement.ref();
label nAdapted = 0;
@ -370,7 +370,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
// Get average position of boundary face centres
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vectorField avgBoundary(pointFaces.size(), vector::zero);
vectorField avgBoundary(pointFaces.size(), Zero);
labelList nBoundary(pointFaces.size(), 0);
forAll(pointFaces, patchPointI)
@ -418,7 +418,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
vectorField avgInternal;
labelList nInternal;
{
vectorField globalSum(mesh.nPoints(), vector::zero);
vectorField globalSum(mesh.nPoints(), Zero);
labelList globalNum(mesh.nPoints(), 0);
// Note: no use of pointFaces
@ -521,7 +521,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
// Displacement to calculate.
tmp<pointField> tpatchDisp(new pointField(meshPoints.size(), vector::zero));
tmp<pointField> tpatchDisp(new pointField(meshPoints.size(), Zero));
pointField& patchDisp = tpatchDisp.ref();
forAll(pointFaces, i)
@ -597,7 +597,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
// const labelListList& pointEdges = pp.pointEdges();
// const edgeList& edges = pp.edges();
//
// tmp<pointField> tavg(new pointField(pointEdges.size(), vector::zero));
// tmp<pointField> tavg(new pointField(pointEdges.size(), Zero));
// pointField& avg = tavg();
//
// forAll(pointEdges, vertI)
@ -997,7 +997,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::avgCellCentres
tmp<pointField> tavgBoundary
(
new pointField(pointFaces.size(), vector::zero)
new pointField(pointFaces.size(), Zero)
);
pointField& avgBoundary = tavgBoundary.ref();
labelList nBoundary(pointFaces.size(), 0);
@ -1805,7 +1805,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
const fvMesh& mesh = meshRefiner.mesh();
// Displacement per patch point
vectorField patchDisp(localPoints.size(), vector::zero);
vectorField patchDisp(localPoints.size(), Zero);
if (returnReduce(localPoints.size(), sumOp<label>()) > 0)
{
@ -2754,7 +2754,7 @@ void Foam::snappySnapDriver::doSnap
if (snapParams.detectNearSurfacesSnap())
{
nearestPoint.setSize(pp.nPoints(), vector::max);
nearestNormal.setSize(pp.nPoints(), vector::zero);
nearestNormal.setSize(pp.nPoints(), Zero);
}
vectorField disp = calcNearestSurface

View File

@ -152,7 +152,7 @@ void Foam::snappySnapDriver::smoothAndConstrain
// - same for feature points. They are already attracted to the
// nearest feature point.
vectorField dispSum(pp.nPoints(), vector::zero);
vectorField dispSum(pp.nPoints(), Zero);
labelList dispCount(pp.nPoints(), 0);
const labelListList& pointEdges = pp.pointEdges();
@ -233,9 +233,9 @@ void Foam::snappySnapDriver::calcNearestFace
// Displacement and orientation per pp face.
faceDisp.setSize(pp.size());
faceDisp = vector::zero;
faceDisp = Zero;
faceSurfaceNormal.setSize(pp.size());
faceSurfaceNormal = vector::zero;
faceSurfaceNormal = Zero;
faceSurfaceGlobalRegion.setSize(pp.size());
faceSurfaceGlobalRegion = -1;
@ -408,7 +408,7 @@ void Foam::snappySnapDriver::calcNearestFace
//
//// Determine rotation axis
//faceRotation.setSize(pp.size());
//faceRotation = vector::zero;
//faceRotation = Zero;
//
//forAll(faceRotation, faceI)
//{
@ -745,7 +745,7 @@ Foam::pointIndexHit Foam::snappySnapDriver::findMultiPatchPoint
}
}
}
return pointIndexHit(false, vector::zero, labelMax);
return pointIndexHit(false, Zero, labelMax);
}
@ -933,7 +933,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
pointConstraint& patchConstraint
) const
{
patchAttraction = vector::zero;
patchAttraction = Zero;
patchConstraint = pointConstraint();
const List<point>& pfSurfNormals = pointFaceSurfNormals[pointI];
@ -1155,7 +1155,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
forAll(pp.localPoints(), pointI)
{
vector attraction = vector::zero;
vector attraction = Zero;
pointConstraint constraint;
featureAttractionUsingReconstruction
@ -1510,7 +1510,7 @@ void Foam::snappySnapDriver::releasePointsNextToMultiPatch
//Pout<< "Knocking out constraint"
// << " on non-multiPatchPoint:"
// << pp.localPoints()[pointI] << endl;
patchAttraction[pointI] = vector::zero;
patchAttraction[pointI] = Zero;
patchConstraints[pointI] = pointConstraint();
nChanged++;
@ -2193,14 +2193,14 @@ Foam::snappySnapDriver::findNearFeaturePoint
// Current pointI nearer.
pointAttractor[featI][featPointI] = pointI;
pointConstraints[featI][featPointI].first() = 3;
pointConstraints[featI][featPointI].second() = vector::zero;
pointConstraints[featI][featPointI].second() = Zero;
// Store for later use
patchAttraction[pointI] = featPt-pt;
patchConstraints[pointI] = pointConstraints[featI][featPointI];
// Reset oldPointI to nearest on feature edge
patchAttraction[oldPointI] = vector::zero;
patchAttraction[oldPointI] = Zero;
patchConstraints[oldPointI] = pointConstraint();
findNearFeatureEdge
@ -2224,7 +2224,7 @@ Foam::snappySnapDriver::findNearFeaturePoint
// Current pointI nearer.
pointAttractor[featI][featPointI] = pointI;
pointConstraints[featI][featPointI].first() = 3;
pointConstraints[featI][featPointI].second() = vector::zero;
pointConstraints[featI][featPointI].second() = Zero;
// Store for later use
patchAttraction[pointI] = featPt-pt;
@ -2346,7 +2346,7 @@ void Foam::snappySnapDriver::determineFeatures
// 2: attract to feature line, constraint is feature line direction
// 3: attract to feature point, constraint is zero)
vector attraction = vector::zero;
vector attraction = Zero;
pointConstraint constraint;
featureAttractionUsingReconstruction
@ -3029,8 +3029,7 @@ void Foam::snappySnapDriver::determineBaffleFeatures
{
pointAttractor[featI][featPointI] = pointI;
pointConstraints[featI][featPointI].first() = 3;
pointConstraints[featI][featPointI].second() =
vector::zero;
pointConstraints[featI][featPointI].second() = Zero;
// Store for later use
patchAttraction[pointI] = featPt-pt;
@ -3245,7 +3244,7 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
// Per mesh point the point on nearest feature edge.
patchAttraction.setSize(pp.nPoints());
patchAttraction = vector::zero;
patchAttraction = Zero;
patchConstraints.setSize(pp.nPoints());
patchConstraints = pointConstraint();
@ -3440,7 +3439,7 @@ void Foam::snappySnapDriver::featureAttractionUsingFeatureEdges
}
// Reverse: from pp point to nearest feature
vectorField rawPatchAttraction(pp.nPoints(), vector::zero);
vectorField rawPatchAttraction(pp.nPoints(), Zero);
List<pointConstraint> rawPatchConstraints(pp.nPoints());
determineFeatures
@ -3875,11 +3874,11 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurfaceFeature
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// vector from point on surface back to face centre
vectorField faceDisp(pp.size(), vector::zero);
vectorField faceDisp(pp.size(), Zero);
// normal of surface at point on surface
vectorField faceSurfaceNormal(pp.size(), vector::zero);
vectorField faceSurfaceNormal(pp.size(), Zero);
labelList faceSurfaceGlobalRegion(pp.size(), -1);
//vectorField faceRotation(pp.size(), vector::zero);
//vectorField faceRotation(pp.size(), Zero);
calcNearestFace
(
@ -3927,7 +3926,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurfaceFeature
// Nearest feature
patchAttraction.setSize(localPoints.size());
patchAttraction = vector::zero;
patchAttraction = Zero;
// Constraints at feature
patchConstraints.setSize(localPoints.size());
patchConstraints = pointConstraint();

View File

@ -490,7 +490,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchName_(word::null),
nbrPatchID_(-1),
rotationAxis_(Zero),
rotationCentre_(point::zero),
rotationCentre_(Zero),
rotationAngleDefined_(false),
rotationAngle_(0.0),
separationVector_(Zero),
@ -521,7 +521,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
coupleGroup_(dict),
nbrPatchID_(-1),
rotationAxis_(Zero),
rotationCentre_(point::zero),
rotationCentre_(Zero),
rotationAngleDefined_(false),
rotationAngle_(0.0),
separationVector_(Zero),

View File

@ -284,7 +284,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
ownStr.reset(new OBJstream(dir/name() + postfix));
neiStr.reset(new OBJstream(dir/neighbPatch().name() + postfix));
Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:" << name()
InfoInFunction
<< "patch:" << name()
<< " writing accumulated AMI to " << ownStr().name()
<< " and " << neiStr().name() << endl;
}
@ -368,7 +369,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
if (debug)
{
Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:" << name()
InfoInFunction
<< "patch:" << name()
<< " srcSum:" << srcSum
<< " tgtSum:" << tgtSum
<< " direction:" << direction
@ -391,8 +393,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
if (debug)
{
Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:"
<< name()
InfoInFunction
<< "patch:" << name()
<< " moving this side from:"
<< gAverage(thisPatch.points())
<< " to:" << gAverage(thisPoints) << endl;
@ -402,8 +404,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
if (debug)
{
Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:"
<< name()
InfoInFunction
<< "patch:" << name()
<< " appending weights with untransformed slave side"
<< endl;
}
@ -421,8 +423,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
if (debug)
{
Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:"
<< name()
InfoInFunction
<< "patch:" << name()
<< " moving neighbour side from:"
<< gAverage(nbrPatch.points())
<< " to:" << gAverage(nbrPoints) << endl;
@ -453,11 +455,12 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
nTransforms_ += direction ? +1 : -1;
++ iter;
++iter;
if (debug)
{
Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:" << name()
InfoInFunction
<< "patch:" << name()
<< " iteration:" << iter
<< " srcSum:" << srcSum
<< " tgtSum:" << tgtSum

View File

@ -99,7 +99,7 @@ Foam::cylindrical::cylindrical
)
:
Rptr_(),
origin_(point::zero),
origin_(Zero),
e3_(Zero)
{
// If origin is specified in the coordinateSystem

View File

@ -43,7 +43,7 @@ Foam::coordinateSystem::coordinateSystem()
:
name_(),
note_(),
origin_(point::zero),
origin_(Zero),
R_(new axesRotation(sphericalTensor::I))
{}
@ -98,7 +98,7 @@ Foam::coordinateSystem::coordinateSystem
:
name_(name),
note_(),
origin_(point::zero),
origin_(Zero),
R_()
{
init(dict);
@ -109,7 +109,7 @@ Foam::coordinateSystem::coordinateSystem(const dictionary& dict)
:
name_(),
note_(),
origin_(point::zero),
origin_(Zero),
R_()
{
init(dict);
@ -124,7 +124,7 @@ Foam::coordinateSystem::coordinateSystem
:
name_(),
note_(),
origin_(point::zero),
origin_(Zero),
R_()
{
const entry* entryPtr = dict.lookupEntryPtr(typeName_(), false, false);
@ -168,7 +168,7 @@ Foam::coordinateSystem::coordinateSystem(Istream& is)
:
name_(is),
note_(),
origin_(point::zero),
origin_(Zero),
R_()
{
dictionary dict(is);

View File

@ -100,7 +100,7 @@ void Foam::searchableCone::findNearestAndNormal
scalar magV = mag(v);
if (magV < ROOTVSMALL)
{
v = vector::zero;
v = Zero;
}
else
{
@ -1045,7 +1045,7 @@ void Foam::searchableCone::getNormal
) const
{
normal.setSize(info.size());
normal = vector::zero;
normal = Zero;
forAll(info, i)
{

View File

@ -57,7 +57,7 @@ Foam::searchableRotatedBox::searchableRotatedBox
io.writeOpt(),
false //io.registerObject(),
),
treeBoundBox(point::zero, dict.lookup("span"))
treeBoundBox(Zero, dict.lookup("span"))
),
transform_
(

View File

@ -70,7 +70,7 @@ class tetOverlapVolume
inline sumMomentOp()
:
vol_(0.0, vector::zero)
vol_(0.0, Zero)
{}
inline void operator()(const tetPoints& tet)

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,7 +67,7 @@ Foam::label Foam::metisDecomp::decompose
// processor weights initialised with no size, only used if specified in
// a file
Field<scalar> processorWeights;
Field<floatScalar> processorWeights;
// cell weights (so on the vertices of the dual)
List<label> cellWeights;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -107,7 +107,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fieldAverageItem& faItem)
os << faItem.fieldName_ << nl << token::BEGIN_BLOCK << nl;
os.writeKeyword("mean") << faItem.mean_ << token::END_STATEMENT << nl;
os.writeKeyword("prime2Mean") << faItem.mean_
os.writeKeyword("prime2Mean") << faItem.prime2Mean_
<< token::END_STATEMENT << nl;
os.writeKeyword("base") << faItem.baseTypeNames_[faItem.base_]
<< token::END_STATEMENT << nl;

View File

@ -273,7 +273,7 @@ void Foam::forceCoeffs::read(const dictionary& dict)
IOobject::NO_WRITE
),
mesh,
dimensionedVector("0", dimless, vector::zero)
dimensionedVector("0", dimless, Zero)
)
);
@ -292,7 +292,7 @@ void Foam::forceCoeffs::read(const dictionary& dict)
IOobject::NO_WRITE
),
mesh,
dimensionedVector("0", dimless, vector::zero)
dimensionedVector("0", dimless, Zero)
)
);

View File

@ -304,7 +304,7 @@ void Foam::forces::resetFields()
obr_.lookupObject<volVectorField>(fieldName("force"))
);
force == dimensionedVector("0", force.dimensions(), vector::zero);
force == dimensionedVector("0", force.dimensions(), Zero);
volVectorField& moment =
const_cast<volVectorField&>
@ -312,7 +312,7 @@ void Foam::forces::resetFields()
obr_.lookupObject<volVectorField>(fieldName("moment"))
);
moment == dimensionedVector("0", moment.dimensions(), vector::zero);
moment == dimensionedVector("0", moment.dimensions(), Zero);
}
}
@ -968,7 +968,7 @@ void Foam::forces::read(const dictionary& dict)
IOobject::NO_WRITE
),
mesh,
dimensionedVector("0", dimForce, vector::zero)
dimensionedVector("0", dimForce, Zero)
)
);
@ -987,7 +987,7 @@ void Foam::forces::read(const dictionary& dict)
IOobject::NO_WRITE
),
mesh,
dimensionedVector("0", dimForce*dimLength, vector::zero)
dimensionedVector("0", dimForce*dimLength, Zero)
)
);

View File

@ -32,13 +32,13 @@ add_definitions(
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_DEBUG
"-g -O0 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual"
"-g -O0 -std=c++0x -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual"
)
set(CMAKE_C_FLAGS_DEBUG "-g -O0")
set(CMAKE_C_FLAGS_DEBUG "-g -O0 -std=c++0x")
set(CMAKE_CXX_FLAGS_RELEASE
"-O3 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual")
set(CMAKE_C_FLAGS_RELEASE "-O3")
"-O3 -std=c++0x -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual")
set(CMAKE_C_FLAGS_RELEASE "-O3 -std=c++0x")
# Set output library destination to plugin directory
set(LIBRARY_OUTPUT_PATH $ENV{FOAM_LIBBIN}

View File

@ -437,7 +437,7 @@ Foam::fieldVisualisationBase::fieldVisualisationBase
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
parent_(parent),
@ -489,7 +489,7 @@ Foam::fieldVisualisationBase::~fieldVisualisationBase()
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
const Foam::HashPtrTable<Foam::DataEntry<Foam::vector>, Foam::word>&
const Foam::HashPtrTable<Foam::Function1<Foam::vector>, Foam::word>&
Foam::fieldVisualisationBase::colours() const
{
return colours_;

View File

@ -39,7 +39,7 @@ SourceFiles
#include "NamedEnum.H"
#include "vector.H"
#include "HashPtrTable.H"
#include "DataEntry.H"
#include "Function1.H"
#include "vtkSmartPointer.h"
@ -121,7 +121,7 @@ protected:
};
//- Colours
const HashPtrTable<DataEntry<vector>, word>& colours_;
const HashPtrTable<Function1<vector>, word>& colours_;
//- Field name
word fieldName_;
@ -183,7 +183,7 @@ public:
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
);
@ -196,7 +196,7 @@ public:
// Access
//- Return the colours
const HashPtrTable<DataEntry<vector>, word>& colours() const;
const HashPtrTable<Function1<vector>, word>& colours() const;
//- Return the field name
const word& fieldName() const;

View File

@ -51,7 +51,7 @@ Foam::functionObjectCloud::functionObjectCloud
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
pointData(parent, dict, colours),

View File

@ -92,7 +92,7 @@ public:
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
);

View File

@ -51,7 +51,7 @@ Foam::functionObjectLine::functionObjectLine
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
pathline(parent, dict, colours),

View File

@ -86,7 +86,7 @@ public:
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
);

View File

@ -51,7 +51,7 @@ Foam::functionObjectSurface::functionObjectSurface
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
geometrySurface(parent, dict, colours, List<fileName>()),

View File

@ -85,7 +85,7 @@ public:
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
);

View File

@ -81,7 +81,7 @@ Foam::geometryBase::geometryBase
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
parent_(parent),
@ -98,11 +98,11 @@ Foam::geometryBase::geometryBase
if (dict.found("opacity"))
{
opacity_.reset(DataEntry<scalar>::New("opacity", dict).ptr());
opacity_.reset(Function1<scalar>::New("opacity", dict).ptr());
}
else
{
opacity_.reset(new Constant<scalar>("opacity", 1.0));
opacity_.reset(new Function1Types::Constant<scalar>("opacity", 1.0));
}
}
@ -139,7 +139,7 @@ Foam::scalar Foam::geometryBase::opacity(const scalar position) const
}
const Foam::HashPtrTable<Foam::DataEntry<Foam::vector>, Foam::word>&
const Foam::HashPtrTable<Foam::Function1<Foam::vector>, Foam::word>&
Foam::geometryBase::colours() const
{
return colours_;

View File

@ -36,7 +36,7 @@ SourceFiles
#include "dictionary.H"
#include "vector.H"
#include "DataEntry.H"
#include "Function1.H"
#include "HashPtrTable.H"
#include "NamedEnum.H"
@ -99,10 +99,10 @@ protected:
renderModeType renderMode_;
//- Opacity
autoPtr<DataEntry<scalar>> opacity_;
autoPtr<Function1<scalar>> opacity_;
//- Reference to the colours
const HashPtrTable<DataEntry<vector>, word>& colours_;
const HashPtrTable<Function1<vector>, word>& colours_;
// Protected functions
@ -120,7 +120,7 @@ public:
(
const runTimePostProcessing& parent_,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
);
@ -145,7 +145,7 @@ public:
scalar opacity(const scalar position) const;
//- Return reference to the colours
const HashPtrTable<DataEntry<vector>, word>& colours() const;
const HashPtrTable<Function1<vector>, word>& colours() const;
//- Add geometry to scene

View File

@ -136,7 +136,7 @@ Foam::geometrySurface::geometrySurface
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
surface(parent, dict, colours),
@ -148,7 +148,7 @@ Foam::geometrySurface::geometrySurface
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours,
const HashPtrTable<Function1<vector>, word>& colours,
const List<fileName>& fileNames
)
:

View File

@ -94,7 +94,7 @@ public:
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
);
//- Construct from components
@ -102,7 +102,7 @@ public:
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours,
const HashPtrTable<Function1<vector>, word>& colours,
const List<fileName>& fileNames
);

View File

@ -118,7 +118,7 @@ Foam::pathline::pathline
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours
const HashPtrTable<Function1<vector>, word>& colours
)
:
geometryBase(parent, dict, colours),
@ -131,7 +131,7 @@ Foam::pathline::pathline
{
if (dict.found("lineColour"))
{
lineColour_.reset(DataEntry<vector>::New("lineColour", dict).ptr());
lineColour_.reset(Function1<vector>::New("lineColour", dict).ptr());
}
else
{
@ -168,7 +168,7 @@ Foam::autoPtr<Foam::pathline> Foam::pathline::New
(
const runTimePostProcessing& parent,
const dictionary& dict,
const HashPtrTable<DataEntry<vector>, word>& colours,
const HashPtrTable<Function1<vector>, word>& colours,
const word& pathlineType
)
{

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