mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
11
README
11
README
@ -2,7 +2,7 @@
|
||||
#
|
||||
#+TITLE: OpenFOAM README for version 1.6
|
||||
#+AUTHOR: OpenCFD Ltd.
|
||||
#+DATE: July 2009
|
||||
#+DATE: November 2009
|
||||
#+LINK: http://www.opencfd.co.uk
|
||||
#+OPTIONS: author:nil ^:{}
|
||||
|
||||
@ -168,9 +168,9 @@
|
||||
+ rm -rf paraview-3.6.1/platforms
|
||||
+ ./makeParaView
|
||||
|
||||
The PV3FoamReader module is an OpenFOAM utility that can be compiled in the
|
||||
usual manner as follows:
|
||||
+ cd $FOAM_UTILITIES/postProcessing/graphics/PV3FoamReader
|
||||
The PV3blockMeshReader and the PV3FoamReader ParaView plugins are compiled
|
||||
as usual for OpenFOAM utilities:
|
||||
+ cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers/
|
||||
+ ./Allwclean
|
||||
+ ./Allwmake
|
||||
|
||||
@ -187,7 +187,8 @@
|
||||
newly built qmake as an argument:
|
||||
+ ./makeParaView -qmake <path_to_qmake>
|
||||
|
||||
The user must then recompile the PV3FoamReader module as normal (see above).
|
||||
The user must then recompile the PV3blockMeshReader and the
|
||||
PV3FoamReader plugins as usual (see above).
|
||||
|
||||
* Documentation
|
||||
http://www.OpenFOAM.org/doc
|
||||
|
||||
@ -108,8 +108,7 @@ int main()
|
||||
Info<< " badName(die) => " << findEtcFile("badName", true) << nl
|
||||
<< endl;
|
||||
|
||||
Info<< "\nEnd" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -95,8 +95,7 @@ int main(int argc, char *argv[])
|
||||
printCleaning(pathName);
|
||||
}
|
||||
|
||||
Info<< "\nEnd" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -102,8 +102,7 @@ int main(int argc, char *argv[])
|
||||
Info<< "Ostream<< >" << s2 << "<\n";
|
||||
Info<< "hash:" << hex << string::hash()(s2) << endl;
|
||||
|
||||
Info << "End\n" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -131,8 +131,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
psf.write();
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1,215 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Class
|
||||
Foam::Tuple
|
||||
|
||||
Description
|
||||
A 2 Tuple. Differs from Tuple in that the two elements can be different
|
||||
type.
|
||||
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef Tuple_H
|
||||
#define Tuple_H
|
||||
|
||||
#include "Istream.H"
|
||||
#include "Ostream.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// Forward declaration of friend functions and operators
|
||||
|
||||
template<class Type1, class Type2>
|
||||
class Tuple;
|
||||
|
||||
template<class Type1, class Type2>
|
||||
Istream& operator>>(Istream&, Tuple<Type1, Type2>&);
|
||||
|
||||
template<class Type1, class Type2>
|
||||
Ostream& operator<<(Ostream&, const Tuple<Type1, Type2>&);
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class Tuple Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
template<class Type1, class Type2>
|
||||
class Tuple
|
||||
{
|
||||
// Private data
|
||||
|
||||
Type1 first_;
|
||||
Type2 second_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Null constructor for lists
|
||||
inline Tuple()
|
||||
{}
|
||||
|
||||
//- Construct from components
|
||||
inline Tuple(const Type1& first, const Type2& second)
|
||||
:
|
||||
first_(first),
|
||||
second_(second)
|
||||
{}
|
||||
|
||||
//- Construct from Istream
|
||||
inline Tuple(Istream& is)
|
||||
{
|
||||
// Read beginning of pair
|
||||
is.readBegin("pair");
|
||||
|
||||
is >> first_ >> second_;
|
||||
|
||||
// Read end of pair
|
||||
is.readEnd("pair");
|
||||
|
||||
// Check state of Istream
|
||||
is.check("Tuple::Tuple(Istream&)");
|
||||
}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return first
|
||||
inline Type1 first() const
|
||||
{
|
||||
return first_;
|
||||
}
|
||||
|
||||
//- Return first
|
||||
inline Type1& first()
|
||||
{
|
||||
return first_;
|
||||
}
|
||||
|
||||
//- Return second
|
||||
inline Type2 second() const
|
||||
{
|
||||
return second_;
|
||||
}
|
||||
|
||||
//- Return second
|
||||
inline Type2& second()
|
||||
{
|
||||
return second_;
|
||||
}
|
||||
|
||||
//- Return reverse pair
|
||||
inline Tuple<Type1, Type2> reverseTuple() const
|
||||
{
|
||||
return Tuple<Type1, Type2>(second_, first_);
|
||||
}
|
||||
|
||||
|
||||
// Friend Operators
|
||||
|
||||
inline friend bool operator==
|
||||
(
|
||||
const Tuple<Type1, Type2>& a,
|
||||
const Tuple<Type1, Type2>& b
|
||||
)
|
||||
{
|
||||
return
|
||||
(
|
||||
(a.first_ == b.first_) && (a.second_ == b.second_)
|
||||
);
|
||||
}
|
||||
|
||||
inline friend bool operator!=
|
||||
(
|
||||
const Tuple<Type1, Type2>& a,
|
||||
const Tuple<Type1, Type2>& b
|
||||
)
|
||||
{
|
||||
return (!(a == b));
|
||||
}
|
||||
|
||||
|
||||
// IOstream Operators
|
||||
|
||||
friend Istream& operator>> <Type1, Type2>
|
||||
(
|
||||
Istream& is,
|
||||
Tuple<Type1, Type2>& p
|
||||
);
|
||||
friend Ostream& operator<< <Type1, Type2>
|
||||
(
|
||||
Ostream& os,
|
||||
const Tuple<Type1, Type2>& p
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type1, class Type2>
|
||||
Istream& operator>>(Istream& is, Tuple<Type1, Type2>& p)
|
||||
{
|
||||
// Read beginning of Tuple<Type, Type>
|
||||
is.readBegin("Tuple<Type, Type>");
|
||||
|
||||
is >> p.first_ >> p.second_;
|
||||
|
||||
// Read end of Tuple<Type, Type>
|
||||
is.readEnd("Tuple<Type, Type>");
|
||||
|
||||
// Check state of Ostream
|
||||
is.check("Istream& operator>>(Istream&, Tuple<Type, Type>&)");
|
||||
|
||||
return is;
|
||||
}
|
||||
|
||||
template<class Type1, class Type2>
|
||||
Ostream& operator<<(Ostream& os, const Tuple<Type1, Type2>& p)
|
||||
{
|
||||
os << token::BEGIN_LIST
|
||||
<< p.first_ << token::SPACE
|
||||
<< p.second_
|
||||
<< token::END_LIST;
|
||||
|
||||
// Check state of Ostream
|
||||
os.check("Ostream& operator<<(Ostream&, const Tuple<Type, Type>&)");
|
||||
|
||||
return os;
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -375,7 +375,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
bool cellsToSplit = cellsToPyramidise.size();
|
||||
|
||||
//List<Tuple<pointField,point> >
|
||||
// List<Tuple2<pointField,point> >
|
||||
// cellsToCreate(dict.lookup("cellsToCreate"));
|
||||
|
||||
Info<< "Read from " << dict.name() << nl
|
||||
@ -661,8 +661,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -126,41 +126,41 @@ int main(int argc, char *argv[])
|
||||
// Create bin0. Have upperlimit as factor times lowerlimit.
|
||||
bins.append(DynamicList<label>());
|
||||
lowerLimits.append(sortedVols[0]);
|
||||
upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]);
|
||||
upperLimits.append(1.1 * lowerLimits.last());
|
||||
|
||||
forAll(sortedVols, i)
|
||||
{
|
||||
if (sortedVols[i] > upperLimits[upperLimits.size()-1])
|
||||
if (sortedVols[i] > upperLimits.last())
|
||||
{
|
||||
// New value outside of current bin
|
||||
|
||||
// Shrink old bin.
|
||||
DynamicList<label>& bin = bins[bins.size()-1];
|
||||
DynamicList<label>& bin = bins.last();
|
||||
|
||||
bin.shrink();
|
||||
|
||||
Info<< "Collected " << bin.size() << " elements in bin "
|
||||
<< lowerLimits[lowerLimits.size()-1] << " .. "
|
||||
<< upperLimits[upperLimits.size()-1] << endl;
|
||||
<< lowerLimits.last() << " .. "
|
||||
<< upperLimits.last() << endl;
|
||||
|
||||
// Create new bin.
|
||||
bins.append(DynamicList<label>());
|
||||
lowerLimits.append(sortedVols[i]);
|
||||
upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]);
|
||||
upperLimits.append(1.1 * lowerLimits.last());
|
||||
|
||||
Info<< "Creating new bin " << lowerLimits[lowerLimits.size()-1]
|
||||
<< " .. " << upperLimits[upperLimits.size()-1]
|
||||
Info<< "Creating new bin " << lowerLimits.last()
|
||||
<< " .. " << upperLimits.last()
|
||||
<< endl;
|
||||
}
|
||||
|
||||
// Append to current bin.
|
||||
DynamicList<label>& bin = bins[bins.size()-1];
|
||||
DynamicList<label>& bin = bins.last();
|
||||
|
||||
bin.append(sortedVols.indices()[i]);
|
||||
}
|
||||
Info<< endl;
|
||||
|
||||
bins[bins.size()-1].shrink();
|
||||
bins.last().shrink();
|
||||
bins.shrink();
|
||||
lowerLimits.shrink();
|
||||
upperLimits.shrink();
|
||||
@ -355,8 +355,7 @@ int main(int argc, char *argv[])
|
||||
<< nl << endl;
|
||||
}
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -324,7 +324,7 @@ endOfSection {space}")"{space}
|
||||
// point group type skipped
|
||||
strtol(endPtr, &endPtr, 16);
|
||||
|
||||
pointi = pointGroupStartIndex[pointGroupStartIndex.size()-1];
|
||||
pointi = pointGroupStartIndex.last();
|
||||
|
||||
// reset number of components to default
|
||||
pointGroupNumberOfComponents = 3;
|
||||
@ -336,11 +336,11 @@ endOfSection {space}")"{space}
|
||||
}
|
||||
|
||||
Info<< "PointGroup: "
|
||||
<< pointGroupZoneID[pointGroupZoneID.size()-1]
|
||||
<< pointGroupZoneID.last()
|
||||
<< " start: "
|
||||
<< pointGroupStartIndex[pointGroupStartIndex.size()-1]
|
||||
<< pointGroupStartIndex.last()
|
||||
<< " end: "
|
||||
<< pointGroupEndIndex[pointGroupEndIndex.size()-1] << flush;
|
||||
<< pointGroupEndIndex.last() << flush;
|
||||
}
|
||||
|
||||
<readNumberOfPoints,readPointGroupData>{endOfSection} {
|
||||
@ -387,14 +387,14 @@ endOfSection {space}")"{space}
|
||||
Info<< "done." << endl;
|
||||
|
||||
// check read of points
|
||||
if (pointi != pointGroupEndIndex[pointGroupEndIndex.size()-1]+1)
|
||||
if (pointi != pointGroupEndIndex.last()+1)
|
||||
{
|
||||
Warning
|
||||
<< "Problem with reading points: " << nl
|
||||
<< " start index: "
|
||||
<< pointGroupStartIndex[pointGroupStartIndex.size()-1]
|
||||
<< pointGroupStartIndex.last()
|
||||
<< " end index: "
|
||||
<< pointGroupEndIndex[pointGroupEndIndex.size()-1]
|
||||
<< pointGroupEndIndex.last()
|
||||
<< " last points read: " << pointi << nl
|
||||
<< " on line " << lineNo << endl;
|
||||
}
|
||||
@ -440,14 +440,14 @@ endOfSection {space}")"{space}
|
||||
|
||||
faceGroupElementType = strtol(endPtr, &endPtr, 16);
|
||||
|
||||
facei = faceGroupStartIndex[faceGroupStartIndex.size()-1];
|
||||
facei = faceGroupStartIndex.last();
|
||||
|
||||
Info<< "FaceGroup: "
|
||||
<< faceGroupZoneID[faceGroupZoneID.size()-1]
|
||||
<< faceGroupZoneID.last()
|
||||
<< " start: "
|
||||
<< faceGroupStartIndex[faceGroupStartIndex.size()-1]
|
||||
<< faceGroupStartIndex.last()
|
||||
<< " end: "
|
||||
<< faceGroupEndIndex[faceGroupEndIndex.size()-1] << flush;
|
||||
<< faceGroupEndIndex.last() << flush;
|
||||
}
|
||||
|
||||
<readNumberOfFaces,readFaceGroupData>{space}{endOfSection} {
|
||||
@ -507,14 +507,14 @@ endOfSection {space}")"{space}
|
||||
Info<< "done." << endl;
|
||||
|
||||
// check read of fluentFaces
|
||||
if (facei != faceGroupEndIndex[faceGroupEndIndex.size()-1]+1)
|
||||
if (facei != faceGroupEndIndex.last()+1)
|
||||
{
|
||||
Warning
|
||||
<< "Problem with reading fluentFaces: " << nl
|
||||
<< " start index: "
|
||||
<< faceGroupStartIndex[faceGroupStartIndex.size()-1]
|
||||
<< faceGroupStartIndex.last()
|
||||
<< " end index: "
|
||||
<< faceGroupEndIndex[faceGroupEndIndex.size()-1]
|
||||
<< faceGroupEndIndex.last()
|
||||
<< " last fluentFaces read: " << facei << nl
|
||||
<< " on line " << lineNo << endl;
|
||||
}
|
||||
@ -560,13 +560,13 @@ endOfSection {space}")"{space}
|
||||
cellGroupType.append(strtol(endPtr, &endPtr, 16));
|
||||
|
||||
Info<< "CellGroup: "
|
||||
<< cellGroupZoneID[cellGroupZoneID.size()-1]
|
||||
<< cellGroupZoneID.last()
|
||||
<< " start: "
|
||||
<< cellGroupStartIndex[cellGroupStartIndex.size()-1]
|
||||
<< cellGroupStartIndex.last()
|
||||
<< " end: "
|
||||
<< cellGroupEndIndex[cellGroupEndIndex.size()-1]
|
||||
<< cellGroupEndIndex.last()
|
||||
<< " type: "
|
||||
<< cellGroupType[cellGroupType.size()-1]
|
||||
<< cellGroupType.last()
|
||||
<< endl;
|
||||
}
|
||||
|
||||
@ -587,13 +587,13 @@ endOfSection {space}")"{space}
|
||||
strtol(endPtr, &endPtr, 16);
|
||||
|
||||
Info<< "CellGroup: "
|
||||
<< cellGroupZoneID[cellGroupZoneID.size()-1]
|
||||
<< cellGroupZoneID.last()
|
||||
<< " start: "
|
||||
<< cellGroupStartIndex[cellGroupStartIndex.size()-1]
|
||||
<< cellGroupStartIndex.last()
|
||||
<< " end: "
|
||||
<< cellGroupEndIndex[cellGroupEndIndex.size()-1]
|
||||
<< cellGroupEndIndex.last()
|
||||
<< " type: "
|
||||
<< cellGroupType[cellGroupType.size()-1]
|
||||
<< cellGroupType.last()
|
||||
<< endl;
|
||||
}
|
||||
|
||||
@ -1356,7 +1356,7 @@ int main(int argc, char *argv[])
|
||||
mesh.write();
|
||||
|
||||
|
||||
Info<< nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1404,7 +1404,11 @@ int main(int argc, char *argv[])
|
||||
//it will be put in a default wall boundary
|
||||
//internal boundaries are simply ignored
|
||||
|
||||
if(patchTypes[patchI] != "internal" && !pShapeMesh.isInternalFace(meshFaces[0]))
|
||||
if
|
||||
(
|
||||
patchTypes[patchI] != "internal"
|
||||
&& !pShapeMesh.isInternalFace(meshFaces[0])
|
||||
)
|
||||
{
|
||||
//first face is external and has valid non-internal type
|
||||
|
||||
@ -1729,7 +1733,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
Info<< nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -867,7 +867,7 @@ int main(int argc, char *argv[])
|
||||
Info<< "Writing polyMesh" << endl;
|
||||
pShapeMesh.write();
|
||||
|
||||
Info<< nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -885,7 +885,7 @@ int main(int argc, char *argv[])
|
||||
// Now use the patchFaces to patch up the outside faces of the mesh.
|
||||
|
||||
// Get the patch for all the outside faces (= default patch added as last)
|
||||
const polyPatch& pp = mesh.boundaryMesh()[mesh.boundaryMesh().size()-1];
|
||||
const polyPatch& pp = mesh.boundaryMesh().last();
|
||||
|
||||
// Storage for faceZones.
|
||||
List<DynamicList<label> > zoneFaces(patchFaces.size());
|
||||
|
||||
@ -324,13 +324,13 @@ void readCells
|
||||
cellVerts.append(cellShape(tet, cVerts, true));
|
||||
cellMaterial.append(physProp);
|
||||
|
||||
if (cellVerts[cellVerts.size()-1].size() != cVerts.size())
|
||||
if (cellVerts.last().size() != cVerts.size())
|
||||
{
|
||||
Pout<< "Line:" << is.lineNumber()
|
||||
<< " element:" << cellI
|
||||
<< " type:" << feID
|
||||
<< " collapsed from " << cVerts << nl
|
||||
<< " to:" << cellVerts[cellVerts.size()-1]
|
||||
<< " to:" << cellVerts.last()
|
||||
<< endl;
|
||||
}
|
||||
}
|
||||
@ -347,13 +347,13 @@ void readCells
|
||||
cellVerts.append(cellShape(prism, cVerts, true));
|
||||
cellMaterial.append(physProp);
|
||||
|
||||
if (cellVerts[cellVerts.size()-1].size() != cVerts.size())
|
||||
if (cellVerts.last().size() != cVerts.size())
|
||||
{
|
||||
Pout<< "Line:" << is.lineNumber()
|
||||
<< " element:" << cellI
|
||||
<< " type:" << feID
|
||||
<< " collapsed from " << cVerts << nl
|
||||
<< " to:" << cellVerts[cellVerts.size()-1]
|
||||
<< " to:" << cellVerts.last()
|
||||
<< endl;
|
||||
}
|
||||
}
|
||||
@ -371,13 +371,13 @@ void readCells
|
||||
cellVerts.append(cellShape(hex, cVerts, true));
|
||||
cellMaterial.append(physProp);
|
||||
|
||||
if (cellVerts[cellVerts.size()-1].size() != cVerts.size())
|
||||
if (cellVerts.last().size() != cVerts.size())
|
||||
{
|
||||
Pout<< "Line:" << is.lineNumber()
|
||||
<< " element:" << cellI
|
||||
<< " type:" << feID
|
||||
<< " collapsed from " << cVerts << nl
|
||||
<< " to:" << cellVerts[cellVerts.size()-1]
|
||||
<< " to:" << cellVerts.last()
|
||||
<< endl;
|
||||
}
|
||||
}
|
||||
@ -511,7 +511,7 @@ void readDOFS
|
||||
}
|
||||
|
||||
Info<< "For DOF set " << group
|
||||
<< " named " << patchNames[patchNames.size()-1]
|
||||
<< " named " << patchNames.last()
|
||||
<< " trying to read vertex indices."
|
||||
<< endl;
|
||||
|
||||
@ -534,7 +534,7 @@ void readDOFS
|
||||
}
|
||||
|
||||
Info<< "For DOF set " << group
|
||||
<< " named " << patchNames[patchNames.size()-1]
|
||||
<< " named " << patchNames.last()
|
||||
<< " read " << vertices.size() << " vertex indices." << endl;
|
||||
|
||||
dofVertices.append(vertices.shrink());
|
||||
|
||||
@ -64,7 +64,7 @@ int main(int argc, char *argv[])
|
||||
Info<< "Writing mesh" << endl;
|
||||
makeMesh.writeMesh();
|
||||
|
||||
Info<< nl << "End" << nl << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ int main(int argc, char *argv[])
|
||||
Info<< "Writing mesh" << endl;
|
||||
makeMesh.writeMesh();
|
||||
|
||||
Info<< nl << "End" << nl << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -382,7 +382,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
Info<< nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -418,8 +418,8 @@ int main(int argc, char *argv[])
|
||||
frontPatchFaces.setSize(layerFaces.size());
|
||||
forAll(backPatchFaces, i)
|
||||
{
|
||||
backPatchFaces[i] = layerFaces[i][0];
|
||||
frontPatchFaces[i] = layerFaces[i][layerFaces[i].size()-1];
|
||||
backPatchFaces[i] = layerFaces[i].first();
|
||||
frontPatchFaces[i] = layerFaces[i].last();
|
||||
}
|
||||
|
||||
// Create dummy fvSchemes, fvSolution
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
/* -g -DFULLDEBUG -O0 */ \
|
||||
-I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
|
||||
-I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
|
||||
-I$(LIB_SRC)/mesh/autoMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/triSurface/lnInclude \
|
||||
|
||||
@ -189,7 +189,7 @@ int main(int argc, char *argv[])
|
||||
currentSet.write();
|
||||
}
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -186,7 +186,7 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
newPatches.append(findPatchID(mesh, patchNames[i]));
|
||||
Info<< "Using additional patch " << patchNames[i]
|
||||
<< " at index " << newPatches[newPatches.size()-1] << endl;
|
||||
<< " at index " << newPatches.last() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -189,7 +189,7 @@ int main(int argc, char *argv[])
|
||||
currentSet.write();
|
||||
}
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ int main(int argc, char *argv[])
|
||||
masterMesh.merge();
|
||||
masterMesh.polyMesh::write();
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -189,7 +189,7 @@ int main(int argc, char *argv[])
|
||||
currentSet.write();
|
||||
}
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude
|
||||
-I$(LIB_SRC)/parallel/decompositionMethods/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
|
||||
@ -992,7 +992,7 @@ int main(int argc, char *argv[])
|
||||
delete fileStreamPtr;
|
||||
}
|
||||
|
||||
Pout<< "\nEnd" << endl;
|
||||
Pout<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -341,7 +341,7 @@ int main(int argc, char *argv[])
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
Info<< nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -439,7 +439,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
|
||||
Info << nl << "End" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
decomposeMesh.C
|
||||
decomposePar.C
|
||||
domainDecomposition.C
|
||||
distributeCells.C
|
||||
domainDecompositionMesh.C
|
||||
domainDecompositionDistribute.C
|
||||
fvFieldDecomposer.C
|
||||
pointFieldDecomposer.C
|
||||
lagrangianFieldDecomposer.C
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
|
||||
-I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude
|
||||
|
||||
@ -106,7 +106,6 @@ int main(int argc, char *argv[])
|
||||
Info<< "Decomposing mesh " << regionName << nl << endl;
|
||||
}
|
||||
|
||||
|
||||
bool writeCellDist = args.optionFound("cellDist");
|
||||
bool copyUniform = args.optionFound("copyUniform");
|
||||
bool decomposeFieldsOnly = args.optionFound("fields");
|
||||
|
||||
@ -38,7 +38,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
void domainDecomposition::mark
|
||||
void Foam::domainDecomposition::mark
|
||||
(
|
||||
const labelList& zoneElems,
|
||||
const label zoneI,
|
||||
@ -66,7 +66,7 @@ void domainDecomposition::mark
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
// from components
|
||||
domainDecomposition::domainDecomposition(const IOobject& io)
|
||||
Foam::domainDecomposition::domainDecomposition(const IOobject& io)
|
||||
:
|
||||
fvMesh(io),
|
||||
decompositionDict_
|
||||
@ -105,13 +105,13 @@ domainDecomposition::domainDecomposition(const IOobject& io)
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
domainDecomposition::~domainDecomposition()
|
||||
Foam::domainDecomposition::~domainDecomposition()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
bool domainDecomposition::writeDecomposition()
|
||||
bool Foam::domainDecomposition::writeDecomposition()
|
||||
{
|
||||
Info<< "\nConstructing processor meshes" << endl;
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Class
|
||||
Foam::domainDecomposition
|
||||
|
||||
Description
|
||||
Automatic domain decomposition class for FOAM meshes
|
||||
Automatic domain decomposition class for finite-volume meshes
|
||||
|
||||
SourceFiles
|
||||
domainDecomposition.C
|
||||
@ -42,10 +42,8 @@ SourceFiles
|
||||
#include "PtrList.H"
|
||||
#include "point.H"
|
||||
|
||||
#ifndef namespaceFoam
|
||||
#define namespaceFoam
|
||||
using namespace Foam;
|
||||
#endif
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class domainDecomposition Declaration
|
||||
@ -165,6 +163,11 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
@ -33,7 +33,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
void domainDecomposition::distributeCells()
|
||||
void Foam::domainDecomposition::distributeCells()
|
||||
{
|
||||
Info<< "\nCalculating distribution of cells" << endl;
|
||||
|
||||
@ -40,7 +40,7 @@ Description
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
|
||||
void Foam::domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
|
||||
{
|
||||
// Decide which cell goes to which processor
|
||||
distributeCells();
|
||||
@ -775,3 +775,5 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
|
||||
sort(globallySharedPoints_);
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -26,14 +26,10 @@ License
|
||||
|
||||
#include "fvFieldDecomposer.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
fvFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
|
||||
Foam::fvFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
|
||||
(
|
||||
const unallocLabelList& addressingSlice,
|
||||
const label addressingOffset
|
||||
@ -49,7 +45,7 @@ fvFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
|
||||
}
|
||||
|
||||
|
||||
fvFieldDecomposer::processorVolPatchFieldDecomposer::
|
||||
Foam::fvFieldDecomposer::processorVolPatchFieldDecomposer::
|
||||
processorVolPatchFieldDecomposer
|
||||
(
|
||||
const fvMesh& mesh,
|
||||
@ -97,7 +93,7 @@ processorVolPatchFieldDecomposer
|
||||
}
|
||||
|
||||
|
||||
fvFieldDecomposer::processorSurfacePatchFieldDecomposer::
|
||||
Foam::fvFieldDecomposer::processorSurfacePatchFieldDecomposer::
|
||||
processorSurfacePatchFieldDecomposer
|
||||
(
|
||||
const unallocLabelList& addressingSlice
|
||||
@ -117,7 +113,7 @@ processorSurfacePatchFieldDecomposer
|
||||
}
|
||||
|
||||
|
||||
fvFieldDecomposer::fvFieldDecomposer
|
||||
Foam::fvFieldDecomposer::fvFieldDecomposer
|
||||
(
|
||||
const fvMesh& completeMesh,
|
||||
const fvMesh& procMesh,
|
||||
@ -187,7 +183,7 @@ fvFieldDecomposer::fvFieldDecomposer
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
fvFieldDecomposer::~fvFieldDecomposer()
|
||||
Foam::fvFieldDecomposer::~fvFieldDecomposer()
|
||||
{
|
||||
forAll(patchFieldDecomposerPtrs_, patchi)
|
||||
{
|
||||
@ -214,9 +210,4 @@ fvFieldDecomposer::~fvFieldDecomposer()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -28,16 +28,11 @@ License
|
||||
#include "processorFvPatchField.H"
|
||||
#include "processorFvsPatchField.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh> >
|
||||
fvFieldDecomposer::decomposeField
|
||||
Foam::tmp<Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> >
|
||||
Foam::fvFieldDecomposer::decomposeField
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>& field
|
||||
) const
|
||||
@ -106,8 +101,8 @@ fvFieldDecomposer::decomposeField
|
||||
|
||||
|
||||
template<class Type>
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||
fvFieldDecomposer::decomposeField
|
||||
Foam::tmp<Foam::GeometricField<Type, Foam::fvsPatchField, Foam::surfaceMesh> >
|
||||
Foam::fvFieldDecomposer::decomposeField
|
||||
(
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& field
|
||||
) const
|
||||
@ -217,7 +212,7 @@ fvFieldDecomposer::decomposeField
|
||||
|
||||
|
||||
template<class GeoField>
|
||||
void fvFieldDecomposer::decomposeFields
|
||||
void Foam::fvFieldDecomposer::decomposeFields
|
||||
(
|
||||
const PtrList<GeoField>& fields
|
||||
) const
|
||||
@ -229,8 +224,4 @@ void fvFieldDecomposer::decomposeFields
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -29,16 +29,10 @@ Description
|
||||
|
||||
#include "lagrangianFieldDecomposer.H"
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
// Construct from components
|
||||
lagrangianFieldDecomposer::lagrangianFieldDecomposer
|
||||
Foam::lagrangianFieldDecomposer::lagrangianFieldDecomposer
|
||||
(
|
||||
const polyMesh& mesh,
|
||||
const polyMesh& procMesh,
|
||||
@ -88,6 +82,4 @@ lagrangianFieldDecomposer::lagrangianFieldDecomposer
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -27,15 +27,10 @@ License
|
||||
#include "lagrangianFieldDecomposer.H"
|
||||
#include "IOobjectList.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
void lagrangianFieldDecomposer::readFields
|
||||
void Foam::lagrangianFieldDecomposer::readFields
|
||||
(
|
||||
const label cloudI,
|
||||
const IOobjectList& lagrangianObjects,
|
||||
@ -70,7 +65,8 @@ void lagrangianFieldDecomposer::readFields
|
||||
|
||||
|
||||
template<class Type>
|
||||
tmp<IOField<Type> > lagrangianFieldDecomposer::decomposeField
|
||||
Foam::tmp<Foam::IOField<Type> >
|
||||
Foam::lagrangianFieldDecomposer::decomposeField
|
||||
(
|
||||
const word& cloudName,
|
||||
const IOField<Type>& field
|
||||
@ -100,7 +96,7 @@ tmp<IOField<Type> > lagrangianFieldDecomposer::decomposeField
|
||||
|
||||
|
||||
template<class GeoField>
|
||||
void lagrangianFieldDecomposer::decomposeFields
|
||||
void Foam::lagrangianFieldDecomposer::decomposeFields
|
||||
(
|
||||
const word& cloudName,
|
||||
const PtrList<GeoField>& fields
|
||||
@ -116,8 +112,4 @@ void lagrangianFieldDecomposer::decomposeFields
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -26,14 +26,9 @@ License
|
||||
|
||||
#include "pointFieldDecomposer.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
|
||||
Foam::pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
|
||||
(
|
||||
const pointPatch& completeMeshPatch,
|
||||
const pointPatch& procMeshPatch,
|
||||
@ -79,7 +74,7 @@ pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
|
||||
}
|
||||
|
||||
|
||||
pointFieldDecomposer::pointFieldDecomposer
|
||||
Foam::pointFieldDecomposer::pointFieldDecomposer
|
||||
(
|
||||
const pointMesh& completeMesh,
|
||||
const pointMesh& procMesh,
|
||||
@ -114,7 +109,7 @@ pointFieldDecomposer::pointFieldDecomposer
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
pointFieldDecomposer::~pointFieldDecomposer()
|
||||
Foam::pointFieldDecomposer::~pointFieldDecomposer()
|
||||
{
|
||||
forAll(patchFieldDecomposerPtrs_, patchi)
|
||||
{
|
||||
@ -128,6 +123,4 @@ pointFieldDecomposer::~pointFieldDecomposer()
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -28,16 +28,11 @@ License
|
||||
#include "processorPointPatchFields.H"
|
||||
#include "globalPointPatchFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
tmp<GeometricField<Type, pointPatchField, pointMesh> >
|
||||
pointFieldDecomposer::decomposeField
|
||||
Foam::tmp<Foam::GeometricField<Type, Foam::pointPatchField, Foam::pointMesh> >
|
||||
Foam::pointFieldDecomposer::decomposeField
|
||||
(
|
||||
const GeometricField<Type, pointPatchField, pointMesh>& field
|
||||
) const
|
||||
@ -117,7 +112,7 @@ pointFieldDecomposer::decomposeField
|
||||
|
||||
|
||||
template<class GeoField>
|
||||
void pointFieldDecomposer::decomposeFields
|
||||
void Foam::pointFieldDecomposer::decomposeFields
|
||||
(
|
||||
const PtrList<GeoField>& fields
|
||||
) const
|
||||
@ -131,6 +126,4 @@ void pointFieldDecomposer::decomposeFields
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -1,7 +1,3 @@
|
||||
processorMeshes.C
|
||||
fvFieldReconstructor.C
|
||||
pointFieldReconstructor.C
|
||||
reconstructLagrangianPositions.C
|
||||
reconstructPar.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/reconstructPar
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/parallel/reconstruct/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lgenericPatchFields \
|
||||
-llagrangian \
|
||||
-lmeshTools
|
||||
-lmeshTools \
|
||||
-lreconstruct
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
|
||||
-I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude
|
||||
|
||||
@ -33,11 +33,11 @@ Description
|
||||
Balances mesh and writes new mesh to new time directory.
|
||||
|
||||
Can also work like decomposePar:
|
||||
|
||||
@verbatim
|
||||
mkdir processor0
|
||||
cp -r constant processor0
|
||||
mpirun -np ddd redistributeMeshPar -parallel
|
||||
|
||||
@endverbatim
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "Field.H"
|
||||
|
||||
@ -175,7 +175,7 @@ int main(int argc, char *argv[])
|
||||
ensightMesh eMesh(mesh, args, binary);
|
||||
|
||||
// Set Time to the last time before looking for the lagrangian objects
|
||||
runTime.setTime(Times[Times.size()-1], Times.size()-1);
|
||||
runTime.setTime(Times.last(), Times.size()-1);
|
||||
|
||||
IOobjectList objects(mesh, runTime.timeName());
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ HashTable< HashTable<word> > cloudFields;
|
||||
|
||||
if (timeDirs.size())
|
||||
{
|
||||
IOobjectList objs(mesh, timeDirs[timeDirs.size()-1].name());
|
||||
IOobjectList objs(mesh, timeDirs.last().name());
|
||||
|
||||
forAllConstIter(IOobjectList, objs, fieldIter)
|
||||
{
|
||||
@ -34,7 +34,7 @@ if (timeDirs.size())
|
||||
fileNameList cloudDirs = readDir
|
||||
(
|
||||
runTime.path()
|
||||
/ timeDirs[timeDirs.size()-1].name()
|
||||
/ timeDirs.last().name()
|
||||
/ regionPrefix
|
||||
/ cloud::prefix,
|
||||
fileName::DIRECTORY
|
||||
@ -54,7 +54,7 @@ if (timeDirs.size())
|
||||
IOobjectList objs
|
||||
(
|
||||
mesh,
|
||||
timeDirs[timeDirs.size()-1].name(),
|
||||
timeDirs.last().name(),
|
||||
cloud::prefix/cloudName
|
||||
);
|
||||
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
if [ "$TEC_360_2009" ]
|
||||
then
|
||||
wmake
|
||||
fi
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
@ -16,6 +16,17 @@
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<!-- Send discrete time info to the animation panel -->
|
||||
<DoubleVectorProperty
|
||||
name="TimestepValues"
|
||||
repeatable="1"
|
||||
information_only="1">
|
||||
<TimeStepsInformationHelper/>
|
||||
<Documentation>
|
||||
Available timestep values.
|
||||
</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
|
||||
<!-- Cache Mesh check-box -->
|
||||
<IntVectorProperty
|
||||
name="UiCacheMesh"
|
||||
@ -30,20 +41,33 @@
|
||||
</Documentation>
|
||||
</IntVectorProperty>
|
||||
|
||||
|
||||
<!-- Send discrete time info to the animation panel -->
|
||||
<DoubleVectorProperty
|
||||
name="TimestepValues"
|
||||
repeatable="1"
|
||||
information_only="1">
|
||||
<TimeStepsInformationHelper/>
|
||||
<!-- Refresh button -->
|
||||
<IntVectorProperty
|
||||
name="UiRefresh"
|
||||
command="SetRefresh"
|
||||
number_of_elements="1"
|
||||
is_internal="0"
|
||||
default_values="0"
|
||||
animateable="0">
|
||||
<BooleanDomain name="bool"/>
|
||||
<Documentation>
|
||||
Available timestep values.
|
||||
Rescan for updated timesteps/fields.
|
||||
</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
</IntVectorProperty>
|
||||
|
||||
|
||||
<!-- Global settings -->
|
||||
<!-- Skip Zero Time check-box -->
|
||||
<IntVectorProperty
|
||||
name="UiZeroTime"
|
||||
command="SetSkipZeroTime"
|
||||
number_of_elements="1"
|
||||
is_internal="1"
|
||||
default_values="0"
|
||||
animateable="0">
|
||||
<BooleanDomain name="bool"/>
|
||||
<Documentation>
|
||||
Skip including the 0/ time directory
|
||||
</Documentation>
|
||||
</IntVectorProperty>
|
||||
|
||||
<!-- Extrapolate Patches check-box -->
|
||||
<IntVectorProperty
|
||||
@ -60,22 +84,24 @@
|
||||
|
||||
<!-- Include Sets check-box -->
|
||||
<IntVectorProperty
|
||||
name="IncludeSets"
|
||||
name="UiIncludeSets"
|
||||
command="SetIncludeSets"
|
||||
number_of_elements="1"
|
||||
is_internal="1"
|
||||
default_values="0"
|
||||
animateable="0">
|
||||
<Documentation>
|
||||
Searches the polyMesh/sets/ directory
|
||||
Search the polyMesh/sets/ directory
|
||||
</Documentation>
|
||||
<BooleanDomain name="bool"/>
|
||||
</IntVectorProperty>
|
||||
|
||||
<!-- Include Zones check-box -->
|
||||
<IntVectorProperty
|
||||
name="IncludeZones"
|
||||
name="UiIncludeZones"
|
||||
command="SetIncludeZones"
|
||||
number_of_elements="1"
|
||||
is_internal="1"
|
||||
default_values="0"
|
||||
animateable="0">
|
||||
<Documentation>
|
||||
@ -95,7 +121,7 @@
|
||||
animateable="0">
|
||||
<BooleanDomain name="bool"/>
|
||||
<Documentation>
|
||||
Show patch names in render window.
|
||||
Show patch names in render window
|
||||
</Documentation>
|
||||
</IntVectorProperty>
|
||||
|
||||
@ -112,12 +138,13 @@
|
||||
</Documentation>
|
||||
</IntVectorProperty>
|
||||
|
||||
|
||||
<!-- Selections -->
|
||||
<!--
|
||||
| Selections
|
||||
-->
|
||||
|
||||
<!-- Available Parts (volume, patches, lagrangian) array -->
|
||||
<StringVectorProperty
|
||||
name="PartArrayInfo"
|
||||
name="PartArrayStatus"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="Part"/>
|
||||
</StringVectorProperty>
|
||||
@ -129,18 +156,21 @@
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="PartArrayInfo"
|
||||
information_property="PartArrayStatus"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="PartArrayInfo" function="ArrayList"/>
|
||||
<Property name="PartArrayStatus" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
<Documentation>
|
||||
This property contains a list of the mesh parts (patches, sets, zones).
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<!-- Available volFields array -->
|
||||
<StringVectorProperty
|
||||
name="VolFieldArrayInfo"
|
||||
name="VolFieldArrayStatus"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="VolField"/>
|
||||
</StringVectorProperty>
|
||||
@ -152,18 +182,21 @@
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="VolFieldArrayInfo"
|
||||
information_property="VolFieldArrayStatus"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="VolFieldArrayInfo" function="ArrayList"/>
|
||||
<Property name="VolFieldArrayStatus" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
<Documentation>
|
||||
This property contains a list of the volume fields
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<!-- Available Lagrangian fields array -->
|
||||
<StringVectorProperty
|
||||
name="LagrangianFieldArrayInfo"
|
||||
name="LagrangianFieldArrayStatus"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="LagrangianField"/>
|
||||
</StringVectorProperty>
|
||||
@ -175,18 +208,21 @@
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="LagrangianFieldArrayInfo"
|
||||
information_property="LagrangianFieldArrayStatus"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="LagrangianFieldArrayInfo" function="ArrayList"/>
|
||||
<Property name="LagrangianFieldArrayStatus" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
<Documentation>
|
||||
This property contains a list of the lagrangian fields
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<!-- Available pointFields array -->
|
||||
<StringVectorProperty
|
||||
name="PointFieldArrayInfo"
|
||||
name="PointFieldArrayStatus"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="PointField"/>
|
||||
</StringVectorProperty>
|
||||
@ -198,19 +234,26 @@
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="PointFieldArrayInfo"
|
||||
information_property="PointFieldArrayStatus"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="PointFieldArrayInfo" function="ArrayList"/>
|
||||
<Property name="PointFieldArrayStatus" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
<Documentation>
|
||||
This property contains a list of the point fields
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<Hints>
|
||||
<Property name="FileName" show="0"/>
|
||||
<Property name="UiCacheMesh" show="0"/>
|
||||
<Property name="UiZeroTime" show="0"/>
|
||||
<Property name="UiRefresh" show="0"/>
|
||||
<Property name="UiShowPatchNames" show="0"/>
|
||||
<Property name="UiIncludeSets" show="0"/>
|
||||
<Property name="UiIncludeZones" show="0"/>
|
||||
</Hints>
|
||||
|
||||
|
||||
|
||||
@ -32,6 +32,7 @@ License
|
||||
#include <QLabel>
|
||||
#include <QLayout>
|
||||
#include <QString>
|
||||
#include <QPushButton>
|
||||
#include <QtDebug>
|
||||
|
||||
// Paraview <-> QT UI
|
||||
@ -56,22 +57,75 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
|
||||
QWidget *p
|
||||
)
|
||||
:
|
||||
pqAutoGeneratedObjectPanel(proxy, p),
|
||||
sourceProxy_(vtkSMSourceProxy::SafeDownCast(this->proxy()))
|
||||
pqAutoGeneratedObjectPanel(proxy, p)
|
||||
{
|
||||
// create first sublayout (at top of the panel)
|
||||
QGridLayout *sect1 = new QGridLayout();
|
||||
this->PanelLayout->addLayout(sect1, 0, 0, 1, -1);
|
||||
QGridLayout *form = new QGridLayout();
|
||||
this->PanelLayout->addLayout(form, 0, 0, 1, -1);
|
||||
|
||||
vtkSMProperty* prop = 0;
|
||||
|
||||
// refresh button for updating times/fields
|
||||
if ((prop = this->proxy()->GetProperty("UiRefresh")) != 0)
|
||||
{
|
||||
prop->SetImmediateUpdate(1);
|
||||
QPushButton *refresh = new QPushButton("Refresh Times");
|
||||
refresh->setToolTip("Rescan for updated times/fields.");
|
||||
|
||||
form->addWidget(refresh, 0, 0, Qt::AlignLeft);
|
||||
QObject::connect
|
||||
(
|
||||
refresh,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(RefreshPressed())
|
||||
);
|
||||
}
|
||||
|
||||
// checkbox for skip zeroTime
|
||||
if ((prop = this->proxy()->GetProperty("UiZeroTime")) != 0)
|
||||
{
|
||||
// immediate update on the Server Manager side
|
||||
prop->SetImmediateUpdate(true);
|
||||
|
||||
ZeroTime_ = new QCheckBox("Skip Zero Time");
|
||||
ZeroTime_->setChecked
|
||||
(
|
||||
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
|
||||
);
|
||||
ZeroTime_->setToolTip
|
||||
(
|
||||
"Skip including the 0/ time directory."
|
||||
);
|
||||
|
||||
form->addWidget(ZeroTime_, 0, 1, Qt::AlignLeft);
|
||||
connect
|
||||
(
|
||||
ZeroTime_,
|
||||
SIGNAL(stateChanged(int)),
|
||||
this,
|
||||
SLOT(ZeroTimeToggled())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// checkbox for caching mesh
|
||||
if ((prop = this->proxy()->GetProperty("UiCacheMesh")) != 0)
|
||||
{
|
||||
// immediate update on the Server Manager side
|
||||
prop->SetImmediateUpdate(true);
|
||||
|
||||
CacheMesh_ = new QCheckBox("Cache Mesh");
|
||||
CacheMesh_->setChecked(true);
|
||||
|
||||
// checkbox for caching mesh
|
||||
ShowPatchNames_ = new QCheckBox("Show Patch Names");
|
||||
ShowPatchNames_->setChecked(false);
|
||||
CacheMesh_->setChecked
|
||||
(
|
||||
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
|
||||
);
|
||||
CacheMesh_->setToolTip
|
||||
(
|
||||
"Cache the fvMesh in memory."
|
||||
);
|
||||
|
||||
form->addWidget(CacheMesh_, 1, 0, Qt::AlignLeft);
|
||||
connect
|
||||
(
|
||||
CacheMesh_,
|
||||
@ -79,7 +133,27 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
|
||||
this,
|
||||
SLOT(CacheMeshToggled())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// checkbox for patch names
|
||||
if ((prop = this->proxy()->GetProperty("UiShowPatchNames")) != 0)
|
||||
{
|
||||
// immediate update on the Server Manager side
|
||||
prop->SetImmediateUpdate(true);
|
||||
|
||||
ShowPatchNames_ = new QCheckBox("Patch Names");
|
||||
ShowPatchNames_->setChecked
|
||||
(
|
||||
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
|
||||
);
|
||||
ShowPatchNames_->setToolTip
|
||||
(
|
||||
"Show patch names in render window."
|
||||
);
|
||||
|
||||
// row/col 0,1
|
||||
form->addWidget(ShowPatchNames_, 1, 1, Qt::AlignLeft);
|
||||
connect
|
||||
(
|
||||
ShowPatchNames_,
|
||||
@ -87,20 +161,65 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
|
||||
this,
|
||||
SLOT(ShowPatchNamesToggled())
|
||||
);
|
||||
|
||||
sect1->addWidget(CacheMesh_);
|
||||
sect1->addWidget(ShowPatchNames_);
|
||||
}
|
||||
|
||||
|
||||
// checkbox for include sets
|
||||
if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0)
|
||||
{
|
||||
// immediate update on the Server Manager side
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
prop->SetImmediateUpdate(true);
|
||||
|
||||
IncludeSets_ = new QCheckBox("Include Sets");
|
||||
IncludeSets_->setChecked
|
||||
(
|
||||
sourceProxy_->GetProperty("UiCacheMesh")
|
||||
)->SetImmediateUpdate(true);
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
|
||||
);
|
||||
IncludeSets_->setToolTip
|
||||
(
|
||||
sourceProxy_->GetProperty("UiShowPatchNames")
|
||||
)->SetImmediateUpdate(true);
|
||||
"Search the polyMesh/sets/ directory."
|
||||
);
|
||||
|
||||
// row/col 1,0
|
||||
form->addWidget(IncludeSets_, 2, 0, Qt::AlignLeft);
|
||||
connect
|
||||
(
|
||||
IncludeSets_,
|
||||
SIGNAL(stateChanged(int)),
|
||||
this,
|
||||
SLOT(IncludeSetsToggled())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// checkbox for include zones
|
||||
if ((prop = this->proxy()->GetProperty("UiIncludeZones")) != 0)
|
||||
{
|
||||
// immediate update on the Server Manager side
|
||||
prop->SetImmediateUpdate(true);
|
||||
|
||||
IncludeZones_ = new QCheckBox("Include Zones");
|
||||
IncludeZones_->setChecked
|
||||
(
|
||||
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
|
||||
);
|
||||
IncludeZones_->setToolTip
|
||||
(
|
||||
"ZoneMesh information is used to find {cell,face,point}Zones. "
|
||||
"The polyMesh/ directory is only checked on startup."
|
||||
);
|
||||
|
||||
// row/col 1,1
|
||||
form->addWidget(IncludeZones_, 2, 1, Qt::AlignLeft);
|
||||
connect
|
||||
(
|
||||
IncludeZones_,
|
||||
SIGNAL(stateChanged(int)),
|
||||
this,
|
||||
SLOT(IncludeZonesToggled())
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -110,16 +229,43 @@ void pqPV3FoamReaderPanel::CacheMeshToggled()
|
||||
{
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
sourceProxy_->GetProperty("UiCacheMesh")
|
||||
this->proxy()->GetProperty("UiCacheMesh")
|
||||
)->SetElement(0, CacheMesh_->isChecked());
|
||||
}
|
||||
|
||||
|
||||
void pqPV3FoamReaderPanel::RefreshPressed()
|
||||
{
|
||||
// update everything
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
this->proxy()->GetProperty("UiRefresh")
|
||||
)->Modified();
|
||||
|
||||
vtkSMSourceProxy::SafeDownCast(this->proxy())->UpdatePipeline();
|
||||
|
||||
// render all views
|
||||
pqApplicationCore::instance()->render();
|
||||
}
|
||||
|
||||
|
||||
void pqPV3FoamReaderPanel::ZeroTimeToggled()
|
||||
{
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
this->proxy()->GetProperty("UiZeroTime")
|
||||
)->SetElement(0, ZeroTime_->isChecked());
|
||||
|
||||
// update everything
|
||||
RefreshPressed();
|
||||
}
|
||||
|
||||
|
||||
void pqPV3FoamReaderPanel::ShowPatchNamesToggled()
|
||||
{
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
sourceProxy_->GetProperty("UiShowPatchNames")
|
||||
this->proxy()->GetProperty("UiShowPatchNames")
|
||||
)->SetElement(0, ShowPatchNames_->isChecked());
|
||||
|
||||
// update the active view
|
||||
@ -132,4 +278,37 @@ void pqPV3FoamReaderPanel::ShowPatchNamesToggled()
|
||||
}
|
||||
|
||||
|
||||
void pqPV3FoamReaderPanel::IncludeSetsToggled()
|
||||
{
|
||||
vtkSMProperty* prop;
|
||||
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
this->proxy()->GetProperty("UiIncludeSets")
|
||||
)->SetElement(0, IncludeSets_->isChecked());
|
||||
|
||||
if ((prop = this->proxy()->GetProperty("PartArrayStatus")) != 0)
|
||||
{
|
||||
this->proxy()->UpdatePropertyInformation(prop);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void pqPV3FoamReaderPanel::IncludeZonesToggled()
|
||||
{
|
||||
vtkSMProperty* prop;
|
||||
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
this->proxy()->GetProperty("UiIncludeZones")
|
||||
)->SetElement(0, IncludeZones_->isChecked());
|
||||
|
||||
if ((prop = this->proxy()->GetProperty("PartArrayStatus")) != 0)
|
||||
{
|
||||
this->proxy()->UpdatePropertyInformation(prop);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -37,6 +37,7 @@ SourceFiles
|
||||
#ifndef pqPV3FoamReaderPanel_h
|
||||
#define pqPV3FoamReaderPanel_h
|
||||
|
||||
|
||||
#include "pqAutoGeneratedObjectPanel.h"
|
||||
|
||||
// Forward declaration of QT classes
|
||||
@ -62,8 +63,8 @@ class pqPV3FoamReaderPanel
|
||||
Q_OBJECT;
|
||||
typedef pqAutoGeneratedObjectPanel Superclass;
|
||||
|
||||
//- Server Manager Source Proxy
|
||||
vtkSMSourceProxy* sourceProxy_;
|
||||
//- ZeroTime checkbox
|
||||
QCheckBox* ZeroTime_;
|
||||
|
||||
//- CacheMesh checkbox
|
||||
QCheckBox* CacheMesh_;
|
||||
@ -71,10 +72,20 @@ class pqPV3FoamReaderPanel
|
||||
//- Show Patch Names checkbox
|
||||
QCheckBox* ShowPatchNames_;
|
||||
|
||||
//- IncludeSets checkbox
|
||||
QCheckBox* IncludeSets_;
|
||||
|
||||
//- IncludeZones checkbox
|
||||
QCheckBox* IncludeZones_;
|
||||
|
||||
protected slots:
|
||||
|
||||
void CacheMeshToggled();
|
||||
void ZeroTimeToggled();
|
||||
void RefreshPressed();
|
||||
void ShowPatchNamesToggled();
|
||||
void IncludeSetsToggled();
|
||||
void IncludeZonesToggled();
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -79,7 +79,9 @@ vtkPV3FoamReader::vtkPV3FoamReader()
|
||||
TimeStepRange[1] = 0;
|
||||
|
||||
CacheMesh = 1;
|
||||
Refresh = 0;
|
||||
|
||||
SkipZeroTime = 0;
|
||||
ExtrapolatePatches = 0;
|
||||
IncludeSets = 0;
|
||||
IncludeZones = 0;
|
||||
@ -336,7 +338,6 @@ int vtkPV3FoamReader::RequestData
|
||||
foamData_->setTime(nRequestTime, requestTime);
|
||||
}
|
||||
|
||||
|
||||
vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast
|
||||
(
|
||||
outputVector->GetInformationObject(0)->Get
|
||||
@ -420,7 +421,39 @@ int vtkPV3FoamReader::RequestData
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamReader::SetShowPatchNames(const int val)
|
||||
void vtkPV3FoamReader::SetRefresh(int val)
|
||||
{
|
||||
Modified();
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamReader::SetIncludeSets(int val)
|
||||
{
|
||||
if (IncludeSets != val)
|
||||
{
|
||||
IncludeSets = val;
|
||||
if (foamData_)
|
||||
{
|
||||
foamData_->updateInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamReader::SetIncludeZones(int val)
|
||||
{
|
||||
if (IncludeZones != val)
|
||||
{
|
||||
IncludeZones = val;
|
||||
if (foamData_)
|
||||
{
|
||||
foamData_->updateInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamReader::SetShowPatchNames(int val)
|
||||
{
|
||||
if (ShowPatchNames != val)
|
||||
{
|
||||
@ -430,7 +463,6 @@ void vtkPV3FoamReader::SetShowPatchNames(const int val)
|
||||
}
|
||||
|
||||
|
||||
|
||||
void vtkPV3FoamReader::updatePatchNamesView(const bool show)
|
||||
{
|
||||
pqApplicationCore* appCore = pqApplicationCore::instance();
|
||||
@ -452,7 +484,7 @@ void vtkPV3FoamReader::updatePatchNamesView(const bool show)
|
||||
// Get all the pqRenderView instances
|
||||
QList<pqRenderView*> renderViews = smModel->findItems<pqRenderView*>();
|
||||
|
||||
for (int viewI=0; viewI<renderViews.size(); viewI++)
|
||||
for (int viewI=0; viewI < renderViews.size(); ++viewI)
|
||||
{
|
||||
foamData_->renderPatchNames
|
||||
(
|
||||
@ -521,7 +553,8 @@ int vtkPV3FoamReader::GetPartArrayStatus(const char* name)
|
||||
|
||||
void vtkPV3FoamReader::SetPartArrayStatus(const char* name, int status)
|
||||
{
|
||||
vtkDebugMacro(<<"SetPartArrayStatus");
|
||||
vtkDebugMacro("Set mesh part \"" << name << "\" status to: " << status);
|
||||
|
||||
if (status)
|
||||
{
|
||||
PartSelection->EnableArray(name);
|
||||
|
||||
@ -83,6 +83,15 @@ public:
|
||||
vtkSetMacro(CacheMesh, int);
|
||||
vtkGetMacro(CacheMesh, int);
|
||||
|
||||
// Description:
|
||||
// FOAM refresh times/fields
|
||||
virtual void SetRefresh(int);
|
||||
|
||||
// Description:
|
||||
// FOAM Skip/include the 0/ time directory
|
||||
vtkSetMacro(SkipZeroTime, int);
|
||||
vtkGetMacro(SkipZeroTime, int);
|
||||
|
||||
// Description:
|
||||
// GUI update control
|
||||
vtkSetMacro(UpdateGUI, int);
|
||||
@ -93,13 +102,14 @@ public:
|
||||
vtkSetMacro(ExtrapolatePatches, int);
|
||||
vtkGetMacro(ExtrapolatePatches, int);
|
||||
|
||||
// Description:
|
||||
// FOAM read sets control
|
||||
vtkSetMacro(IncludeSets, int);
|
||||
virtual void SetIncludeSets(int);
|
||||
vtkGetMacro(IncludeSets, int);
|
||||
|
||||
// Description:
|
||||
// FOAM read zones control
|
||||
vtkSetMacro(IncludeZones, int);
|
||||
virtual void SetIncludeZones(int);
|
||||
vtkGetMacro(IncludeZones, int);
|
||||
|
||||
// Description:
|
||||
@ -113,7 +123,7 @@ public:
|
||||
|
||||
// Description:
|
||||
// Parts selection list control
|
||||
vtkDataArraySelection* GetPartSelection();
|
||||
virtual vtkDataArraySelection* GetPartSelection();
|
||||
int GetNumberOfPartArrays();
|
||||
int GetPartArrayStatus(const char* name);
|
||||
void SetPartArrayStatus(const char* name, int status);
|
||||
@ -121,7 +131,7 @@ public:
|
||||
|
||||
// Description:
|
||||
// volField selection list control
|
||||
vtkDataArraySelection* GetVolFieldSelection();
|
||||
virtual vtkDataArraySelection* GetVolFieldSelection();
|
||||
int GetNumberOfVolFieldArrays();
|
||||
int GetVolFieldArrayStatus(const char* name);
|
||||
void SetVolFieldArrayStatus(const char* name, int status);
|
||||
@ -129,7 +139,7 @@ public:
|
||||
|
||||
// Description:
|
||||
// pointField selection list control
|
||||
vtkDataArraySelection* GetPointFieldSelection();
|
||||
virtual vtkDataArraySelection* GetPointFieldSelection();
|
||||
int GetNumberOfPointFieldArrays();
|
||||
int GetPointFieldArrayStatus(const char* name);
|
||||
void SetPointFieldArrayStatus(const char* name, int status);
|
||||
@ -137,7 +147,7 @@ public:
|
||||
|
||||
// Description:
|
||||
// lagrangianField selection list control
|
||||
vtkDataArraySelection* GetLagrangianFieldSelection();
|
||||
virtual vtkDataArraySelection* GetLagrangianFieldSelection();
|
||||
int GetNumberOfLagrangianFieldArrays();
|
||||
int GetLagrangianFieldArrayStatus(const char* name);
|
||||
void SetLagrangianFieldArrayStatus(const char* name, int status);
|
||||
@ -156,7 +166,6 @@ public:
|
||||
|
||||
void SelectionModified();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
//- Construct null
|
||||
@ -185,9 +194,10 @@ protected:
|
||||
//- Fill in additional port information
|
||||
virtual int FillOutputPortInformation(int, vtkInformation*);
|
||||
|
||||
// The observer to modify this object when array selections are modified
|
||||
//- The observer to modify this object when array selections are modified
|
||||
vtkCallbackCommand* SelectionObserver;
|
||||
|
||||
//- The file name for this case
|
||||
char* FileName;
|
||||
|
||||
private:
|
||||
@ -202,14 +212,16 @@ private:
|
||||
void updatePatchNamesView(const bool show);
|
||||
|
||||
int TimeStepRange[2];
|
||||
int Refresh;
|
||||
int CacheMesh;
|
||||
int SkipZeroTime;
|
||||
|
||||
int ExtrapolatePatches;
|
||||
int IncludeSets;
|
||||
int IncludeZones;
|
||||
int ShowPatchNames;
|
||||
|
||||
//- Dummy variable/switch for invoke a reader update
|
||||
//- Dummy variable/switch to invoke a reader update
|
||||
int UpdateGUI;
|
||||
|
||||
vtkDataArraySelection* PartSelection;
|
||||
|
||||
@ -50,16 +50,16 @@ defineTypeNameAndDebug(Foam::vtkPV3Foam, 0);
|
||||
|
||||
void Foam::vtkPV3Foam::resetCounters()
|
||||
{
|
||||
// Reset mesh part ids and sizes
|
||||
partInfoVolume_.reset();
|
||||
partInfoPatches_.reset();
|
||||
partInfoLagrangian_.reset();
|
||||
partInfoCellZones_.reset();
|
||||
partInfoFaceZones_.reset();
|
||||
partInfoPointZones_.reset();
|
||||
partInfoCellSets_.reset();
|
||||
partInfoFaceSets_.reset();
|
||||
partInfoPointSets_.reset();
|
||||
// Reset array range information (ids and sizes)
|
||||
arrayRangeVolume_.reset();
|
||||
arrayRangePatches_.reset();
|
||||
arrayRangeLagrangian_.reset();
|
||||
arrayRangeCellZones_.reset();
|
||||
arrayRangeFaceZones_.reset();
|
||||
arrayRangePointZones_.reset();
|
||||
arrayRangeCellSets_.reset();
|
||||
arrayRangeFaceSets_.reset();
|
||||
arrayRangePointSets_.reset();
|
||||
}
|
||||
|
||||
|
||||
@ -92,21 +92,6 @@ void Foam::vtkPV3Foam::reduceMemory()
|
||||
|
||||
int Foam::vtkPV3Foam::setTime(int nRequest, const double requestTimes[])
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3Foam::setTime(";
|
||||
for (int requestI = 0; requestI < nRequest; ++requestI)
|
||||
{
|
||||
if (requestI)
|
||||
{
|
||||
Info<< ", ";
|
||||
}
|
||||
|
||||
Info<< requestTimes[requestI];
|
||||
}
|
||||
Info << ") - previousIndex = " << timeIndex_ << endl;
|
||||
}
|
||||
|
||||
Time& runTime = dbPtr_();
|
||||
|
||||
// Get times list
|
||||
@ -128,6 +113,22 @@ int Foam::vtkPV3Foam::setTime(int nRequest, const double requestTimes[])
|
||||
nearestIndex = 0;
|
||||
}
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3Foam::setTime(";
|
||||
for (int requestI = 0; requestI < nRequest; ++requestI)
|
||||
{
|
||||
if (requestI)
|
||||
{
|
||||
Info<< ", ";
|
||||
}
|
||||
|
||||
Info<< requestTimes[requestI];
|
||||
}
|
||||
Info<< ") - previousIndex = " << timeIndex_
|
||||
<< ", nearestIndex = " << nearestIndex << endl;
|
||||
}
|
||||
|
||||
|
||||
// see what has changed
|
||||
if (timeIndex_ != nearestIndex)
|
||||
@ -230,15 +231,15 @@ Foam::vtkPV3Foam::vtkPV3Foam
|
||||
timeIndex_(-1),
|
||||
meshChanged_(true),
|
||||
fieldsChanged_(true),
|
||||
partInfoVolume_("unzoned"),
|
||||
partInfoPatches_("patches"),
|
||||
partInfoLagrangian_("lagrangian"),
|
||||
partInfoCellZones_("cellZone"),
|
||||
partInfoFaceZones_("faceZone"),
|
||||
partInfoPointZones_("pointZone"),
|
||||
partInfoCellSets_("cellSet"),
|
||||
partInfoFaceSets_("faceSet"),
|
||||
partInfoPointSets_("pointSet")
|
||||
arrayRangeVolume_("unzoned"),
|
||||
arrayRangePatches_("patches"),
|
||||
arrayRangeLagrangian_("lagrangian"),
|
||||
arrayRangeCellZones_("cellZone"),
|
||||
arrayRangeFaceZones_("faceZone"),
|
||||
arrayRangePointZones_("pointZone"),
|
||||
arrayRangeCellSets_("cellSet"),
|
||||
arrayRangeFaceSets_("faceSet"),
|
||||
arrayRangePointSets_("pointSet")
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
@ -288,7 +289,7 @@ Foam::vtkPV3Foam::vtkPV3Foam
|
||||
meshRegion_ = caseName.substr(beg+1, end-beg-1);
|
||||
|
||||
// some safety
|
||||
if (!meshRegion_.size())
|
||||
if (meshRegion_.empty())
|
||||
{
|
||||
meshRegion_ = polyMesh::defaultRegion;
|
||||
}
|
||||
@ -352,6 +353,14 @@ void Foam::vtkPV3Foam::updateInfo()
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
|
||||
// there are two ways to ensure we have the correct list of parts:
|
||||
// 1. remove everything and then set particular entries 'on'
|
||||
// 2. build a 'char **' list and call SetArraysWithDefault()
|
||||
//
|
||||
// Nr. 2 has the potential advantage of not touching the modification
|
||||
// time of the vtkDataArraySelection, but the qt/paraview proxy
|
||||
// layer doesn't care about that anyhow.
|
||||
|
||||
// enable 'internalMesh' on the first call
|
||||
// or preserve the enabled selections
|
||||
stringList enabledEntries;
|
||||
@ -369,11 +378,11 @@ void Foam::vtkPV3Foam::updateInfo()
|
||||
partSelection->RemoveAllArrays();
|
||||
|
||||
// Update mesh parts list - add Lagrangian at the bottom
|
||||
updateInfoInternalMesh();
|
||||
updateInfoPatches();
|
||||
updateInfoSets();
|
||||
updateInfoZones();
|
||||
updateInfoLagrangian();
|
||||
updateInfoInternalMesh(partSelection);
|
||||
updateInfoPatches(partSelection);
|
||||
updateInfoSets(partSelection);
|
||||
updateInfoZones(partSelection);
|
||||
updateInfoLagrangian(partSelection);
|
||||
|
||||
// restore the enabled selections
|
||||
setSelectedArrayEntries(partSelection, enabledEntries);
|
||||
@ -396,6 +405,8 @@ void Foam::vtkPV3Foam::updateInfo()
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
Info<< "<end> Foam::vtkPV3Foam::updateInfo" << endl;
|
||||
}
|
||||
|
||||
@ -559,12 +570,26 @@ double* Foam::vtkPV3Foam::findTimes(int& nTimeSteps)
|
||||
|
||||
nTimes = timeLst.size() - timeI;
|
||||
|
||||
// always skip "constant" time if possible
|
||||
// skip "constant" time whenever possible
|
||||
if (timeI == 0 && nTimes > 1)
|
||||
{
|
||||
timeI = 1;
|
||||
if (timeLst[timeI].name() == "constant")
|
||||
{
|
||||
++timeI;
|
||||
--nTimes;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// skip "0/" time if requested and possible
|
||||
if (nTimes > 1 && reader_->GetSkipZeroTime())
|
||||
{
|
||||
if (mag(timeLst[timeI].value()) < SMALL)
|
||||
{
|
||||
++timeI;
|
||||
--nTimes;
|
||||
}
|
||||
}
|
||||
|
||||
if (nTimes)
|
||||
{
|
||||
@ -607,10 +632,10 @@ void Foam::vtkPV3Foam::renderPatchNames(vtkRenderer* renderer, const bool show)
|
||||
wordHashSet selectedPatches = getSelected
|
||||
(
|
||||
reader_->GetPartSelection(),
|
||||
partInfoPatches_
|
||||
arrayRangePatches_
|
||||
);
|
||||
|
||||
if (!selectedPatches.size())
|
||||
if (selectedPatches.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@ -111,7 +111,7 @@ class vtkPV3Foam
|
||||
// Private classes
|
||||
|
||||
//- Bookkeeping for GUI checklists and the multi-block organization
|
||||
class partInfo
|
||||
class arrayRange
|
||||
{
|
||||
const char *name_;
|
||||
int block_;
|
||||
@ -120,11 +120,11 @@ class vtkPV3Foam
|
||||
|
||||
public:
|
||||
|
||||
partInfo(const char *name, const int blockNo=0)
|
||||
arrayRange(const char *name, const int blockNo=0)
|
||||
:
|
||||
name_(name),
|
||||
block_(blockNo),
|
||||
start_(-1),
|
||||
start_(0),
|
||||
size_(0)
|
||||
{}
|
||||
|
||||
@ -142,21 +142,25 @@ class vtkPV3Foam
|
||||
return prev;
|
||||
}
|
||||
|
||||
//- Return block name
|
||||
const char* name() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
//- Return array start index
|
||||
int start() const
|
||||
{
|
||||
return start_;
|
||||
}
|
||||
|
||||
//- Return array end index
|
||||
int end() const
|
||||
{
|
||||
return start_ + size_;
|
||||
}
|
||||
|
||||
//- Return sublist size
|
||||
int size() const
|
||||
{
|
||||
return size_;
|
||||
@ -167,16 +171,10 @@ class vtkPV3Foam
|
||||
return !size_;
|
||||
}
|
||||
|
||||
void reset()
|
||||
//- Reset the size to zero and optionally assign a new start
|
||||
void reset(const int startAt = 0)
|
||||
{
|
||||
start_ = -1;
|
||||
size_ = 0;
|
||||
}
|
||||
|
||||
//- Assign new start and reset the size
|
||||
void operator=(const int i)
|
||||
{
|
||||
start_ = i;
|
||||
start_ = startAt;
|
||||
size_ = 0;
|
||||
}
|
||||
|
||||
@ -282,15 +280,15 @@ class vtkPV3Foam
|
||||
|
||||
//- First instance and size of various mesh parts
|
||||
// used to index into partStatus_ and partDataset_
|
||||
partInfo partInfoVolume_;
|
||||
partInfo partInfoPatches_;
|
||||
partInfo partInfoLagrangian_;
|
||||
partInfo partInfoCellZones_;
|
||||
partInfo partInfoFaceZones_;
|
||||
partInfo partInfoPointZones_;
|
||||
partInfo partInfoCellSets_;
|
||||
partInfo partInfoFaceSets_;
|
||||
partInfo partInfoPointSets_;
|
||||
arrayRange arrayRangeVolume_;
|
||||
arrayRange arrayRangePatches_;
|
||||
arrayRange arrayRangeLagrangian_;
|
||||
arrayRange arrayRangeCellZones_;
|
||||
arrayRange arrayRangeFaceZones_;
|
||||
arrayRange arrayRangePointZones_;
|
||||
arrayRange arrayRangeCellSets_;
|
||||
arrayRange arrayRangeFaceSets_;
|
||||
arrayRange arrayRangePointSets_;
|
||||
|
||||
//- Decomposed cells information (mesh regions)
|
||||
// TODO: regions
|
||||
@ -313,7 +311,7 @@ class vtkPV3Foam
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
vtkDataSet* dataset,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo,
|
||||
const std::string& datasetName
|
||||
);
|
||||
@ -323,7 +321,7 @@ class vtkPV3Foam
|
||||
static vtkDataSet* GetDataSetFromBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo
|
||||
);
|
||||
|
||||
@ -332,7 +330,7 @@ class vtkPV3Foam
|
||||
static label GetNumberOfDataSets
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&
|
||||
const arrayRange&
|
||||
);
|
||||
|
||||
//- Reset data counters
|
||||
@ -344,19 +342,19 @@ class vtkPV3Foam
|
||||
void updateMeshPartsStatus();
|
||||
|
||||
//- Internal mesh info
|
||||
void updateInfoInternalMesh();
|
||||
void updateInfoInternalMesh(vtkDataArraySelection*);
|
||||
|
||||
//- Lagrangian info
|
||||
void updateInfoLagrangian();
|
||||
void updateInfoLagrangian(vtkDataArraySelection*);
|
||||
|
||||
//- Patch info
|
||||
void updateInfoPatches();
|
||||
void updateInfoPatches(vtkDataArraySelection*);
|
||||
|
||||
//- Set info
|
||||
void updateInfoSets();
|
||||
void updateInfoSets(vtkDataArraySelection*);
|
||||
|
||||
//- Zone info
|
||||
void updateInfoZones();
|
||||
void updateInfoZones(vtkDataArraySelection*);
|
||||
|
||||
//- Read zone names for zoneType from file
|
||||
wordList readZoneNames(const word& zoneType);
|
||||
@ -511,7 +509,7 @@ class vtkPV3Foam
|
||||
const GeometricField<Type, fvPatchField, volMesh>&,
|
||||
autoPtr<GeometricField<Type, pointPatchField, pointMesh> >&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange&,
|
||||
const List<polyDecomp>& decompLst
|
||||
);
|
||||
|
||||
@ -521,7 +519,7 @@ class vtkPV3Foam
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo,
|
||||
const polyDecomp&
|
||||
);
|
||||
@ -533,7 +531,7 @@ class vtkPV3Foam
|
||||
const word& name,
|
||||
const Field<Type>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo
|
||||
);
|
||||
|
||||
@ -543,7 +541,7 @@ class vtkPV3Foam
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo,
|
||||
const fvMesh&,
|
||||
const labelList& faceLabels
|
||||
@ -555,7 +553,7 @@ class vtkPV3Foam
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo,
|
||||
const fvMesh&,
|
||||
const faceSet&
|
||||
@ -576,7 +574,7 @@ class vtkPV3Foam
|
||||
(
|
||||
const IOField<Type>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo
|
||||
);
|
||||
|
||||
@ -596,7 +594,7 @@ class vtkPV3Foam
|
||||
(
|
||||
const GeometricField<Type, pointPatchField, pointMesh>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange&,
|
||||
const List<polyDecomp>&
|
||||
);
|
||||
|
||||
@ -607,7 +605,7 @@ class vtkPV3Foam
|
||||
const GeometricField<Type, pointPatchField, pointMesh>&,
|
||||
const GeometricField<Type, fvPatchField, volMesh>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo,
|
||||
const polyDecomp&
|
||||
);
|
||||
@ -619,7 +617,7 @@ class vtkPV3Foam
|
||||
const word& name,
|
||||
const Field<Type>&,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo
|
||||
);
|
||||
|
||||
@ -640,7 +638,7 @@ class vtkPV3Foam
|
||||
static wordHashSet getSelected
|
||||
(
|
||||
vtkDataArraySelection*,
|
||||
const partInfo&
|
||||
const arrayRange&
|
||||
);
|
||||
|
||||
//- Retrieve the current selections
|
||||
@ -650,7 +648,7 @@ class vtkPV3Foam
|
||||
static stringList getSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection*,
|
||||
const partInfo&
|
||||
const arrayRange&
|
||||
);
|
||||
|
||||
//- Set selection(s)
|
||||
@ -661,7 +659,7 @@ class vtkPV3Foam
|
||||
);
|
||||
|
||||
//- Get the first word from the mesh parts selection
|
||||
word getPartName(int);
|
||||
word getPartName(const int);
|
||||
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
|
||||
@ -50,11 +50,17 @@ Foam::label Foam::vtkPV3Foam::addToSelection
|
||||
{
|
||||
if (suffix.size())
|
||||
{
|
||||
select->AddArray((names[nameI] + suffix).c_str());
|
||||
select->AddArray
|
||||
(
|
||||
(names[nameI] + suffix).c_str()
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
select->AddArray(names[nameI].c_str());
|
||||
select->AddArray
|
||||
(
|
||||
(names[nameI]).c_str()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -43,7 +43,7 @@ void Foam::vtkPV3Foam::convertFaceField
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>& tf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo,
|
||||
const fvMesh& mesh,
|
||||
const labelList& faceLabels
|
||||
@ -100,7 +100,7 @@ void Foam::vtkPV3Foam::convertFaceField
|
||||
|
||||
vtkPolyData::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetCellData()
|
||||
->AddArray(cellData);
|
||||
|
||||
@ -113,7 +113,7 @@ void Foam::vtkPV3Foam::convertFaceField
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>& tf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo,
|
||||
const fvMesh& mesh,
|
||||
const faceSet& fSet
|
||||
@ -173,7 +173,7 @@ void Foam::vtkPV3Foam::convertFaceField
|
||||
|
||||
vtkPolyData::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetCellData()
|
||||
->AddArray(cellData);
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ void Foam::vtkPV3Foam::pruneObjectList
|
||||
)
|
||||
{
|
||||
// hash all the selected field names
|
||||
if (!selected.size())
|
||||
if (selected.empty())
|
||||
{
|
||||
objects.clear();
|
||||
}
|
||||
@ -79,7 +79,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
reader_->GetVolFieldSelection()
|
||||
);
|
||||
|
||||
if (!selectedFields.size())
|
||||
if (selectedFields.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -89,7 +89,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
IOobjectList objects(mesh, dbPtr_().timeName());
|
||||
pruneObjectList(objects, selectedFields);
|
||||
|
||||
if (!objects.size())
|
||||
if (objects.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -164,7 +164,7 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
reader_->GetPointFieldSelection()
|
||||
);
|
||||
|
||||
if (!selectedFields.size())
|
||||
if (selectedFields.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -174,7 +174,7 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
IOobjectList objects(mesh, dbPtr_().timeName());
|
||||
pruneObjectList(objects, selectedFields);
|
||||
|
||||
if (!objects.size())
|
||||
if (objects.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -229,7 +229,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
|
||||
vtkMultiBlockDataSet* output
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoLagrangian_;
|
||||
arrayRange& range = arrayRangeLagrangian_;
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
wordHashSet selectedFields = getSelected
|
||||
@ -237,7 +237,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
|
||||
reader_->GetLagrangianFieldSelection()
|
||||
);
|
||||
|
||||
if (!selectedFields.size())
|
||||
if (selectedFields.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -248,7 +248,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
|
||||
printMemory();
|
||||
}
|
||||
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word cloudName = getPartName(partId);
|
||||
const label datasetNo = partDataset_[partId];
|
||||
@ -270,7 +270,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
|
||||
);
|
||||
pruneObjectList(objects, selectedFields);
|
||||
|
||||
if (!objects.size())
|
||||
if (objects.empty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
|
||||
const label datasetNo
|
||||
)
|
||||
{
|
||||
const partInfo& selector = partInfoLagrangian_;
|
||||
const arrayRange& range = arrayRangeLagrangian_;
|
||||
|
||||
forAllConstIter(IOobjectList, objects, iter)
|
||||
{
|
||||
@ -50,7 +50,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
|
||||
if (iter()->headerClassName() == IOField<Type>::typeName)
|
||||
{
|
||||
IOField<Type> tf(*iter());
|
||||
convertLagrangianField(tf, output, selector, datasetNo);
|
||||
convertLagrangianField(tf, output, range, datasetNo);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -61,7 +61,7 @@ void Foam::vtkPV3Foam::convertLagrangianField
|
||||
(
|
||||
const IOField<Type>& tf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo
|
||||
)
|
||||
{
|
||||
@ -97,7 +97,7 @@ void Foam::vtkPV3Foam::convertLagrangianField
|
||||
|
||||
vtkPolyData::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetPointData()
|
||||
->AddArray(pointData);
|
||||
|
||||
|
||||
@ -49,13 +49,13 @@ void Foam::vtkPV3Foam::convertMeshVolume
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoVolume_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeVolume_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
// resize for decomposed polyhedra
|
||||
regionPolyDecomp_.setSize(selector.size());
|
||||
regionPolyDecomp_.setSize(range.size());
|
||||
|
||||
if (debug)
|
||||
{
|
||||
@ -65,7 +65,7 @@ void Foam::vtkPV3Foam::convertMeshVolume
|
||||
|
||||
// Convert the internalMesh
|
||||
// this looks like more than one part, but it isn't
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word partName = "internalMesh";
|
||||
|
||||
@ -82,7 +82,7 @@ void Foam::vtkPV3Foam::convertMeshVolume
|
||||
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, partName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -109,8 +109,8 @@ void Foam::vtkPV3Foam::convertMeshLagrangian
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoLagrangian_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeLagrangian_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
@ -120,7 +120,7 @@ void Foam::vtkPV3Foam::convertMeshLagrangian
|
||||
printMemory();
|
||||
}
|
||||
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word cloudName = getPartName(partId);
|
||||
|
||||
@ -133,7 +133,7 @@ void Foam::vtkPV3Foam::convertMeshLagrangian
|
||||
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, cloudName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, cloudName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -160,8 +160,8 @@ void Foam::vtkPV3Foam::convertMeshPatches
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoPatches_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangePatches_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
const polyBoundaryMesh& patches = mesh.boundaryMesh();
|
||||
@ -172,7 +172,7 @@ void Foam::vtkPV3Foam::convertMeshPatches
|
||||
printMemory();
|
||||
}
|
||||
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word patchName = getPartName(partId);
|
||||
const label patchId = patches.findPatchID(patchName);
|
||||
@ -192,7 +192,7 @@ void Foam::vtkPV3Foam::convertMeshPatches
|
||||
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, patchName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, patchName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -219,15 +219,15 @@ void Foam::vtkPV3Foam::convertMeshCellZones
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoCellZones_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeCellZones_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
// resize for decomposed polyhedra
|
||||
zonePolyDecomp_.setSize(selector.size());
|
||||
zonePolyDecomp_.setSize(range.size());
|
||||
|
||||
if (!selector.size())
|
||||
if (range.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -239,7 +239,7 @@ void Foam::vtkPV3Foam::convertMeshCellZones
|
||||
}
|
||||
|
||||
const cellZoneMesh& zMesh = mesh.cellZones();
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word zoneName = getPartName(partId);
|
||||
const label zoneId = zMesh.findZoneID(zoneName);
|
||||
@ -281,7 +281,7 @@ void Foam::vtkPV3Foam::convertMeshCellZones
|
||||
// copy pointMap as well, otherwise pointFields fail
|
||||
zonePolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
|
||||
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -308,13 +308,13 @@ void Foam::vtkPV3Foam::convertMeshCellSets
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoCellSets_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeCellSets_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
// resize for decomposed polyhedra
|
||||
csetPolyDecomp_.setSize(selector.size());
|
||||
csetPolyDecomp_.setSize(range.size());
|
||||
|
||||
if (debug)
|
||||
{
|
||||
@ -322,7 +322,7 @@ void Foam::vtkPV3Foam::convertMeshCellSets
|
||||
printMemory();
|
||||
}
|
||||
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word partName = getPartName(partId);
|
||||
|
||||
@ -363,7 +363,7 @@ void Foam::vtkPV3Foam::convertMeshCellSets
|
||||
// copy pointMap as well, otherwise pointFields fail
|
||||
csetPolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
|
||||
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, partName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -390,12 +390,12 @@ void Foam::vtkPV3Foam::convertMeshFaceZones
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoFaceZones_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeFaceZones_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
if (!selector.size())
|
||||
if (range.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -407,7 +407,7 @@ void Foam::vtkPV3Foam::convertMeshFaceZones
|
||||
}
|
||||
|
||||
const faceZoneMesh& zMesh = mesh.faceZones();
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word zoneName = getPartName(partId);
|
||||
const label zoneId = zMesh.findZoneID(zoneName);
|
||||
@ -426,7 +426,7 @@ void Foam::vtkPV3Foam::convertMeshFaceZones
|
||||
vtkPolyData* vtkmesh = faceZoneVTKMesh(mesh, zMesh[zoneId]);
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -453,8 +453,8 @@ void Foam::vtkPV3Foam::convertMeshFaceSets
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoFaceSets_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeFaceSets_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
@ -464,7 +464,7 @@ void Foam::vtkPV3Foam::convertMeshFaceSets
|
||||
printMemory();
|
||||
}
|
||||
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const word partName = getPartName(partId);
|
||||
|
||||
@ -483,7 +483,7 @@ void Foam::vtkPV3Foam::convertMeshFaceSets
|
||||
vtkPolyData* vtkmesh = faceSetVTKMesh(mesh, fSet);
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, partName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -510,8 +510,8 @@ void Foam::vtkPV3Foam::convertMeshPointZones
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoPointZones_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangePointZones_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
@ -521,10 +521,10 @@ void Foam::vtkPV3Foam::convertMeshPointZones
|
||||
printMemory();
|
||||
}
|
||||
|
||||
if (selector.size())
|
||||
if (range.size())
|
||||
{
|
||||
const pointZoneMesh& zMesh = mesh.pointZones();
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
word zoneName = getPartName(partId);
|
||||
label zoneId = zMesh.findZoneID(zoneName);
|
||||
@ -537,7 +537,7 @@ void Foam::vtkPV3Foam::convertMeshPointZones
|
||||
vtkPolyData* vtkmesh = pointZoneVTKMesh(mesh, zMesh[zoneId]);
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -566,8 +566,8 @@ void Foam::vtkPV3Foam::convertMeshPointSets
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoPointSets_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangePointSets_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
const fvMesh& mesh = *meshPtr_;
|
||||
|
||||
@ -577,7 +577,7 @@ void Foam::vtkPV3Foam::convertMeshPointSets
|
||||
printMemory();
|
||||
}
|
||||
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
word partName = getPartName(partId);
|
||||
|
||||
@ -596,7 +596,7 @@ void Foam::vtkPV3Foam::convertMeshPointSets
|
||||
vtkPolyData* vtkmesh = pointSetVTKMesh(mesh, pSet);
|
||||
if (vtkmesh)
|
||||
{
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
||||
AddToBlock(output, vtkmesh, range, datasetNo, partName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
@ -616,4 +616,5 @@ void Foam::vtkPV3Foam::convertMeshPointSets
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -45,7 +45,7 @@ void Foam::vtkPV3Foam::convertPatchField
|
||||
const word& name,
|
||||
const Field<Type>& ptf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo
|
||||
)
|
||||
{
|
||||
@ -70,7 +70,7 @@ void Foam::vtkPV3Foam::convertPatchField
|
||||
|
||||
vtkPolyData::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetCellData()
|
||||
->AddArray(cellData);
|
||||
|
||||
@ -85,7 +85,7 @@ void Foam::vtkPV3Foam::convertPatchPointField
|
||||
const word& name,
|
||||
const Field<Type>& pptf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo
|
||||
)
|
||||
{
|
||||
@ -111,7 +111,7 @@ void Foam::vtkPV3Foam::convertPatchPointField
|
||||
|
||||
vtkPolyData::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetPointData()
|
||||
->AddArray(pointData);
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
(
|
||||
ptf,
|
||||
output,
|
||||
partInfoVolume_,
|
||||
arrayRangeVolume_,
|
||||
regionPolyDecomp_
|
||||
);
|
||||
|
||||
@ -86,7 +86,7 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
(
|
||||
ptf,
|
||||
output,
|
||||
partInfoCellZones_,
|
||||
arrayRangeCellZones_,
|
||||
zonePolyDecomp_
|
||||
);
|
||||
|
||||
@ -95,7 +95,7 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
(
|
||||
ptf,
|
||||
output,
|
||||
partInfoCellSets_,
|
||||
arrayRangeCellSets_,
|
||||
csetPolyDecomp_
|
||||
);
|
||||
|
||||
@ -105,8 +105,8 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
//
|
||||
for
|
||||
(
|
||||
int partId = partInfoPatches_.start();
|
||||
partId < partInfoPatches_.end();
|
||||
int partId = arrayRangePatches_.start();
|
||||
partId < arrayRangePatches_.end();
|
||||
++partId
|
||||
)
|
||||
{
|
||||
@ -124,7 +124,7 @@ void Foam::vtkPV3Foam::convertPointFields
|
||||
fieldName,
|
||||
ptf.boundaryField()[patchId].patchInternalField()(),
|
||||
output,
|
||||
partInfoPatches_,
|
||||
arrayRangePatches_,
|
||||
datasetNo
|
||||
);
|
||||
}
|
||||
@ -137,11 +137,11 @@ void Foam::vtkPV3Foam::convertPointFieldBlock
|
||||
(
|
||||
const GeometricField<Type, pointPatchField, pointMesh>& ptf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const List<polyDecomp>& decompLst
|
||||
)
|
||||
{
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const label datasetNo = partDataset_[partId];
|
||||
|
||||
@ -152,7 +152,7 @@ void Foam::vtkPV3Foam::convertPointFieldBlock
|
||||
ptf,
|
||||
GeometricField<Type, fvPatchField, volMesh>::null(),
|
||||
output,
|
||||
selector,
|
||||
range,
|
||||
datasetNo,
|
||||
decompLst[datasetNo]
|
||||
);
|
||||
@ -167,7 +167,7 @@ void Foam::vtkPV3Foam::convertPointField
|
||||
const GeometricField<Type, pointPatchField, pointMesh>& ptf,
|
||||
const GeometricField<Type, fvPatchField, volMesh>& tf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo,
|
||||
const polyDecomp& decomp
|
||||
)
|
||||
@ -260,7 +260,7 @@ void Foam::vtkPV3Foam::convertPointField
|
||||
|
||||
vtkUnstructuredGrid::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetPointData()
|
||||
->AddArray(pointData);
|
||||
|
||||
|
||||
@ -118,32 +118,39 @@ Foam::wordList Foam::vtkPV3Foam::readZoneNames(const word& zoneType)
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3Foam::updateInfoInternalMesh()
|
||||
void Foam::vtkPV3Foam::updateInfoInternalMesh
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3Foam::updateInfoInternalMesh" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
|
||||
// Determine mesh parts (internalMesh, patches...)
|
||||
//- Add internal mesh as first entry
|
||||
partInfoVolume_ = partSelection->GetNumberOfArrays();
|
||||
partSelection->AddArray("internalMesh");
|
||||
partInfoVolume_ += 1;
|
||||
arrayRangeVolume_.reset( arraySelection->GetNumberOfArrays() );
|
||||
arraySelection->AddArray
|
||||
(
|
||||
"internalMesh"
|
||||
);
|
||||
arrayRangeVolume_ += 1;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3Foam::updateInfoInternalMesh" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3Foam::updateInfoLagrangian()
|
||||
void Foam::vtkPV3Foam::updateInfoLagrangian
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
@ -166,34 +173,35 @@ void Foam::vtkPV3Foam::updateInfoLagrangian()
|
||||
readDir(dbPtr_->timePath()/lagrangianPrefix, fileName::DIRECTORY)
|
||||
);
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
partInfoLagrangian_ = partSelection->GetNumberOfArrays();
|
||||
arrayRangeLagrangian_.reset( arraySelection->GetNumberOfArrays() );
|
||||
|
||||
int nClouds = 0;
|
||||
forAll(cloudDirs, cloudI)
|
||||
{
|
||||
// Add cloud to GUI list
|
||||
partSelection->AddArray
|
||||
arraySelection->AddArray
|
||||
(
|
||||
(cloudDirs[cloudI] + " - lagrangian").c_str()
|
||||
);
|
||||
|
||||
++nClouds;
|
||||
}
|
||||
|
||||
partInfoLagrangian_ += nClouds;
|
||||
arrayRangeLagrangian_ += nClouds;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3Foam::updateInfoLagrangian" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3Foam::updateInfoPatches()
|
||||
void Foam::vtkPV3Foam::updateInfoPatches
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
@ -201,8 +209,7 @@ void Foam::vtkPV3Foam::updateInfoPatches()
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
partInfoPatches_ = partSelection->GetNumberOfArrays();
|
||||
arrayRangePatches_.reset( arraySelection->GetNumberOfArrays() );
|
||||
|
||||
int nPatches = 0;
|
||||
if (meshPtr_)
|
||||
@ -215,7 +222,7 @@ void Foam::vtkPV3Foam::updateInfoPatches()
|
||||
if (pp.size())
|
||||
{
|
||||
// Add patch to GUI list
|
||||
partSelection->AddArray
|
||||
arraySelection->AddArray
|
||||
(
|
||||
(pp.name() + " - patch").c_str()
|
||||
);
|
||||
@ -260,7 +267,7 @@ void Foam::vtkPV3Foam::updateInfoPatches()
|
||||
// Valid patch if nFace > 0 - add patch to GUI list
|
||||
if (nFaces)
|
||||
{
|
||||
partSelection->AddArray
|
||||
arraySelection->AddArray
|
||||
(
|
||||
(patchEntries[entryI].keyword() + " - patch").c_str()
|
||||
);
|
||||
@ -270,19 +277,22 @@ void Foam::vtkPV3Foam::updateInfoPatches()
|
||||
}
|
||||
}
|
||||
}
|
||||
partInfoPatches_ += nPatches;
|
||||
arrayRangePatches_ += nPatches;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3Foam::updateInfoPatches" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3Foam::updateInfoZones()
|
||||
void Foam::vtkPV3Foam::updateInfoZones
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (!reader_->GetIncludeZones())
|
||||
{
|
||||
@ -295,7 +305,6 @@ void Foam::vtkPV3Foam::updateInfoZones()
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
wordList namesLst;
|
||||
|
||||
//
|
||||
@ -310,12 +319,15 @@ void Foam::vtkPV3Foam::updateInfoZones()
|
||||
namesLst = readZoneNames("cellZones");
|
||||
}
|
||||
|
||||
partInfoCellZones_ = partSelection->GetNumberOfArrays();
|
||||
arrayRangeCellZones_.reset( arraySelection->GetNumberOfArrays() );
|
||||
forAll(namesLst, elemI)
|
||||
{
|
||||
partSelection->AddArray((namesLst[elemI] + " - cellZone").c_str());
|
||||
arraySelection->AddArray
|
||||
(
|
||||
(namesLst[elemI] + " - cellZone").c_str()
|
||||
);
|
||||
}
|
||||
partInfoCellZones_ += namesLst.size();
|
||||
arrayRangeCellZones_ += namesLst.size();
|
||||
|
||||
|
||||
//
|
||||
@ -330,15 +342,15 @@ void Foam::vtkPV3Foam::updateInfoZones()
|
||||
namesLst = readZoneNames("faceZones");
|
||||
}
|
||||
|
||||
partInfoFaceZones_ = partSelection->GetNumberOfArrays();
|
||||
arrayRangeFaceZones_.reset( arraySelection->GetNumberOfArrays() );
|
||||
forAll(namesLst, elemI)
|
||||
{
|
||||
partSelection->AddArray
|
||||
arraySelection->AddArray
|
||||
(
|
||||
(namesLst[elemI] + " - faceZone").c_str()
|
||||
);
|
||||
}
|
||||
partInfoFaceZones_ += namesLst.size();
|
||||
arrayRangeFaceZones_ += namesLst.size();
|
||||
|
||||
|
||||
//
|
||||
@ -353,28 +365,30 @@ void Foam::vtkPV3Foam::updateInfoZones()
|
||||
namesLst = readZoneNames("pointZones");
|
||||
}
|
||||
|
||||
partInfoPointZones_ = partSelection->GetNumberOfArrays();
|
||||
arrayRangePointZones_.reset( arraySelection->GetNumberOfArrays() );
|
||||
forAll(namesLst, elemI)
|
||||
{
|
||||
partSelection->AddArray
|
||||
arraySelection->AddArray
|
||||
(
|
||||
(namesLst[elemI] + " - pointZone").c_str()
|
||||
);
|
||||
}
|
||||
partInfoPointZones_ += namesLst.size();
|
||||
|
||||
arrayRangePointZones_ += namesLst.size();
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3Foam::updateInfoZones" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3Foam::updateInfoSets()
|
||||
void Foam::vtkPV3Foam::updateInfoSets
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (!reader_->GetIncludeSets())
|
||||
{
|
||||
@ -386,8 +400,6 @@ void Foam::vtkPV3Foam::updateInfoSets()
|
||||
Info<< "<beg> Foam::vtkPV3Foam::updateInfoSets" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
|
||||
// Add names of sets
|
||||
IOobjectList objects
|
||||
(
|
||||
@ -397,26 +409,26 @@ void Foam::vtkPV3Foam::updateInfoSets()
|
||||
);
|
||||
|
||||
|
||||
partInfoCellSets_ = partSelection->GetNumberOfArrays();
|
||||
partInfoCellSets_ += addToSelection<cellSet>
|
||||
arrayRangeCellSets_.reset( arraySelection->GetNumberOfArrays() );
|
||||
arrayRangeCellSets_ += addToSelection<cellSet>
|
||||
(
|
||||
partSelection,
|
||||
arraySelection,
|
||||
objects,
|
||||
" - cellSet"
|
||||
);
|
||||
|
||||
partInfoFaceSets_ = partSelection->GetNumberOfArrays();
|
||||
partInfoFaceSets_ += addToSelection<faceSet>
|
||||
arrayRangeFaceSets_.reset( arraySelection->GetNumberOfArrays() );
|
||||
arrayRangeFaceSets_ += addToSelection<faceSet>
|
||||
(
|
||||
partSelection,
|
||||
arraySelection,
|
||||
objects,
|
||||
" - faceSet"
|
||||
);
|
||||
|
||||
partInfoPointSets_ = partSelection->GetNumberOfArrays();
|
||||
partInfoPointSets_ += addToSelection<pointSet>
|
||||
arrayRangePointSets_.reset( arraySelection->GetNumberOfArrays() );
|
||||
arrayRangePointSets_ += addToSelection<pointSet>
|
||||
(
|
||||
partSelection,
|
||||
arraySelection,
|
||||
objects,
|
||||
" - pointSet"
|
||||
);
|
||||
@ -424,7 +436,7 @@ void Foam::vtkPV3Foam::updateInfoSets()
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3Foam::updateInfoSets" << endl;
|
||||
}
|
||||
@ -450,14 +462,13 @@ void Foam::vtkPV3Foam::updateInfoLagrangianFields()
|
||||
// have to decide if the second set of fields get mixed in
|
||||
// or dealt with separately
|
||||
|
||||
const partInfo& selector = partInfoLagrangian_;
|
||||
int partId = selector.start();
|
||||
|
||||
if (!selector.size() || partId < 0)
|
||||
const arrayRange& range = arrayRangeLagrangian_;
|
||||
if (range.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int partId = range.start();
|
||||
word cloudName = getPartName(partId);
|
||||
|
||||
// use the db directly since this might be called without a mesh,
|
||||
|
||||
@ -76,12 +76,12 @@ void Foam::vtkPV3Foam::AddToBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
vtkDataSet* dataset,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo,
|
||||
const std::string& datasetName
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
const int blockNo = range.block();
|
||||
|
||||
vtkDataObject* blockDO = output->GetBlock(blockNo);
|
||||
vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
|
||||
@ -117,7 +117,7 @@ void Foam::vtkPV3Foam::AddToBlock
|
||||
output->GetMetaData(blockNo)->Set
|
||||
(
|
||||
vtkCompositeDataSet::NAME(),
|
||||
selector.name()
|
||||
range.name()
|
||||
);
|
||||
}
|
||||
|
||||
@ -135,11 +135,11 @@ void Foam::vtkPV3Foam::AddToBlock
|
||||
vtkDataSet* Foam::vtkPV3Foam::GetDataSetFromBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
const int blockNo = range.block();
|
||||
|
||||
vtkDataObject* blockDO = output->GetBlock(blockNo);
|
||||
vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
|
||||
@ -157,10 +157,10 @@ vtkDataSet* Foam::vtkPV3Foam::GetDataSetFromBlock
|
||||
Foam::label Foam::vtkPV3Foam::GetNumberOfDataSets
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector
|
||||
const arrayRange& range
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
const int blockNo = range.block();
|
||||
|
||||
vtkDataObject* blockDO = output->GetBlock(blockNo);
|
||||
vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
|
||||
@ -173,7 +173,7 @@ Foam::label Foam::vtkPV3Foam::GetNumberOfDataSets
|
||||
}
|
||||
|
||||
|
||||
Foam::word Foam::vtkPV3Foam::getPartName(int partId)
|
||||
Foam::word Foam::vtkPV3Foam::getPartName(const int partId)
|
||||
{
|
||||
return getFirstWord(reader_->GetPartArrayName(partId));
|
||||
}
|
||||
@ -202,13 +202,13 @@ Foam::wordHashSet Foam::vtkPV3Foam::getSelected
|
||||
Foam::wordHashSet Foam::vtkPV3Foam::getSelected
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const partInfo& selector
|
||||
const arrayRange& range
|
||||
)
|
||||
{
|
||||
int nElem = select->GetNumberOfArrays();
|
||||
wordHashSet selections(2*nElem);
|
||||
|
||||
for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
|
||||
for (int elemI = range.start(); elemI < range.end(); ++elemI)
|
||||
{
|
||||
if (select->GetArraySetting(elemI))
|
||||
{
|
||||
@ -262,13 +262,13 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries
|
||||
Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const partInfo& selector
|
||||
const arrayRange& range
|
||||
)
|
||||
{
|
||||
stringList selections(selector.size());
|
||||
stringList selections(range.size());
|
||||
label nElem = 0;
|
||||
|
||||
for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
|
||||
for (int elemI = range.start(); elemI < range.end(); ++elemI)
|
||||
{
|
||||
if (select->GetArraySetting(elemI))
|
||||
{
|
||||
@ -281,7 +281,7 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries
|
||||
if (debug)
|
||||
{
|
||||
Info<< "available(";
|
||||
for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
|
||||
for (int elemI = range.start(); elemI < range.end(); ++elemI)
|
||||
{
|
||||
Info<< " \"" << select->GetArrayName(elemI) << "\"";
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
tf,
|
||||
ptfPtr,
|
||||
output,
|
||||
partInfoVolume_,
|
||||
arrayRangeVolume_,
|
||||
regionPolyDecomp_
|
||||
);
|
||||
|
||||
@ -91,7 +91,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
tf,
|
||||
ptfPtr,
|
||||
output,
|
||||
partInfoCellZones_,
|
||||
arrayRangeCellZones_,
|
||||
zonePolyDecomp_
|
||||
);
|
||||
|
||||
@ -101,7 +101,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
tf,
|
||||
ptfPtr,
|
||||
output,
|
||||
partInfoCellSets_,
|
||||
arrayRangeCellSets_,
|
||||
csetPolyDecomp_
|
||||
);
|
||||
|
||||
@ -117,8 +117,8 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
|
||||
for
|
||||
(
|
||||
int partId = partInfoPatches_.start();
|
||||
partId < partInfoPatches_.end();
|
||||
int partId = arrayRangePatches_.start();
|
||||
partId < arrayRangePatches_.end();
|
||||
++partId
|
||||
)
|
||||
{
|
||||
@ -155,7 +155,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
tf.name(),
|
||||
tpptf(),
|
||||
output,
|
||||
partInfoPatches_,
|
||||
arrayRangePatches_,
|
||||
datasetNo
|
||||
);
|
||||
|
||||
@ -164,7 +164,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
pointFldName,
|
||||
ppInterpList[patchId].faceToPointInterpolate(tpptf)(),
|
||||
output,
|
||||
partInfoPatches_,
|
||||
arrayRangePatches_,
|
||||
datasetNo
|
||||
);
|
||||
}
|
||||
@ -175,7 +175,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
tf.name(),
|
||||
ptf,
|
||||
output,
|
||||
partInfoPatches_,
|
||||
arrayRangePatches_,
|
||||
datasetNo
|
||||
);
|
||||
|
||||
@ -184,7 +184,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
pointFldName,
|
||||
ppInterpList[patchId].faceToPointInterpolate(ptf)(),
|
||||
output,
|
||||
partInfoPatches_,
|
||||
arrayRangePatches_,
|
||||
datasetNo
|
||||
);
|
||||
}
|
||||
@ -195,8 +195,8 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
//
|
||||
for
|
||||
(
|
||||
int partId = partInfoFaceZones_.start();
|
||||
partId < partInfoFaceZones_.end();
|
||||
int partId = arrayRangeFaceZones_.start();
|
||||
partId < arrayRangeFaceZones_.end();
|
||||
++partId
|
||||
)
|
||||
{
|
||||
@ -220,7 +220,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
(
|
||||
tf,
|
||||
output,
|
||||
partInfoFaceZones_,
|
||||
arrayRangeFaceZones_,
|
||||
datasetNo,
|
||||
mesh,
|
||||
zMesh[zoneId]
|
||||
@ -234,8 +234,8 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
//
|
||||
for
|
||||
(
|
||||
int partId = partInfoFaceSets_.start();
|
||||
partId < partInfoFaceSets_.end();
|
||||
int partId = arrayRangeFaceSets_.start();
|
||||
partId < arrayRangeFaceSets_.end();
|
||||
++partId
|
||||
)
|
||||
{
|
||||
@ -253,7 +253,7 @@ void Foam::vtkPV3Foam::convertVolFields
|
||||
(
|
||||
tf,
|
||||
output,
|
||||
partInfoFaceSets_,
|
||||
arrayRangeFaceSets_,
|
||||
datasetNo,
|
||||
mesh,
|
||||
fSet
|
||||
@ -271,11 +271,11 @@ void Foam::vtkPV3Foam::convertVolFieldBlock
|
||||
const GeometricField<Type, fvPatchField, volMesh>& tf,
|
||||
autoPtr<GeometricField<Type, pointPatchField, pointMesh> >& ptfPtr,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const List<polyDecomp>& decompLst
|
||||
)
|
||||
{
|
||||
for (int partId = selector.start(); partId < selector.end(); ++partId)
|
||||
for (int partId = range.start(); partId < range.end(); ++partId)
|
||||
{
|
||||
const label datasetNo = partDataset_[partId];
|
||||
|
||||
@ -285,7 +285,7 @@ void Foam::vtkPV3Foam::convertVolFieldBlock
|
||||
(
|
||||
tf,
|
||||
output,
|
||||
selector,
|
||||
range,
|
||||
datasetNo,
|
||||
decompLst[datasetNo]
|
||||
);
|
||||
@ -309,7 +309,7 @@ void Foam::vtkPV3Foam::convertVolFieldBlock
|
||||
ptfPtr(),
|
||||
tf,
|
||||
output,
|
||||
selector,
|
||||
range,
|
||||
datasetNo,
|
||||
decompLst[datasetNo]
|
||||
);
|
||||
@ -323,7 +323,7 @@ void Foam::vtkPV3Foam::convertVolField
|
||||
(
|
||||
const GeometricField<Type, fvPatchField, volMesh>& tf,
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo,
|
||||
const polyDecomp& decompInfo
|
||||
)
|
||||
@ -359,7 +359,7 @@ void Foam::vtkPV3Foam::convertVolField
|
||||
|
||||
vtkUnstructuredGrid::SafeDownCast
|
||||
(
|
||||
GetDataSetFromBlock(output, selector, datasetNo)
|
||||
GetDataSetFromBlock(output, range, datasetNo)
|
||||
) ->GetCellData()
|
||||
->AddArray(celldata);
|
||||
|
||||
|
||||
@ -43,34 +43,40 @@
|
||||
</Documentation>
|
||||
</IntVectorProperty>
|
||||
|
||||
<!-- Selections -->
|
||||
|
||||
<!-- Available Parts (blocks) array -->
|
||||
<!--
|
||||
| Selections
|
||||
-->
|
||||
|
||||
<!-- Available Blocks array -->
|
||||
<StringVectorProperty
|
||||
name="PartArrayInfo"
|
||||
name="BlockArrayStatus"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="Part"/>
|
||||
<ArraySelectionInformationHelper attribute_name="Block"/>
|
||||
</StringVectorProperty>
|
||||
<StringVectorProperty
|
||||
name="PartStatus"
|
||||
name="BlockStatus"
|
||||
label="Blocks"
|
||||
command="SetPartArrayStatus"
|
||||
command="SetBlockArrayStatus"
|
||||
number_of_elements="0"
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="PartArrayInfo"
|
||||
information_property="BlockArrayStatus"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="PartArrayInfo" function="ArrayList"/>
|
||||
<Property name="BlockArrayStatus" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
<Documentation>
|
||||
This property contains a list of the blocks
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<!-- Available Parts (blocks) array -->
|
||||
<!-- Available CurvedEdges array -->
|
||||
<StringVectorProperty
|
||||
name="CurvedEdgesArrayInfo"
|
||||
name="CurvedEdgesArrayStatus"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="CurvedEdges"/>
|
||||
</StringVectorProperty>
|
||||
@ -82,13 +88,16 @@
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="CurvedEdgesArrayInfo"
|
||||
information_property="CurvedEdgesArrayStatus"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="CurvedEdgesArrayInfo" function="ArrayList"/>
|
||||
<Property name="CurvedEdgesArrayStatus" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
<Documentation>
|
||||
This property contains a list of the curved edges
|
||||
</Documentation>
|
||||
</StringVectorProperty>
|
||||
|
||||
<Hints>
|
||||
|
||||
@ -32,6 +32,7 @@ License
|
||||
#include <QLabel>
|
||||
#include <QLayout>
|
||||
#include <QString>
|
||||
#include <QPushButton>
|
||||
#include <QtDebug>
|
||||
|
||||
// Paraview <-> QT UI
|
||||
@ -56,17 +57,26 @@ pqPV3blockMeshReaderPanel::pqPV3blockMeshReaderPanel
|
||||
QWidget *p
|
||||
)
|
||||
:
|
||||
pqAutoGeneratedObjectPanel(proxy, p),
|
||||
sourceProxy_(vtkSMSourceProxy::SafeDownCast(this->proxy()))
|
||||
pqAutoGeneratedObjectPanel(proxy, p)
|
||||
{
|
||||
// create first sublayout (at top of the panel)
|
||||
QGridLayout *sect1 = new QGridLayout();
|
||||
this->PanelLayout->addLayout(sect1, 0, 0, 1, -1);
|
||||
|
||||
QGridLayout *form = new QGridLayout();
|
||||
this->PanelLayout->addLayout(form, 0, 0, 1, -1);
|
||||
|
||||
vtkSMProperty* prop = 0;
|
||||
// checkbox for showing point numbers
|
||||
if ((prop = this->proxy()->GetProperty("UiShowPointNumbers")) != 0)
|
||||
{
|
||||
prop->SetImmediateUpdate(true);
|
||||
|
||||
ShowPointNumbers_ = new QCheckBox("Show Point Numbers");
|
||||
ShowPointNumbers_->setChecked(true);
|
||||
ShowPointNumbers_->setToolTip("Show point numbers in render window.");
|
||||
ShowPointNumbers_->setChecked
|
||||
(
|
||||
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
|
||||
);
|
||||
|
||||
form->addWidget(ShowPointNumbers_);
|
||||
|
||||
connect
|
||||
(
|
||||
@ -75,15 +85,7 @@ pqPV3blockMeshReaderPanel::pqPV3blockMeshReaderPanel
|
||||
this,
|
||||
SLOT(ShowPointNumbersToggled())
|
||||
);
|
||||
|
||||
sect1->addWidget(ShowPointNumbers_);
|
||||
|
||||
|
||||
// immediate update on the Server Manager side
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
sourceProxy_->GetProperty("UiShowPointNumbers")
|
||||
)->SetImmediateUpdate(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -93,7 +95,7 @@ void pqPV3blockMeshReaderPanel::ShowPointNumbersToggled()
|
||||
{
|
||||
vtkSMIntVectorProperty::SafeDownCast
|
||||
(
|
||||
sourceProxy_->GetProperty("UiShowPointNumbers")
|
||||
this->proxy()->GetProperty("UiShowPointNumbers")
|
||||
)->SetElement(0, ShowPointNumbers_->isChecked());
|
||||
|
||||
// update the active view
|
||||
|
||||
@ -62,9 +62,6 @@ class pqPV3blockMeshReaderPanel
|
||||
Q_OBJECT;
|
||||
typedef pqAutoGeneratedObjectPanel Superclass;
|
||||
|
||||
//- Server Manager Source Proxy
|
||||
vtkSMSourceProxy* sourceProxy_;
|
||||
|
||||
//- Show Point Numbers checkbox
|
||||
QCheckBox* ShowPointNumbers_;
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -64,7 +64,7 @@ vtkPV3blockMeshReader::vtkPV3blockMeshReader()
|
||||
ShowPointNumbers = 1;
|
||||
UpdateGUI = 0;
|
||||
|
||||
PartSelection = vtkDataArraySelection::New();
|
||||
BlockSelection = vtkDataArraySelection::New();
|
||||
CurvedEdgesSelection = vtkDataArraySelection::New();
|
||||
|
||||
// Setup the selection callback to modify this object when an array
|
||||
@ -77,7 +77,7 @@ vtkPV3blockMeshReader::vtkPV3blockMeshReader()
|
||||
SelectionObserver->SetClientData(this);
|
||||
|
||||
|
||||
PartSelection->AddObserver
|
||||
BlockSelection->AddObserver
|
||||
(
|
||||
vtkCommand::ModifiedEvent,
|
||||
this->SelectionObserver
|
||||
@ -109,11 +109,11 @@ vtkPV3blockMeshReader::~vtkPV3blockMeshReader()
|
||||
delete [] FileName;
|
||||
}
|
||||
|
||||
PartSelection->RemoveObserver(this->SelectionObserver);
|
||||
BlockSelection->RemoveObserver(this->SelectionObserver);
|
||||
CurvedEdgesSelection->RemoveObserver(this->SelectionObserver);
|
||||
|
||||
SelectionObserver->Delete();
|
||||
PartSelection->Delete();
|
||||
BlockSelection->Delete();
|
||||
}
|
||||
|
||||
|
||||
@ -292,50 +292,50 @@ void vtkPV3blockMeshReader::PrintSelf(ostream& os, vtkIndent indent)
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Parts selection list control
|
||||
// Block selection list control
|
||||
|
||||
vtkDataArraySelection* vtkPV3blockMeshReader::GetPartSelection()
|
||||
vtkDataArraySelection* vtkPV3blockMeshReader::GetBlockSelection()
|
||||
{
|
||||
vtkDebugMacro(<<"GetPartSelection");
|
||||
return PartSelection;
|
||||
vtkDebugMacro(<<"GetBlockSelection");
|
||||
return BlockSelection;
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3blockMeshReader::GetNumberOfPartArrays()
|
||||
int vtkPV3blockMeshReader::GetNumberOfBlockArrays()
|
||||
{
|
||||
vtkDebugMacro(<<"GetNumberOfPartArrays");
|
||||
return PartSelection->GetNumberOfArrays();
|
||||
vtkDebugMacro(<<"GetNumberOfBlockArrays");
|
||||
return BlockSelection->GetNumberOfArrays();
|
||||
}
|
||||
|
||||
|
||||
const char* vtkPV3blockMeshReader::GetPartArrayName(int index)
|
||||
const char* vtkPV3blockMeshReader::GetBlockArrayName(int index)
|
||||
{
|
||||
vtkDebugMacro(<<"GetPartArrayName");
|
||||
return PartSelection->GetArrayName(index);
|
||||
vtkDebugMacro(<<"GetBlockArrayName");
|
||||
return BlockSelection->GetArrayName(index);
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3blockMeshReader::GetPartArrayStatus(const char* name)
|
||||
int vtkPV3blockMeshReader::GetBlockArrayStatus(const char* name)
|
||||
{
|
||||
vtkDebugMacro(<<"GetPartArrayStatus");
|
||||
return PartSelection->ArrayIsEnabled(name);
|
||||
vtkDebugMacro(<<"GetBlockArrayStatus");
|
||||
return BlockSelection->ArrayIsEnabled(name);
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3blockMeshReader::SetPartArrayStatus
|
||||
void vtkPV3blockMeshReader::SetBlockArrayStatus
|
||||
(
|
||||
const char* name,
|
||||
int status
|
||||
)
|
||||
{
|
||||
vtkDebugMacro(<<"SetPartArrayStatus");
|
||||
vtkDebugMacro(<<"SetBlockArrayStatus");
|
||||
if (status)
|
||||
{
|
||||
PartSelection->EnableArray(name);
|
||||
BlockSelection->EnableArray(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
PartSelection->DisableArray(name);
|
||||
BlockSelection->DisableArray(name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -399,14 +399,7 @@ void vtkPV3blockMeshReader::SelectionModifiedCallback
|
||||
void*
|
||||
)
|
||||
{
|
||||
static_cast<vtkPV3blockMeshReader*>(clientdata)->SelectionModified();
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3blockMeshReader::SelectionModified()
|
||||
{
|
||||
vtkDebugMacro(<<"SelectionModified");
|
||||
Modified();
|
||||
static_cast<vtkPV3blockMeshReader*>(clientdata)->Modified();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -84,15 +84,15 @@ public:
|
||||
|
||||
|
||||
// Description:
|
||||
// Parts (blocks) selection list control
|
||||
vtkDataArraySelection* GetPartSelection();
|
||||
int GetNumberOfPartArrays();
|
||||
int GetPartArrayStatus(const char*);
|
||||
void SetPartArrayStatus(const char*, int status);
|
||||
const char* GetPartArrayName(int index);
|
||||
// Blocks selection list control
|
||||
vtkDataArraySelection* GetBlockSelection();
|
||||
int GetNumberOfBlockArrays();
|
||||
int GetBlockArrayStatus(const char*);
|
||||
void SetBlockArrayStatus(const char*, int status);
|
||||
const char* GetBlockArrayName(int index);
|
||||
|
||||
// Description:
|
||||
// Parts (blocks) selection list control
|
||||
// CurvedEdges selection list control
|
||||
vtkDataArraySelection* GetCurvedEdgesSelection();
|
||||
int GetNumberOfCurvedEdgesArrays();
|
||||
int GetCurvedEdgesArrayStatus(const char*);
|
||||
@ -110,8 +110,6 @@ public:
|
||||
void* calldata
|
||||
);
|
||||
|
||||
void SelectionModified();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
@ -164,7 +162,7 @@ private:
|
||||
//- Dummy variable/switch to invoke a reader update
|
||||
int UpdateGUI;
|
||||
|
||||
vtkDataArraySelection* PartSelection;
|
||||
vtkDataArraySelection* BlockSelection;
|
||||
|
||||
vtkDataArraySelection* CurvedEdgesSelection;
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -49,13 +49,16 @@ defineTypeNameAndDebug(Foam::vtkPV3blockMesh, 0);
|
||||
void Foam::vtkPV3blockMesh::resetCounters()
|
||||
{
|
||||
// Reset mesh part ids and sizes
|
||||
partInfoBlocks_.reset();
|
||||
partInfoEdges_.reset();
|
||||
partInfoCorners_.reset();
|
||||
arrayRangeBlocks_.reset();
|
||||
arrayRangeEdges_.reset();
|
||||
arrayRangeCorners_.reset();
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3blockMesh::updateInfoBlocks()
|
||||
void Foam::vtkPV3blockMesh::updateInfoBlocks
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
@ -63,8 +66,7 @@ void Foam::vtkPV3blockMesh::updateInfoBlocks()
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* selection = reader_->GetPartSelection();
|
||||
partInfoBlocks_ = selection->GetNumberOfArrays();
|
||||
arrayRangeBlocks_.reset( arraySelection->GetNumberOfArrays() );
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
const int nBlocks = blkMesh.size();
|
||||
@ -81,22 +83,25 @@ void Foam::vtkPV3blockMesh::updateInfoBlocks()
|
||||
}
|
||||
|
||||
// Add blockId and zoneName to GUI list
|
||||
selection->AddArray(partName.c_str());
|
||||
arraySelection->AddArray(partName.c_str());
|
||||
}
|
||||
|
||||
partInfoBlocks_ += nBlocks;
|
||||
arrayRangeBlocks_ += nBlocks;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(selection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateInfoBlocks" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3blockMesh::updateInfoEdges()
|
||||
void Foam::vtkPV3blockMesh::updateInfoEdges
|
||||
(
|
||||
vtkDataArraySelection* arraySelection
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
@ -104,8 +109,7 @@ void Foam::vtkPV3blockMesh::updateInfoEdges()
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* selection = reader_->GetCurvedEdgesSelection();
|
||||
partInfoEdges_ = selection->GetNumberOfArrays();
|
||||
arrayRangeEdges_.reset( arraySelection->GetNumberOfArrays() );
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
const curvedEdgeList& edges = blkMesh.edges();
|
||||
@ -119,15 +123,15 @@ void Foam::vtkPV3blockMesh::updateInfoEdges()
|
||||
<< edges[edgeI].type();
|
||||
|
||||
// Add "beg:end - type" to GUI list
|
||||
selection->AddArray(ostr.str().c_str());
|
||||
arraySelection->AddArray(ostr.str().c_str());
|
||||
}
|
||||
|
||||
partInfoEdges_ += nEdges;
|
||||
arrayRangeEdges_ += nEdges;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(selection);
|
||||
getSelectedArrayEntries(arraySelection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateInfoEdges" << endl;
|
||||
}
|
||||
@ -145,9 +149,9 @@ Foam::vtkPV3blockMesh::vtkPV3blockMesh
|
||||
reader_(reader),
|
||||
dbPtr_(NULL),
|
||||
meshPtr_(NULL),
|
||||
partInfoBlocks_("block"),
|
||||
partInfoEdges_("edges"),
|
||||
partInfoCorners_("corners")
|
||||
arrayRangeBlocks_("block"),
|
||||
arrayRangeEdges_("edges"),
|
||||
arrayRangeCorners_("corners")
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
@ -243,7 +247,7 @@ void Foam::vtkPV3blockMesh::updateInfo()
|
||||
|
||||
resetCounters();
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
vtkDataArraySelection* blockSelection = reader_->GetBlockSelection();
|
||||
vtkDataArraySelection* edgeSelection = reader_->GetCurvedEdgesSelection();
|
||||
|
||||
// enable 'internalMesh' on the first call
|
||||
@ -251,33 +255,33 @@ void Foam::vtkPV3blockMesh::updateInfo()
|
||||
stringList enabledParts;
|
||||
stringList enabledEdges;
|
||||
bool firstTime = false;
|
||||
if (!partSelection->GetNumberOfArrays() && !meshPtr_)
|
||||
if (!blockSelection->GetNumberOfArrays() && !meshPtr_)
|
||||
{
|
||||
firstTime = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
enabledParts = getSelectedArrayEntries(partSelection);
|
||||
enabledParts = getSelectedArrayEntries(blockSelection);
|
||||
enabledEdges = getSelectedArrayEntries(edgeSelection);
|
||||
}
|
||||
|
||||
// Clear current mesh parts list
|
||||
partSelection->RemoveAllArrays();
|
||||
blockSelection->RemoveAllArrays();
|
||||
edgeSelection->RemoveAllArrays();
|
||||
|
||||
// need a blockMesh
|
||||
updateFoamMesh();
|
||||
|
||||
// Update mesh parts list
|
||||
updateInfoBlocks();
|
||||
updateInfoBlocks( blockSelection );
|
||||
|
||||
// Update curved edges list
|
||||
updateInfoEdges();
|
||||
updateInfoEdges( edgeSelection );
|
||||
|
||||
// restore the enabled selections
|
||||
if (!firstTime)
|
||||
{
|
||||
setSelectedArrayEntries(partSelection, enabledParts);
|
||||
setSelectedArrayEntries(blockSelection, enabledParts);
|
||||
setSelectedArrayEntries(edgeSelection, enabledEdges);
|
||||
}
|
||||
|
||||
@ -337,7 +341,7 @@ void Foam::vtkPV3blockMesh::Update
|
||||
reader_->UpdateProgress(0.1);
|
||||
|
||||
// Set up mesh parts selection(s)
|
||||
updateBoolListStatus(partStatus_, reader_->GetPartSelection());
|
||||
updateBoolListStatus(blockStatus_, reader_->GetBlockSelection());
|
||||
|
||||
// Set up curved edges selection(s)
|
||||
updateBoolListStatus(edgeStatus_, reader_->GetCurvedEdgesSelection());
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -88,7 +88,7 @@ class vtkPV3blockMesh
|
||||
// Private classes
|
||||
|
||||
//- Bookkeeping for GUI checklists and the multi-block organization
|
||||
class partInfo
|
||||
class arrayRange
|
||||
{
|
||||
const char *name_;
|
||||
int block_;
|
||||
@ -97,11 +97,11 @@ class vtkPV3blockMesh
|
||||
|
||||
public:
|
||||
|
||||
partInfo(const char *name, const int blockNo=0)
|
||||
arrayRange(const char *name, const int blockNo=0)
|
||||
:
|
||||
name_(name),
|
||||
block_(blockNo),
|
||||
start_(-1),
|
||||
start_(0),
|
||||
size_(0)
|
||||
{}
|
||||
|
||||
@ -119,21 +119,25 @@ class vtkPV3blockMesh
|
||||
return prev;
|
||||
}
|
||||
|
||||
//- Return block name
|
||||
const char* name() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
//- Return array start index
|
||||
int start() const
|
||||
{
|
||||
return start_;
|
||||
}
|
||||
|
||||
//- Return array end index
|
||||
int end() const
|
||||
{
|
||||
return start_ + size_;
|
||||
}
|
||||
|
||||
//- Return sublist size
|
||||
int size() const
|
||||
{
|
||||
return size_;
|
||||
@ -144,16 +148,10 @@ class vtkPV3blockMesh
|
||||
return !size_;
|
||||
}
|
||||
|
||||
void reset()
|
||||
//- Reset the size to zero and optionally assign a new start
|
||||
void reset(const int startAt = 0)
|
||||
{
|
||||
start_ = -1;
|
||||
size_ = 0;
|
||||
}
|
||||
|
||||
//- Assign new start and reset the size
|
||||
void operator=(const int i)
|
||||
{
|
||||
start_ = i;
|
||||
start_ = startAt;
|
||||
size_ = 0;
|
||||
}
|
||||
|
||||
@ -177,22 +175,20 @@ class vtkPV3blockMesh
|
||||
blockMesh* meshPtr_;
|
||||
|
||||
//- Selected geometrical parts
|
||||
boolList partStatus_;
|
||||
boolList blockStatus_;
|
||||
|
||||
//- Selected curved edges
|
||||
boolList edgeStatus_;
|
||||
|
||||
//- First instance and size of bleckMesh blocks
|
||||
// used to index into partStatus_
|
||||
partInfo partInfoBlocks_;
|
||||
// used to index into blockStatus_
|
||||
arrayRange arrayRangeBlocks_;
|
||||
|
||||
//- First instance and size of CurvedEdges
|
||||
// only partially used
|
||||
partInfo partInfoEdges_;
|
||||
//- First instance and size of CurvedEdges (only partially used)
|
||||
arrayRange arrayRangeEdges_;
|
||||
|
||||
//- First instance and size of block corners
|
||||
// only partially used
|
||||
partInfo partInfoCorners_;
|
||||
//- First instance and size of block corners (only partially used)
|
||||
arrayRange arrayRangeCorners_;
|
||||
|
||||
//- List of point numbers for rendering to window
|
||||
List<vtkTextActor*> pointNumberTextActorsPtrs_;
|
||||
@ -205,7 +201,7 @@ class vtkPV3blockMesh
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
vtkDataSet* dataset,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo,
|
||||
const std::string& datasetName
|
||||
);
|
||||
@ -215,7 +211,7 @@ class vtkPV3blockMesh
|
||||
static vtkDataSet* GetDataSetFromBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&,
|
||||
const arrayRange&,
|
||||
const label datasetNo
|
||||
);
|
||||
|
||||
@ -224,7 +220,7 @@ class vtkPV3blockMesh
|
||||
static label GetNumberOfDataSets
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo&
|
||||
const arrayRange&
|
||||
);
|
||||
|
||||
//- Update boolList from GUI selection
|
||||
@ -240,10 +236,10 @@ class vtkPV3blockMesh
|
||||
// Update information helper functions
|
||||
|
||||
//- Internal block info
|
||||
void updateInfoBlocks();
|
||||
void updateInfoBlocks(vtkDataArraySelection*);
|
||||
|
||||
//- block curved edges info
|
||||
void updateInfoEdges();
|
||||
void updateInfoEdges(vtkDataArraySelection*);
|
||||
|
||||
// Update helper functions
|
||||
|
||||
@ -271,7 +267,7 @@ class vtkPV3blockMesh
|
||||
static wordHashSet getSelected
|
||||
(
|
||||
vtkDataArraySelection*,
|
||||
const partInfo&
|
||||
const arrayRange&
|
||||
);
|
||||
|
||||
//- Retrieve the current selections
|
||||
@ -281,7 +277,7 @@ class vtkPV3blockMesh
|
||||
static stringList getSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection*,
|
||||
const partInfo&
|
||||
const arrayRange&
|
||||
);
|
||||
|
||||
//- Set selection(s)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -52,9 +52,9 @@ void Foam::vtkPV3blockMesh::convertMeshBlocks
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
vtkDataArraySelection* selection = reader_->GetPartSelection();
|
||||
partInfo& selector = partInfoBlocks_;
|
||||
selector.block(blockNo); // set output block
|
||||
vtkDataArraySelection* selection = reader_->GetBlockSelection();
|
||||
arrayRange& range = arrayRangeBlocks_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
@ -70,25 +70,18 @@ void Foam::vtkPV3blockMesh::convertMeshBlocks
|
||||
|
||||
for
|
||||
(
|
||||
int partId = selector.start();
|
||||
partId < selector.end();
|
||||
int partId = range.start();
|
||||
partId < range.end();
|
||||
++partId, ++blockI
|
||||
)
|
||||
{
|
||||
if (!partStatus_[partId])
|
||||
if (!blockStatus_[partId])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
const blockDescriptor& blockDef = blkMesh[blockI].blockDef();
|
||||
word partName("block");
|
||||
|
||||
// // append the (optional) zone name
|
||||
// if (!blockDef.zoneName().empty())
|
||||
// {
|
||||
// partName += " - " + blockDef.zoneName();
|
||||
// }
|
||||
//
|
||||
vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::New();
|
||||
|
||||
// Convert Foam mesh vertices to VTK
|
||||
@ -123,7 +116,7 @@ void Foam::vtkPV3blockMesh::convertMeshBlocks
|
||||
|
||||
AddToBlock
|
||||
(
|
||||
output, vtkmesh, selector, datasetNo,
|
||||
output, vtkmesh, range, datasetNo,
|
||||
selection->GetArrayName(partId)
|
||||
);
|
||||
|
||||
@ -152,9 +145,9 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
|
||||
)
|
||||
{
|
||||
vtkDataArraySelection* selection = reader_->GetCurvedEdgesSelection();
|
||||
partInfo& selector = partInfoEdges_;
|
||||
arrayRange& range = arrayRangeEdges_;
|
||||
|
||||
selector.block(blockNo); // set output block
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
@ -165,8 +158,8 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
|
||||
|
||||
for
|
||||
(
|
||||
int partId = selector.start();
|
||||
partId < selector.end();
|
||||
int partId = range.start();
|
||||
partId < range.end();
|
||||
++partId, ++edgeI
|
||||
)
|
||||
{
|
||||
@ -187,9 +180,7 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
|
||||
|
||||
edgeList blkEdges = blockDef.blockShape().edges();
|
||||
|
||||
|
||||
// find the corresponding edge within the block
|
||||
|
||||
label foundEdgeI = -1;
|
||||
forAll(blkEdges, blkEdgeI)
|
||||
{
|
||||
@ -236,7 +227,7 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
|
||||
|
||||
AddToBlock
|
||||
(
|
||||
output, vtkmesh, selector, datasetNo,
|
||||
output, vtkmesh, range, datasetNo,
|
||||
selection->GetArrayName(partId)
|
||||
);
|
||||
|
||||
@ -269,8 +260,8 @@ void Foam::vtkPV3blockMesh::convertMeshCorners
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoCorners_;
|
||||
selector.block(blockNo); // set output block
|
||||
arrayRange& range = arrayRangeCorners_;
|
||||
range.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
|
||||
const pointField& blockPoints = meshPtr_->blockPointField();
|
||||
@ -310,7 +301,11 @@ void Foam::vtkPV3blockMesh::convertMeshCorners
|
||||
vtkmesh->SetVerts(vtkcells);
|
||||
vtkcells->Delete();
|
||||
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partInfoCorners_.name());
|
||||
AddToBlock
|
||||
(
|
||||
output, vtkmesh, range, datasetNo,
|
||||
arrayRangeCorners_.name()
|
||||
);
|
||||
vtkmesh->Delete();
|
||||
|
||||
datasetNo++;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -71,12 +71,12 @@ void Foam::vtkPV3blockMesh::AddToBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
vtkDataSet* dataset,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo,
|
||||
const std::string& datasetName
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
const int blockNo = range.block();
|
||||
|
||||
vtkDataObject* blockDO = output->GetBlock(blockNo);
|
||||
vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
|
||||
@ -112,7 +112,7 @@ void Foam::vtkPV3blockMesh::AddToBlock
|
||||
output->GetMetaData(blockNo)->Set
|
||||
(
|
||||
vtkCompositeDataSet::NAME(),
|
||||
selector.name()
|
||||
range.name()
|
||||
);
|
||||
}
|
||||
|
||||
@ -130,11 +130,11 @@ void Foam::vtkPV3blockMesh::AddToBlock
|
||||
vtkDataSet* Foam::vtkPV3blockMesh::GetDataSetFromBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
const arrayRange& range,
|
||||
const label datasetNo
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
const int blockNo = range.block();
|
||||
|
||||
vtkDataObject* blockDO = output->GetBlock(blockNo);
|
||||
vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
|
||||
@ -152,10 +152,10 @@ vtkDataSet* Foam::vtkPV3blockMesh::GetDataSetFromBlock
|
||||
Foam::label Foam::vtkPV3blockMesh::GetNumberOfDataSets
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector
|
||||
const arrayRange& range
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
const int blockNo = range.block();
|
||||
|
||||
vtkDataObject* blockDO = output->GetBlock(blockNo);
|
||||
vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
|
||||
@ -191,13 +191,13 @@ Foam::wordHashSet Foam::vtkPV3blockMesh::getSelected
|
||||
Foam::wordHashSet Foam::vtkPV3blockMesh::getSelected
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const partInfo& selector
|
||||
const arrayRange& range
|
||||
)
|
||||
{
|
||||
int nElem = select->GetNumberOfArrays();
|
||||
wordHashSet selections(2*nElem);
|
||||
|
||||
for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
|
||||
for (int elemI = range.start(); elemI < range.end(); ++elemI)
|
||||
{
|
||||
if (select->GetArraySetting(elemI))
|
||||
{
|
||||
@ -251,13 +251,13 @@ Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
|
||||
Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const partInfo& selector
|
||||
const arrayRange& range
|
||||
)
|
||||
{
|
||||
stringList selections(selector.size());
|
||||
stringList selections(range.size());
|
||||
label nElem = 0;
|
||||
|
||||
for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
|
||||
for (int elemI = range.start(); elemI < range.end(); ++elemI)
|
||||
{
|
||||
if (select->GetArraySetting(elemI))
|
||||
{
|
||||
@ -270,7 +270,7 @@ Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
|
||||
if (debug)
|
||||
{
|
||||
Info<< "available(";
|
||||
for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
|
||||
for (int elemI = range.start(); elemI < range.end(); ++elemI)
|
||||
{
|
||||
Info<< " \"" << select->GetArrayName(elemI) << "\"";
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ int USERD_set_filenames
|
||||
|
||||
// set the number of fields and store their names
|
||||
// a valid field must exist for all time-steps
|
||||
runTime.setTime(timeDirs[timeDirs.size()-1], timeDirs.size()-1);
|
||||
runTime.setTime(timeDirs.last(), timeDirs.size()-1);
|
||||
IOobjectList objects(*meshPtr, runTime.timeName());
|
||||
|
||||
fieldNames = objects.names();
|
||||
|
||||
@ -6,3 +6,5 @@
|
||||
# then
|
||||
# wmake fieldview9Reader
|
||||
# fi
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
@ -103,7 +103,7 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
startIds[i+1] += startIds[i] + numIds[i];
|
||||
}
|
||||
label nParticle = startIds[startIds.size()-1] + numIds[startIds.size()-1];
|
||||
label nParticle = startIds.last() + numIds[startIds.size()-1];
|
||||
|
||||
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ int main(int argc, char *argv[])
|
||||
Info<< "\nVmax = " << Vmax;
|
||||
Info<< ", Vmin = " << Vmin << endl;
|
||||
Info<< "Vmax/Vmin = " << Vmax/Vmin << endl;
|
||||
Info<< "\nEnd" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ int main(int argc, char *argv[])
|
||||
# include "collapse.H"
|
||||
}
|
||||
|
||||
Info<< "\nEnd" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
Info<< "\nEnd" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
# include "createMesh.H"
|
||||
|
||||
runTime.setTime(timeDirs[timeDirs.size()-1], timeDirs.size()-1);
|
||||
runTime.setTime(timeDirs.last(), timeDirs.size()-1);
|
||||
|
||||
volScalarField pMean
|
||||
(
|
||||
|
||||
@ -89,7 +89,7 @@ int main(int argc, char *argv[])
|
||||
Info<< nl << "ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||
<< nl << endl;
|
||||
|
||||
Info << nl << "End\n" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -235,7 +235,7 @@ int main(int argc, char *argv[])
|
||||
);
|
||||
}
|
||||
|
||||
Info<< "\nEnd" << endl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
wmake libso tabulatedWallFunction
|
||||
wmake
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
@ -93,13 +93,13 @@ Foam::scalar Foam::tabulatedWallFunctions::general::interpolate
|
||||
{
|
||||
case itLinear:
|
||||
{
|
||||
if (xi < x[0])
|
||||
if (xi <= x[0])
|
||||
{
|
||||
return fx[0];
|
||||
}
|
||||
else if (xi > x[x.size()-1])
|
||||
else if (xi >= x.last())
|
||||
{
|
||||
return fx[x.size()-1];
|
||||
return fx.last();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -128,7 +128,7 @@ static void splitTri
|
||||
labelledTri
|
||||
(
|
||||
f[fp2],
|
||||
splitPoints[splitPoints.size()-1],
|
||||
splitPoints.last(),
|
||||
f[fp1],
|
||||
f.region()
|
||||
)
|
||||
@ -144,7 +144,7 @@ static void splitTri
|
||||
(
|
||||
f[fp1],
|
||||
f[fp2],
|
||||
splitPoints[splitPoints.size()-1],
|
||||
splitPoints.last(),
|
||||
f.region()
|
||||
)
|
||||
);
|
||||
|
||||
13
bin/paraFoam
13
bin/paraFoam
@ -130,18 +130,7 @@ OpenFOAM)
|
||||
esac
|
||||
|
||||
case "$ParaView_VERSION" in
|
||||
2*)
|
||||
trap "rm -f paraFoam.pvs $caseFile 2>/dev/null; exit 0" EXIT TERM INT
|
||||
touch "$caseFile"
|
||||
|
||||
# since we are now in the cwd, %CASE% is '$PWD/$caseFile'
|
||||
sed -e s@%CASE%@$PWD/$caseFile@g \
|
||||
$WM_PROJECT_DIR/bin/tools/paraFoam.pvs > paraFoam.pvs
|
||||
|
||||
paraview paraFoam.pvs
|
||||
;;
|
||||
|
||||
*)
|
||||
3*)
|
||||
# only create/remove caseFile if it didn't already exist
|
||||
[ -e $caseFile ] || {
|
||||
trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT
|
||||
|
||||
@ -41,8 +41,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info << "End\n" << endl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
# ParaView State Version 2.2
|
||||
|
||||
set kw(vtkTemp2) [$Application GetMainWindow]
|
||||
set kw(vtkTemp29) [$kw(vtkTemp2) GetMainView]
|
||||
set kw(vtkTemp980) [$kw(vtkTemp2) GetAnimationManager]
|
||||
[$kw(vtkTemp2) GetRotateCameraButton] SetState 1
|
||||
$kw(vtkTemp2) ChangeInteractorStyle 1
|
||||
set kw(vtkTemp840) [$kw(vtkTemp2) InitializeReadCustom "FoamReader" "%CASE%"]
|
||||
$kw(vtkTemp2) ReadFileInformation $kw(vtkTemp840) "%CASE%"
|
||||
$kw(vtkTemp2) FinalizeRead $kw(vtkTemp840) "%CASE%"
|
||||
set kw(vtkTemp868) [$kw(vtkTemp840) GetPVWidget {Filename}]
|
||||
$kw(vtkTemp868) SetValue "%CASE%"
|
||||
@ -689,13 +689,13 @@ HTML_FILE_EXTENSION = .html
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard header.
|
||||
|
||||
HTML_HEADER = FoamHeader.html
|
||||
HTML_HEADER = $(WM_PROJECT_DIR)/doc/Doxygen/FoamHeader.html
|
||||
|
||||
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard footer.
|
||||
|
||||
HTML_FOOTER = FoamFooter.html
|
||||
HTML_FOOTER = $(WM_PROJECT_DIR)/doc/Doxygen/FoamFooter.html
|
||||
|
||||
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
||||
# style sheet that is used by each HTML page. It can be used to
|
||||
|
||||
@ -222,4 +222,4 @@ The doc/Doxygen/tools directory contains miscellaneous scripts for finding
|
||||
and possibly repairing documentation issues.
|
||||
|
||||
|
||||
Updated: 2008-03-17
|
||||
Updated: 2009-11-27
|
||||
|
||||
@ -10,239 +10,252 @@
|
||||
|
||||
*** General
|
||||
+ 80 character lines max
|
||||
+ The normal indentation is 4 spaces per logical level.
|
||||
+ Use spaces for indentation, not tab characters.
|
||||
+ Avoid trailing whitespace.
|
||||
+ The body of control statements (eg, if, else, while, etc).
|
||||
always delineated with brace brackets
|
||||
always delineated with brace brackets. A possible exception can be
|
||||
made with 'break' or 'continue' as part of a control structure.
|
||||
|
||||
+ stream output
|
||||
<< is always four characters after the start of the stream, so that the <<
|
||||
symbols align, i.e.
|
||||
|
||||
Info<<
|
||||
os <<
|
||||
=<<= is always four characters after the start of the stream,
|
||||
so that the =<<= symbols align, i.e.
|
||||
|
||||
:Info<< ...
|
||||
:os << ...
|
||||
|
||||
so
|
||||
|
||||
WarningIn("className::functionName()")
|
||||
<< "Warning message"
|
||||
:WarningIn("className::functionName()")
|
||||
: << "Warning message"
|
||||
|
||||
NOT
|
||||
|
||||
WarningIn("className::functionName()")
|
||||
<< "Warning message"
|
||||
:WarningIn("className::functionName()")
|
||||
:<< "Warning message"
|
||||
|
||||
|
||||
+ no unnecessary class section headers, i.e. remove
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
// Check
|
||||
|
||||
// Edit
|
||||
|
||||
// Write
|
||||
:// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
:
|
||||
:// Check
|
||||
:
|
||||
:// Edit
|
||||
:
|
||||
:// Write
|
||||
|
||||
if they contain nothing, even if planned for 'future use'
|
||||
|
||||
+ class titles are centred
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class exampleClass Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
:/*---------------------------------------------------------------------------*\
|
||||
: Class exampleClass Declaration
|
||||
:\*---------------------------------------------------------------------------*/
|
||||
|
||||
NOT
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class exampleClass Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
:/*---------------------------------------------------------------------------*\
|
||||
: Class exampleClass Declaration
|
||||
:\*---------------------------------------------------------------------------*/
|
||||
|
||||
*** .H Files
|
||||
*** The =.H= Files
|
||||
+ header file spacing
|
||||
Leave two empty lines between sections (as per functions in the .C file etc)
|
||||
Leave two empty lines between sections (as per functions in the =.C= file etc)
|
||||
|
||||
+ use "//- Comment" comments in header file
|
||||
+ add descriptions to class data and functions
|
||||
+ destructor
|
||||
If adding a comment to the destructor - use //- and code as a normal function:
|
||||
|
||||
//- Destructor
|
||||
~className();
|
||||
://- Destructor
|
||||
:~className();
|
||||
|
||||
+ inline functions
|
||||
Use inline functions where appropriate in a separate classNameI.H file.
|
||||
Do not clutter up the header file with function bodies
|
||||
Avoid cluttering the header file with function bodies.
|
||||
|
||||
*** .C Files
|
||||
+ Do not open/close namespaces in a .C file
|
||||
*** The =.C= Files
|
||||
+ Do not open/close namespaces in a =.C= file
|
||||
Fully scope the function name, i.e.
|
||||
|
||||
Foam::returnType Foam::className::functionName()
|
||||
:Foam::returnType Foam::className::functionName()
|
||||
|
||||
NOT
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
...
|
||||
|
||||
returnType className::functionName()
|
||||
|
||||
...
|
||||
}
|
||||
:namespace Foam
|
||||
:{
|
||||
: ...
|
||||
:
|
||||
: returnType className::functionName()
|
||||
:
|
||||
: ...
|
||||
:}
|
||||
|
||||
EXCEPTION
|
||||
|
||||
When there are multiple levels of namespace, they may be used in the .C
|
||||
When there are multiple levels of namespace, they may be used in the =.C=
|
||||
file, i.e.
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace RASModels
|
||||
{
|
||||
|
||||
...
|
||||
|
||||
} // End namespace RASModels
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
:namespace Foam
|
||||
:{
|
||||
:namespace compressible
|
||||
:{
|
||||
:namespace RASModels
|
||||
:{
|
||||
:
|
||||
: ...
|
||||
:
|
||||
:} // End namespace RASModels
|
||||
:} // End namespace compressible
|
||||
:} // End namespace Foam
|
||||
|
||||
+ Use two empty lines between functions
|
||||
|
||||
*** Coding Practise
|
||||
*** Coding Practice
|
||||
+ passing data as arguments or return
|
||||
Pass label and scalar as copy, anything bigger by reference
|
||||
Pass bool, label and scalar as copy, anything larger by reference.
|
||||
|
||||
+ const
|
||||
Use everywhere it is applicable.
|
||||
|
||||
+ variable initialisation using "="
|
||||
|
||||
const className& variableName = otherClass.data();
|
||||
: const className& variableName = otherClass.data();
|
||||
|
||||
NOT
|
||||
|
||||
const className& variableName(otherClass.data());
|
||||
: const className& variableName(otherClass.data());
|
||||
|
||||
+ virtual functions
|
||||
If a class is virtual - make all derived classes virtual.
|
||||
|
||||
*** Conditional Statements
|
||||
if (condition)
|
||||
{
|
||||
code;
|
||||
}
|
||||
:if (condition)
|
||||
:{
|
||||
: code;
|
||||
:}
|
||||
|
||||
OR
|
||||
|
||||
if
|
||||
(
|
||||
long condition
|
||||
)
|
||||
{
|
||||
code;
|
||||
}
|
||||
:if
|
||||
:(
|
||||
: long condition
|
||||
:)
|
||||
:{
|
||||
: code;
|
||||
:}
|
||||
|
||||
NOT (no space between "if" and "(")
|
||||
|
||||
if(condition)
|
||||
{
|
||||
code;
|
||||
}
|
||||
:if(condition)
|
||||
:{
|
||||
: code;
|
||||
:}
|
||||
|
||||
*** `for' Loops
|
||||
for (i = 0; i < maxI; i++)
|
||||
{
|
||||
code;
|
||||
}
|
||||
*** =for= and =while= Loops
|
||||
:for (i = 0; i < maxI; i++)
|
||||
:{
|
||||
: code;
|
||||
:}
|
||||
|
||||
OR
|
||||
|
||||
for
|
||||
(
|
||||
i = 0;
|
||||
i < maxI;
|
||||
i++
|
||||
)
|
||||
{
|
||||
code;
|
||||
}
|
||||
:for
|
||||
:(
|
||||
: i = 0;
|
||||
: i < maxI;
|
||||
: i++
|
||||
:)
|
||||
:{
|
||||
: code;
|
||||
:}
|
||||
|
||||
NOT (no space between "for" and "(")
|
||||
|
||||
for(i = 0; i < maxI; i++)
|
||||
{
|
||||
code;
|
||||
}
|
||||
:for(i = 0; i < maxI; i++)
|
||||
:{
|
||||
: code;
|
||||
:}
|
||||
|
||||
*** `forAll' loops
|
||||
like for loops, but
|
||||
Note that when indexing through iterators, it is often slightly more
|
||||
efficient to use the pre-increment form. Eg, =++iter= instead of =iter++=
|
||||
|
||||
forAll(
|
||||
*** =forAll= , =forAllIter=, etc. loops
|
||||
like =for= loops, but
|
||||
|
||||
:forAll(
|
||||
|
||||
NOT
|
||||
|
||||
forAll (
|
||||
:forAll (
|
||||
|
||||
*** Splitting Over Multiple Lines
|
||||
+ splitting return type and function name
|
||||
|
||||
**** Splitting return type and function name
|
||||
+ split initially after the function return type and left align
|
||||
|
||||
+ do not put "const" onto it's own line - use a split to keep it with the
|
||||
function name and arguments.
|
||||
+ do not put "const" onto its own line - use a split to keep it with
|
||||
the function name and arguments.
|
||||
|
||||
so:
|
||||
|
||||
const Foam::longReturnTypeName&
|
||||
Foam::longClassName::longFunctionName const
|
||||
:const Foam::longReturnTypeName&
|
||||
:Foam::longClassName::longFunctionName const
|
||||
|
||||
NOT
|
||||
|
||||
const Foam::longReturnTypeName&
|
||||
Foam::longClassName::longFunctionName const
|
||||
:const Foam::longReturnTypeName&
|
||||
: Foam::longClassName::longFunctionName const
|
||||
|
||||
NOR
|
||||
|
||||
const Foam::longReturnTypeName& Foam::longClassName::longFunctionName
|
||||
const
|
||||
:const Foam::longReturnTypeName& Foam::longClassName::longFunctionName
|
||||
:const
|
||||
|
||||
NOR
|
||||
|
||||
const Foam::longReturnTypeName& Foam::longClassName::
|
||||
longFunctionName const
|
||||
:const Foam::longReturnTypeName& Foam::longClassName::
|
||||
:longFunctionName const
|
||||
|
||||
|
||||
+ if need to split again, split at the function name (leaving behind the
|
||||
preceding scoping "::"'s), and again, left align, i.e.
|
||||
+ if it needs to be split again, split at the function name (leaving
|
||||
behind the preceding scoping "::"s), and again, left align, i.e.
|
||||
|
||||
const Foam::longReturnTypeName&
|
||||
Foam::veryveryveryverylongClassName::
|
||||
veryveryveryverylongFunctionName const
|
||||
For example,
|
||||
|
||||
+ splitting long lines at an "="
|
||||
:const Foam::longReturnTypeName&
|
||||
:Foam::veryveryveryverylongClassName::
|
||||
:veryveryveryverylongFunctionName const
|
||||
|
||||
**** Splitting long lines at an "="
|
||||
|
||||
Indent after split
|
||||
|
||||
variableName =
|
||||
longClassName.longFunctionName(longArgument);
|
||||
:variableName =
|
||||
: longClassName.longFunctionName(longArgument);
|
||||
|
||||
OR (where necessary)
|
||||
|
||||
variableName =
|
||||
longClassName.longFunctionName
|
||||
(
|
||||
longArgument1,
|
||||
longArgument2
|
||||
);
|
||||
:variableName =
|
||||
: longClassName.longFunctionName
|
||||
: (
|
||||
: longArgument1,
|
||||
: longArgument2
|
||||
: );
|
||||
|
||||
NOT
|
||||
|
||||
variableName =
|
||||
longClassName.longFunctionName(longArgument);
|
||||
:variableName =
|
||||
:longClassName.longFunctionName(longArgument);
|
||||
|
||||
NOR
|
||||
|
||||
variableName = longClassName.longFunctionName
|
||||
(
|
||||
longArgument1,
|
||||
longArgument2
|
||||
);
|
||||
:variableName = longClassName.longFunctionName
|
||||
:(
|
||||
: longArgument1,
|
||||
: longArgument2
|
||||
:);
|
||||
|
||||
*** Maths and Logic
|
||||
+ operator spacing
|
||||
@ -258,18 +271,201 @@
|
||||
with the operator on the lower line. Align operator so that first
|
||||
variable, function or bracket on the next line is 4 spaces indented i.e.
|
||||
|
||||
variableName =
|
||||
a*(a + b)
|
||||
- exp(c/d)
|
||||
*(k + t)
|
||||
:variableName =
|
||||
: a * (a + b)
|
||||
: - exp(c/d)
|
||||
: * (k + t);
|
||||
|
||||
This is sometime more legible when surrounded by extra parentheses:
|
||||
|
||||
:variableName =
|
||||
:(
|
||||
: a * (a + b)
|
||||
: - exp(c/d)
|
||||
: * (k + t)
|
||||
:);
|
||||
|
||||
+ splitting logical tests over several lines
|
||||
|
||||
indent operator so that the next variable to test is aligned with the
|
||||
four space indentation, i.e.
|
||||
outdent the operator so that the next variable to test is aligned with
|
||||
the four space indentation, i.e.
|
||||
|
||||
:if
|
||||
:(
|
||||
: a == true
|
||||
: && b == c
|
||||
:)
|
||||
|
||||
** Documentation
|
||||
|
||||
*** General
|
||||
|
||||
+ For readability in the comment blocks, certain tags are used that are
|
||||
translated by pre-filtering the file before sending it to Doxygen.
|
||||
|
||||
+ The tags start in column 1, the contents follow on the next lines and
|
||||
indented by 4 spaces. The filter removes the leading 4 spaces from the
|
||||
following lines until the next tag that starts in column 1.
|
||||
|
||||
+ The 'Class' and 'Description' tags are the most important ones.
|
||||
|
||||
+ The first paragraph following the 'Description' will be used for the
|
||||
brief description, the remaining paragraphs become the detailed
|
||||
description.
|
||||
|
||||
For example,
|
||||
|
||||
:Class
|
||||
: Foam::myClass
|
||||
:
|
||||
:Description
|
||||
: A class for specifying the documentation style.
|
||||
:
|
||||
: The class is implemented as a set of recommendations that may
|
||||
: sometimes be useful.
|
||||
|
||||
+ The class name must be qualified by its namespace, otherwise Doxygen
|
||||
will think you are documenting some other class.
|
||||
|
||||
+ If you don't have anything to say about the class (at the moment), use
|
||||
the namespace-qualified class name for the description. This aids with
|
||||
finding these under-documented classes later.
|
||||
|
||||
|
||||
:Class
|
||||
: Foam::myUnderDocumentedClass
|
||||
:
|
||||
:Description
|
||||
: Foam::myUnderDocumentedClass
|
||||
|
||||
|
||||
+ Use 'Class' and 'Namespace' tags in the header files.
|
||||
The Description block then applies to documenting the class.
|
||||
|
||||
+ Use 'InClass' and 'InNamespace' in the source files.
|
||||
The Description block then applies to documenting the file itself.
|
||||
|
||||
|
||||
:InClass
|
||||
: Foam::myClass
|
||||
:
|
||||
:Description
|
||||
: Implements the read and writing of files.
|
||||
|
||||
*** Doxygen Special Commands
|
||||
|
||||
Doxygen has a large number of special commands with a '\' prefix or a
|
||||
(alternatively) an '@' prefix.
|
||||
|
||||
The '@' prefix form is recommended for most Doxygen specials, since it
|
||||
has the advantage of standing out. It also happens to be what projects
|
||||
like gcc and VTK are using.
|
||||
|
||||
The '\' prefix form, however, looks a bit better for the '\n' newline
|
||||
command and when escaping single characters - eg, '\@', '\<', '\>', etc.
|
||||
|
||||
Since the filtering removes the leading 4 spaces within the blocks, the
|
||||
Doxygen commmands can be inserted within the block without problems.
|
||||
|
||||
|
||||
:InClass
|
||||
: Foam::myClass
|
||||
:
|
||||
:Description
|
||||
: Implements the read and writing of files.
|
||||
:
|
||||
: An example input file:
|
||||
: @verbatim
|
||||
: patchName
|
||||
: {
|
||||
: type myPatchType;
|
||||
: refValue 100;
|
||||
: value uniform 1;
|
||||
: }
|
||||
: @endverbatim
|
||||
:
|
||||
: Within the implementation, a loop over all patches is done:
|
||||
: @code
|
||||
: forAll(patches, patchI)
|
||||
: {
|
||||
: ... // some operation
|
||||
: }
|
||||
: @endcode
|
||||
|
||||
*** HTML Special Commands
|
||||
|
||||
Since Doxygen also handles HTML tags to a certain extent, the angle
|
||||
brackets need quoting in the documentation blocks. Non-HTML tags cause
|
||||
Doxygen to complain, but seem to work anyhow.
|
||||
|
||||
eg,
|
||||
+ The template with type <HR> is a bad example.
|
||||
|
||||
+ The template with type \<HR\> is a better example.
|
||||
|
||||
+ The template with type <Type> causes Doxygen to complain about an
|
||||
unknown html type, but it seems to work okay anyhow.
|
||||
|
||||
|
||||
*** Documenting Namespaces
|
||||
|
||||
+ If namespaces are explictly declared with the Namespace() macro,
|
||||
they should be documented there.
|
||||
|
||||
+ If the namespaces is used to hold sub-models, the namespace can be
|
||||
documented in the same file as the class with the model selector.
|
||||
eg,
|
||||
:documented namespace 'Foam::functionEntries' within the
|
||||
:class 'Foam::functionEntry'
|
||||
|
||||
+ If nothing else helps, find some sensible header.
|
||||
eg,
|
||||
:namespace 'Foam' is documented in the foamVersion.H file
|
||||
|
||||
|
||||
*** Documenting Typedefs and classes defined via macros
|
||||
|
||||
... not yet properly resolved
|
||||
|
||||
|
||||
*** Documenting Applications
|
||||
|
||||
Any number of classes might be defined by a particular application, but
|
||||
these classes will not, however, be available to other parts of
|
||||
OpenFOAM. At the moment, the sole purpuse for running Doxygen on the
|
||||
applications is to extract program usage information for the '-doc'
|
||||
option.
|
||||
|
||||
The documentation for a particular application is normally contained
|
||||
within the first comment block in a =.C= source file. The solution is this
|
||||
to invoke a special filter for the "applications/{solver,utilities}"
|
||||
directories that only allows the initial comment block for the =.C= files
|
||||
through.
|
||||
|
||||
The layout of the application documentation has not yet been finalized,
|
||||
but foamToVTK shows an initial attempt.
|
||||
|
||||
*** Orthography (an opinion)
|
||||
|
||||
Given the origins of OpenFOAM, the British spellings (eg, neighbour and
|
||||
not neighbor) are generally favoured. For code sections that interact
|
||||
with external libraries, it can be useful to adopt American spellings,
|
||||
especially for names that constitute a significant part of the external
|
||||
library - eg, 'color' within graphics sub-systems.
|
||||
|
||||
Both '-ize' and the '-ise' variant are found in the code comments. If
|
||||
used as a variable or class method name, it is probably better to use
|
||||
'-ize', which is considered the main form by the Oxford University
|
||||
Press.
|
||||
|
||||
Eg,
|
||||
:myClass.initialize()
|
||||
|
||||
|
||||
The word "its" (possesive) vs. "it's" (colloquial for "it is" or "it has")
|
||||
seems to confuse non-native (and some native) English speakers.
|
||||
It is better to donate the extra keystrokes and write "it is" or "it has".
|
||||
Any remaining "it's" are likely an incorrect spelling of "its".
|
||||
|
||||
|
||||
|
||||
if
|
||||
(
|
||||
a == true
|
||||
&& b == c
|
||||
)
|
||||
|
||||
@ -27,7 +27,7 @@ wmake libso edgeMesh
|
||||
wmake libso surfMesh
|
||||
|
||||
# Decomposition methods needed by meshTools
|
||||
decompositionMethods/Allwmake
|
||||
wmake libso parallel/decompositionMethods
|
||||
|
||||
wmake libso meshTools
|
||||
wmake libso finiteVolume
|
||||
@ -46,6 +46,7 @@ thermophysicalModels/Allwmake
|
||||
transportModels/Allwmake
|
||||
turbulenceModels/Allwmake
|
||||
lagrangian/Allwmake
|
||||
parallel/Allwmake
|
||||
postProcessing/Allwmake
|
||||
conversion/Allwmake
|
||||
mesh/Allwmake
|
||||
|
||||
@ -144,7 +144,7 @@ public:
|
||||
void clear();
|
||||
|
||||
//- Transfer the contents of the argument into this DictionaryBase
|
||||
// and annull the argument.
|
||||
// and annul the argument.
|
||||
void transfer(DictionaryBase<IDLListType, T>&);
|
||||
|
||||
// Member operators
|
||||
|
||||
@ -287,7 +287,7 @@ public:
|
||||
void shrink();
|
||||
|
||||
//- Transfer the contents of the argument table into this table
|
||||
// and annull the argument table.
|
||||
// and annul the argument table.
|
||||
void transfer(HashTable<T, Key, Hash>&);
|
||||
|
||||
//- Transfer contents to the Xfer container
|
||||
@ -463,7 +463,7 @@ public:
|
||||
inline iterator operator++(int);
|
||||
};
|
||||
|
||||
//- iterator set to the begining of the HashTable
|
||||
//- iterator set to the beginning of the HashTable
|
||||
inline iterator begin();
|
||||
|
||||
|
||||
|
||||
@ -180,7 +180,7 @@ inline Foam::HashTable<T, Key, Hash>::iteratorBase::iteratorBase
|
||||
entryPtr_(0),
|
||||
hashIndex_(0)
|
||||
{
|
||||
if (hashTable_->nElmts_ && hashTable_->table_)
|
||||
if (hashTable_->nElmts_)
|
||||
{
|
||||
// find first non-NULL table entry
|
||||
while
|
||||
|
||||
@ -247,7 +247,7 @@ public:
|
||||
void clearStorage();
|
||||
|
||||
//- Transfer the contents of the argument table into this table
|
||||
// and annull the argument table.
|
||||
// and annul the argument table.
|
||||
void transfer(StaticHashTable<T, Key, Hash>&);
|
||||
|
||||
//- Transfer contents to the Xfer container
|
||||
|
||||
@ -140,7 +140,7 @@ public:
|
||||
void clear();
|
||||
|
||||
//- Transfer the contents of the argument into this List
|
||||
// and annull the argument list.
|
||||
// and annul the argument list.
|
||||
void transfer(ILList<LListBase, T>&);
|
||||
|
||||
|
||||
|
||||
@ -202,7 +202,7 @@ public:
|
||||
void clear();
|
||||
|
||||
//- Transfer the contents of the argument into this List
|
||||
// and annull the argument list.
|
||||
// and annul the argument list.
|
||||
void transfer(LList<LListBase, T>&);
|
||||
|
||||
// Member operators
|
||||
|
||||
@ -156,7 +156,7 @@ public:
|
||||
void clear();
|
||||
|
||||
//- Transfer the contents of the argument into this List
|
||||
// and annull the argument list.
|
||||
// and annul the argument list.
|
||||
void transfer(LPtrList<LListBase, T>&);
|
||||
|
||||
|
||||
|
||||
@ -172,7 +172,7 @@ public:
|
||||
inline void clear();
|
||||
|
||||
//- Transfer the contents of the argument into this List
|
||||
// and annull the argument list.
|
||||
// and annul the argument list.
|
||||
inline void transfer(DLListBase&);
|
||||
|
||||
// STL iterator
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user