GIT: conflict resolution

This commit is contained in:
andy
2012-09-26 12:32:07 +01:00
27 changed files with 1646 additions and 1387 deletions

View File

@ -3,7 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
-lfiniteVolume \
@ -11,4 +12,5 @@ EXE_LIBS = \
-lgenericPatchFields \
-ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp \
-llagrangian \
-lmeshTools
-lmeshTools \
-lregionModels

View File

@ -39,6 +39,10 @@ Usage
\param -region regionName \n
Decompose named region. Does not check for existence of processor*.
\param -allRegions \n
Decompose all regions in regionProperties. Does not check for
existence of processor*.
\param -copyUniform \n
Copy any \a uniform directories too.
@ -82,6 +86,7 @@ Usage
#include "tensorIOField.H"
#include "tensorFieldIOField.H"
#include "pointFields.H"
#include "regionProperties.H"
#include "readFields.H"
#include "dimFieldDecomposer.H"
@ -101,6 +106,11 @@ int main(int argc, char *argv[])
argList::noParallel();
#include "addRegionOption.H"
argList::addBoolOption
(
"allRegions",
"operate on all regions in regionProperties"
);
argList::addBoolOption
(
"cellDist",
"write cell distribution as a labelList - for use with 'manual' "
@ -132,15 +142,7 @@ int main(int argc, char *argv[])
#include "setRootCase.H"
word regionName = fvMesh::defaultRegion;
word regionDir = word::null;
if (args.optionReadIfPresent("region", regionName))
{
regionDir = regionName;
Info<< "Decomposing mesh " << regionName << nl << endl;
}
bool allRegions = args.optionFound("allRegions");
bool writeCellDist = args.optionFound("cellDist");
bool copyUniform = args.optionFound("copyUniform");
bool decomposeFieldsOnly = args.optionFound("fields");
@ -152,6 +154,51 @@ int main(int argc, char *argv[])
// Allow override of time
instantList times = timeSelector::selectIfPresent(runTime, args);
wordList regionNames;
wordList regionDirs;
if (allRegions)
{
Info<< "Decomposing all regions in regionProperties" << nl << endl;
regionProperties rp(runTime);
forAllConstIter(HashTable<wordList>, rp, iter)
{
const wordList& regions = iter();
forAll(regions, i)
{
if (findIndex(regionNames, regions[i]) == -1)
{
regionNames.append(regions[i]);
}
}
}
regionDirs = regionNames;
}
else
{
word regionName;
if (args.optionReadIfPresent("region", regionName))
{
regionNames = wordList(1, regionName);
regionDirs = regionNames;
}
else
{
regionNames = wordList(1, fvMesh::defaultRegion);
regionDirs = wordList(1, word::null);
}
}
forAll(regionNames, regionI)
{
const word& regionName = regionNames[regionI];
const word& regionDir = regionDirs[regionI];
Info<< "\n\nDecomposing mesh " << regionName << nl << endl;
// determine the existing processor count directly
label nProcs = 0;
while
@ -418,7 +465,10 @@ int main(int argc, char *argv[])
);
// Particles
PtrList<Cloud<indexedParticle> > lagrangianPositions(cloudDirs.size());
PtrList<Cloud<indexedParticle> > lagrangianPositions
(
cloudDirs.size()
);
// Particles per cell
PtrList< List<SLList<indexedParticle*>*> > cellParticles
(
@ -429,7 +479,8 @@ int main(int argc, char *argv[])
(
cloudDirs.size()
);
PtrList<PtrList<labelFieldCompactIOField> > lagrangianLabelFieldFields
PtrList<PtrList<labelFieldCompactIOField> >
lagrangianLabelFieldFields
(
cloudDirs.size()
);
@ -437,7 +488,8 @@ int main(int argc, char *argv[])
(
cloudDirs.size()
);
PtrList<PtrList<scalarFieldCompactIOField> > lagrangianScalarFieldFields
PtrList<PtrList<scalarFieldCompactIOField> >
lagrangianScalarFieldFields
(
cloudDirs.size()
);
@ -445,7 +497,8 @@ int main(int argc, char *argv[])
(
cloudDirs.size()
);
PtrList<PtrList<vectorFieldCompactIOField> > lagrangianVectorFieldFields
PtrList<PtrList<vectorFieldCompactIOField> >
lagrangianVectorFieldFields
(
cloudDirs.size()
);
@ -469,7 +522,8 @@ int main(int argc, char *argv[])
(
cloudDirs.size()
);
PtrList<PtrList<tensorFieldCompactIOField> > lagrangianTensorFieldFields
PtrList<PtrList<tensorFieldCompactIOField> >
lagrangianTensorFieldFields
(
cloudDirs.size()
);
@ -542,7 +596,8 @@ int main(int argc, char *argv[])
<< " at position " << iter().position() << nl
<< "Cell number should be between 0 and "
<< mesh.nCells()-1 << nl
<< "On this mesh the particle should be in cell "
<< "On this mesh the particle should"
<< " be in cell "
<< mesh.findCell(iter().position())
<< exit(FatalError);
}
@ -839,7 +894,10 @@ int main(int argc, char *argv[])
fieldDecomposer.decomposeFields(surfaceScalarFields);
fieldDecomposer.decomposeFields(surfaceVectorFields);
fieldDecomposer.decomposeFields(surfaceSphericalTensorFields);
fieldDecomposer.decomposeFields
(
surfaceSphericalTensorFields
);
fieldDecomposer.decomposeFields(surfaceSymmTensorFields);
fieldDecomposer.decomposeFields(surfaceTensorFields);
@ -1075,6 +1133,7 @@ int main(int argc, char *argv[])
}
}
}
}
Info<< "\nEnd.\n" << endl;

View File

@ -1,11 +1,13 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude
-I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lgenericPatchFields \
-llagrangian \
-lmeshTools \
-lreconstruct
-lreconstruct \
-lregionModels

View File

@ -25,7 +25,7 @@ Application
reconstructPar
Description
Reconstructs a mesh and fields of a case that is decomposed for parallel
Reconstructs fields of a case that is decomposed for parallel
execution of OpenFOAM.
\*---------------------------------------------------------------------------*/
@ -36,6 +36,7 @@ Description
#include "fvCFD.H"
#include "IOobjectList.H"
#include "processorMeshes.H"
#include "regionProperties.H"
#include "fvFieldReconstructor.H"
#include "pointFieldReconstructor.H"
#include "reconstructLagrangian.H"
@ -44,11 +45,21 @@ Description
int main(int argc, char *argv[])
{
argList::addNote
(
"Reconstruct fields of a parallel case"
);
// enable -constant ... if someone really wants it
// enable -zeroTime to prevent accidentally trashing the initial fields
timeSelector::addOptions(true, true);
argList::noParallel();
# include "addRegionOption.H"
argList::addBoolOption
(
"allRegions",
"operate on all regions in regionProperties"
);
argList::addOption
(
"fields",
@ -102,6 +113,7 @@ int main(int argc, char *argv[])
const bool newTimes = args.optionFound("newTimes");
const bool allRegions = args.optionFound("allRegions");
// determine the processor count directly
@ -159,20 +171,69 @@ int main(int argc, char *argv[])
}
# include "createNamedMesh.H"
word regionDir = word::null;
if (regionName != fvMesh::defaultRegion)
{
regionDir = regionName;
}
// Set all times on processor meshes equal to reconstructed mesh
forAll(databases, procI)
{
databases[procI].setTime(runTime.timeName(), runTime.timeIndex());
}
wordList regionNames;
wordList regionDirs;
if (allRegions)
{
Info<< "Reconstructing for all regions in regionProperties" << nl
<< endl;
regionProperties rp(runTime);
forAllConstIter(HashTable<wordList>, rp, iter)
{
const wordList& regions = iter();
forAll(regions, i)
{
if (findIndex(regionNames, regions[i]) == -1)
{
regionNames.append(regions[i]);
}
}
}
regionDirs = regionNames;
}
else
{
word regionName;
if (args.optionReadIfPresent("region", regionName))
{
regionNames = wordList(1, regionName);
regionDirs = regionNames;
}
else
{
regionNames = wordList(1, fvMesh::defaultRegion);
regionDirs = wordList(1, word::null);
}
}
forAll(regionNames, regionI)
{
const word& regionName = regionNames[regionI];
const word& regionDir = regionDirs[regionI];
Info<< "\n\nReconstructing fields for mesh " << regionName << nl
<< endl;
fvMesh mesh
(
IOobject
(
regionName,
runTime.timeName(),
runTime,
Foam::IOobject::MUST_READ
)
);
// Read all meshes and addressing to reconstructed mesh
processorMeshes procMeshes(databases, regionName);
@ -223,14 +284,17 @@ int main(int argc, char *argv[])
if (procStat == fvMesh::POINTS_MOVED)
{
// Reconstruct the points for moving mesh cases and write them out
// Reconstruct the points for moving mesh cases and write
// them out
procMeshes.reconstructPoints(mesh);
}
else if (meshStat != procStat)
{
WarningIn(args.executable())
<< "readUpdate for the reconstructed mesh:" << meshStat << nl
<< "readUpdate for the processor meshes :" << procStat << nl
<< "readUpdate for the reconstructed mesh:"
<< meshStat << nl
<< "readUpdate for the processor meshes :"
<< procStat << nl
<< "These should be equal or your addressing"
<< " might be incorrect."
<< " Please check your time directories for any "
@ -239,7 +303,11 @@ int main(int argc, char *argv[])
// Get list of objects from processor0 database
IOobjectList objects(procMeshes.meshes()[0], databases[0].timeName());
IOobjectList objects
(
procMeshes.meshes()[0],
databases[0].timeName()
);
{
// If there are any FV fields, reconstruct them
@ -264,7 +332,8 @@ int main(int argc, char *argv[])
objects,
selectedFields
);
fvReconstructor.reconstructFvVolumeInternalFields<sphericalTensor>
fvReconstructor.reconstructFvVolumeInternalFields
<sphericalTensor>
(
objects,
selectedFields
@ -346,7 +415,11 @@ int main(int argc, char *argv[])
forAll(pMeshes, procI)
{
pMeshes.set(procI, new pointMesh(procMeshes.meshes()[procI]));
pMeshes.set
(
procI,
new pointMesh(procMeshes.meshes()[procI])
);
}
pointFieldReconstructor pointReconstructor
@ -407,14 +480,17 @@ int main(int argc, char *argv[])
(
readDir
(
databases[procI].timePath() / regionDir / cloud::prefix,
databases[procI].timePath()
/ regionDir
/ cloud::prefix,
fileName::DIRECTORY
)
);
forAll(cloudDirs, i)
{
// Check if we already have cloud objects for this cloudname
// Check if we already have cloud objects for this
// cloudname
HashTable<IOobjectList>::const_iterator iter =
cloudObjects.find(cloudDirs[i]);
@ -428,7 +504,10 @@ int main(int argc, char *argv[])
cloud::prefix/cloudDirs[i]
);
IOobject* positionsPtr = sprayObjs.lookup("positions");
IOobject* positionsPtr = sprayObjs.lookup
(
"positions"
);
if (positionsPtr)
{
@ -444,7 +523,10 @@ int main(int argc, char *argv[])
// Pass2: reconstruct the cloud
forAllConstIter(HashTable<IOobjectList>, cloudObjects, iter)
{
const word cloudName = string::validate<word>(iter.key());
const word cloudName = string::validate<word>
(
iter.key()
);
// Objects (on arbitrary processor)
const IOobjectList& sprayObjs = iter();
@ -563,10 +645,13 @@ int main(int argc, char *argv[])
Info<< "No lagrangian fields" << nl << endl;
}
}
}
}
// If there are any "uniform" directories copy them from
// the master processor
forAll(timeDirs, timeI)
{
fileName uniformDir0 = databases[0].timePath()/"uniform";
if (isDir(uniformDir0))
{

View File

@ -107,7 +107,6 @@
<BooleanDomain name="bool"/>
<Documentation>
Use vtkPolyhedron instead of decomposing polyhedra.
!!Actually uses vtkConvexPointSet until this is properly supported in VTK!!
</Documentation>
</IntVectorProperty>
@ -154,6 +153,20 @@
</Documentation>
</IntVectorProperty>
<!-- Show Groups Only check-box -->
<IntVectorProperty
name="UiShowGroupsOnly"
command="SetShowGroupsOnly"
number_of_elements="1"
default_values="0"
is_internal="1"
animateable="0">
<BooleanDomain name="bool"/>
<Documentation>
Show groups only
</Documentation>
</IntVectorProperty>
<!-- Force GUI update check box -->
<IntVectorProperty
name="UpdateGUI"
@ -193,7 +206,8 @@
</RequiredProperties>
</ArraySelectionDomain>
<Documentation>
This property contains a list of the mesh parts (patches, sets, zones).
This property contains a list of the mesh parts
(patches, groups, sets, zones).
</Documentation>
</StringVectorProperty>
@ -281,6 +295,7 @@
<Property name="UiZeroTime" show="0"/>
<Property name="UiRefresh" show="0"/>
<Property name="UiShowPatchNames" show="0"/>
<Property name="UiShowGroupsOnly" show="0"/>
<Property name="UiIncludeSets" show="0"/>
<Property name="UiIncludeZones" show="0"/>
</Hints>

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -109,7 +109,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
QFrame* hline1 = new QFrame(this);
hline1->setFrameStyle(QFrame::HLine | QFrame::Sunken);
form->addWidget(hline1, 1, 0, 1, 2);
form->addWidget(hline1, 1, 0, 1, 3);
// checkbox for caching mesh
if ((prop = this->proxy()->GetProperty("UiCacheMesh")) != 0)
@ -166,6 +166,34 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
}
// checkbox for Groups Only
if ((prop = this->proxy()->GetProperty("UiShowGroupsOnly")) != 0)
{
// immediate update on the Server Manager side
prop->SetImmediateUpdate(true);
ShowGroupsOnly_ = new QCheckBox("Groups Only");
ShowGroupsOnly_->setChecked
(
vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
);
ShowGroupsOnly_->setToolTip
(
"Show patchGroups only."
);
// row/col 2, 2
form->addWidget(ShowGroupsOnly_, 2, 2, Qt::AlignLeft);
connect
(
ShowGroupsOnly_,
SIGNAL(stateChanged(int)),
this,
SLOT(ShowGroupsOnlyToggled())
);
}
// checkbox for include sets
if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0)
{
@ -278,7 +306,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
QFrame* hline2 = new QFrame(this);
hline2->setFrameStyle(QFrame::HLine | QFrame::Sunken);
form->addWidget(hline2, 5, 0, 1, 2);
form->addWidget(hline2, 5, 0, 1, 3);
}
@ -336,6 +364,22 @@ void pqPV3FoamReaderPanel::ShowPatchNamesToggled()
}
void pqPV3FoamReaderPanel::ShowGroupsOnlyToggled()
{
vtkSMProperty* prop;
vtkSMIntVectorProperty::SafeDownCast
(
this->proxy()->GetProperty("UiShowGroupsOnly")
)->SetElement(0, ShowGroupsOnly_->isChecked());
if ((prop = this->proxy()->GetProperty("PartArrayStatus")) != 0)
{
this->proxy()->UpdatePropertyInformation(prop);
}
}
void pqPV3FoamReaderPanel::IncludeSetsToggled()
{
vtkSMProperty* prop;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -71,6 +71,9 @@ class pqPV3FoamReaderPanel
//- Show Patch Names checkbox
QCheckBox* ShowPatchNames_;
//- Show Groups Only checkbox
QCheckBox* ShowGroupsOnly_;
//- IncludeSets checkbox
QCheckBox* IncludeSets_;
@ -90,6 +93,7 @@ protected slots:
void ZeroTimeToggled();
void RefreshPressed();
void ShowPatchNamesToggled();
void ShowGroupsOnlyToggled();
void IncludeSetsToggled();
void IncludeZonesToggled();
void InterpolateVolFieldsToggled();

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -85,6 +85,7 @@ vtkPV3FoamReader::vtkPV3FoamReader()
IncludeSets = 0;
IncludeZones = 0;
ShowPatchNames = 0;
ShowGroupsOnly = 0;
InterpolateVolFields = 1;
UpdateGUI = 0;
@ -463,6 +464,19 @@ void vtkPV3FoamReader::SetShowPatchNames(int val)
}
void vtkPV3FoamReader::SetShowGroupsOnly(int val)
{
if (ShowGroupsOnly != val)
{
ShowGroupsOnly = val;
if (foamData_)
{
foamData_->updateInfo();
}
}
}
void vtkPV3FoamReader::updatePatchNamesView(const bool show)
{
pqApplicationCore* appCore = pqApplicationCore::instance();

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -121,6 +121,11 @@ public:
virtual void SetShowPatchNames(int);
vtkGetMacro(ShowPatchNames, int);
// Description:
// OpenFOAM display patchGroups
virtual void SetShowGroupsOnly(int);
vtkGetMacro(ShowGroupsOnly, int);
// Description:
// OpenFOAM volField interpolation
vtkSetMacro(InterpolateVolFields, int);
@ -231,6 +236,7 @@ private:
int IncludeSets;
int IncludeZones;
int ShowPatchNames;
int ShowGroupsOnly;
int InterpolateVolFields;
//- Dummy variable/switch to invoke a reader update

View File

@ -2,7 +2,6 @@ vtkPV3Foam.C
vtkPV3FoamFields.C
vtkPV3FoamMesh.C
vtkPV3FoamMeshLagrangian.C
vtkPV3FoamMeshPatch.C
vtkPV3FoamMeshSet.C
vtkPV3FoamMeshVolume.C
vtkPV3FoamMeshZone.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,7 @@ SourceFiles
vtkPV3FoamFields.C
vtkPV3FoamMesh.C
vtkPV3FoamMeshLagrangian.C
vtkPV3FoamMeshPatch.C
vtkPV3FoamTemplates.C
vtkPV3FoamMeshSet.C
vtkPV3FoamMeshVolume.C
vtkPV3FoamMeshZone.C
@ -443,7 +443,8 @@ class vtkPV3Foam
);
//- Add patch mesh
vtkPolyData* patchVTKMesh(const polyPatch&);
template<class PatchType>
vtkPolyData* patchVTKMesh(const word& name, const PatchType&);
//- Add face zone mesh
vtkPolyData* faceZoneVTKMesh
@ -736,6 +737,12 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include "vtkPV3FoamTemplates.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,6 +31,7 @@ License
#include "pointSet.H"
#include "fvMeshSubset.H"
#include "vtkPV3FoamReader.h"
#include "uindirectPrimitivePatch.H"
// VTK includes
#include "vtkDataArraySelection.h"
@ -171,21 +172,50 @@ void Foam::vtkPV3Foam::convertMeshPatches
for (int partId = range.start(); partId < range.end(); ++partId)
{
const word patchName = getPartName(partId);
const label patchId = patches.findPatchID(patchName);
if (!partStatus_[partId] || patchId < 0)
if (!partStatus_[partId])
{
continue;
}
const word patchName = getPartName(partId);
labelHashSet patchIds(patches.patchSet(List<wordRe>(1, patchName)));
if (debug)
{
Info<< "Creating VTK mesh for patch[" << patchId <<"] "
Info<< "Creating VTK mesh for patches [" << patchIds <<"] "
<< patchName << endl;
}
vtkPolyData* vtkmesh = patchVTKMesh(patches[patchId]);
vtkPolyData* vtkmesh = NULL;
if (patchIds.size() == 1)
{
vtkmesh = patchVTKMesh(patchName, patches[patchIds.begin().key()]);
}
else
{
// Patch group. Collect patch faces.
label sz = 0;
forAllConstIter(labelHashSet, patchIds, iter)
{
sz += patches[iter.key()].size();
}
labelList meshFaceLabels(sz);
sz = 0;
forAllConstIter(labelHashSet, patchIds, iter)
{
const polyPatch& pp = patches[iter.key()];
forAll(pp, i)
{
meshFaceLabels[sz++] = pp.start()+i;
}
}
UIndirectList<face> fcs(mesh.faces(), meshFaceLabels);
uindirectPrimitivePatch pp(fcs, mesh.points());
vtkmesh = patchVTKMesh(patchName, pp);
}
if (vtkmesh)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -37,13 +37,18 @@ License
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh(const polyPatch& p)
template<class PatchType>
vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh
(
const word& name,
const PatchType& p
)
{
vtkPolyData* vtkmesh = vtkPolyData::New();
if (debug)
{
Info<< "<beg> Foam::vtkPV3Foam::patchVTKMesh - " << p.name() << endl;
Info<< "<beg> Foam::vtkPV3Foam::patchVTKMesh - " << name << endl;
printMemory();
}
@ -83,7 +88,7 @@ vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh(const polyPatch& p)
if (debug)
{
Info<< "<end> Foam::vtkPV3Foam::patchVTKMesh - " << p.name() << endl;
Info<< "<end> Foam::vtkPV3Foam::patchVTKMesh - " << name << endl;
printMemory();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -241,7 +241,6 @@ void Foam::vtkPV3Foam::updateInfoPatches
{
const polyBoundaryMesh& patches = meshPtr_->boundaryMesh();
const HashTable<labelList, word>& groups = patches.groupPatchIDs();
const wordList allPatchNames = patches.names();
// Add patch groups
@ -273,13 +272,19 @@ void Foam::vtkPV3Foam::updateInfoPatches
if (enabledEntriesSet.found(vtkGrpName))
{
if (!reader_->GetShowGroupsOnly())
{
enabledEntriesSet.erase(vtkGrpName);
forAll(patchIDs, i)
{
const polyPatch& pp = patches[patchIDs[i]];
if (pp.size())
{
string vtkPatchName = pp.name() + " - patch";
enabledEntriesSet.insert(vtkPatchName);
}
enabledEntriesSet.erase(vtkGrpName);
}
}
}
}
}
@ -288,6 +293,8 @@ void Foam::vtkPV3Foam::updateInfoPatches
// Add patches
// ~~~~~~~~~~~
if (!reader_->GetShowGroupsOnly())
{
forAll(patches, patchI)
{
const polyPatch& pp = patches[patchI];
@ -304,6 +311,7 @@ void Foam::vtkPV3Foam::updateInfoPatches
}
}
}
}
else
{
// mesh not loaded - read from file
@ -356,6 +364,7 @@ void Foam::vtkPV3Foam::updateInfoPatches
wordList groupNames;
patchDict.readIfPresent("inGroups", groupNames);
forAll(groupNames, groupI)
{
HashTable<labelList, word>::iterator iter = groups.find
@ -394,20 +403,25 @@ void Foam::vtkPV3Foam::updateInfoPatches
if (nFaces)
{
string vtkGrpName = groupName + " - group";
arraySelection->AddArray(vtkGrpName.c_str());
++nPatches;
if (enabledEntriesSet.found(vtkGrpName))
{
if (!reader_->GetShowGroupsOnly())
{
enabledEntriesSet.erase(vtkGrpName);
forAll(patchIDs, i)
{
if (sizes[patchIDs[i]])
{
string vtkPatchName =
names[patchIDs[i]] + " - patch";
enabledEntriesSet.insert(vtkPatchName);
}
enabledEntriesSet.erase(vtkGrpName);
}
}
}
}
}
@ -416,6 +430,8 @@ void Foam::vtkPV3Foam::updateInfoPatches
// Add (non-zero) patches to the list of mesh parts
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (!reader_->GetShowGroupsOnly())
{
forAll(names, patchI)
{
// Valid patch if nFace > 0 - add patch to GUI list
@ -431,6 +447,7 @@ void Foam::vtkPV3Foam::updateInfoPatches
}
}
}
}
arrayRangePatches_ += nPatches;
// Update enabled entries in case of group selection

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -73,18 +73,18 @@ extern "C"
makeRemovablePatchTypeField
(
fvPatch${FieldType},
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}
);
const char* const ${typeName}FixedValueFvPatch${FieldType}::SHA1sum =
const char* const ${typeName}MixedValueFvPatch${FieldType}::SHA1sum =
"${SHA1sum}";
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
${typeName}FixedValueFvPatch${FieldType}::
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}::
${typeName}MixedValueFvPatch${FieldType}
(
const fvPatch& p,
const DimensionedField<${TemplateType}, volMesh>& iF
@ -100,10 +100,10 @@ ${typeName}FixedValueFvPatch${FieldType}
}
${typeName}FixedValueFvPatch${FieldType}::
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}::
${typeName}MixedValueFvPatch${FieldType}
(
const ${typeName}FixedValueFvPatch${FieldType}& ptf,
const ${typeName}MixedValueFvPatch${FieldType}& ptf,
const fvPatch& p,
const DimensionedField<${TemplateType}, volMesh>& iF,
const fvPatchFieldMapper& mapper
@ -119,8 +119,8 @@ ${typeName}FixedValueFvPatch${FieldType}
}
${typeName}FixedValueFvPatch${FieldType}::
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}::
${typeName}MixedValueFvPatch${FieldType}
(
const fvPatch& p,
const DimensionedField<${TemplateType}, volMesh>& iF,
@ -137,10 +137,10 @@ ${typeName}FixedValueFvPatch${FieldType}
}
${typeName}FixedValueFvPatch${FieldType}::
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}::
${typeName}MixedValueFvPatch${FieldType}
(
const ${typeName}FixedValueFvPatch${FieldType}& ptf
const ${typeName}MixedValueFvPatch${FieldType}& ptf
)
:
mixedFvPatchField<${TemplateType}>(ptf)
@ -153,10 +153,10 @@ ${typeName}FixedValueFvPatch${FieldType}
}
${typeName}FixedValueFvPatch${FieldType}::
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}::
${typeName}MixedValueFvPatch${FieldType}
(
const ${typeName}FixedValueFvPatch${FieldType}& ptf,
const ${typeName}MixedValueFvPatch${FieldType}& ptf,
const DimensionedField<${TemplateType}, volMesh>& iF
)
:
@ -172,8 +172,8 @@ ${typeName}FixedValueFvPatch${FieldType}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
${typeName}FixedValueFvPatch${FieldType}::
~${typeName}FixedValueFvPatch${FieldType}()
${typeName}MixedValueFvPatch${FieldType}::
~${typeName}MixedValueFvPatch${FieldType}()
{
if (${verbose:-false})
{
@ -184,7 +184,7 @@ ${typeName}FixedValueFvPatch${FieldType}::
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void ${typeName}FixedValueFvPatch${FieldType}::updateCoeffs()
void ${typeName}MixedValueFvPatch${FieldType}::updateCoeffs()
{
if (this->updated())
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -43,10 +43,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
A templated FixedValueFvPatch
A templated MixedValueFvPatchField
\*---------------------------------------------------------------------------*/
class ${typeName}FixedValueFvPatch${FieldType}
class ${typeName}MixedValueFvPatch${FieldType}
:
public mixedFvPatchField<${TemplateType}>
{
@ -62,14 +62,14 @@ public:
// Constructors
//- Construct from patch and internal field
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}
(
const fvPatch&,
const DimensionedField<${TemplateType}, volMesh>&
);
//- Construct from patch, internal field and dictionary
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}
(
const fvPatch&,
const DimensionedField<${TemplateType}, volMesh>&,
@ -77,18 +77,18 @@ public:
);
//- Construct by mapping a copy onto a new patch
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}
(
const ${typeName}FixedValueFvPatch${FieldType}&,
const ${typeName}MixedValueFvPatch${FieldType}&,
const fvPatch&,
const DimensionedField<${TemplateType}, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}
(
const ${typeName}FixedValueFvPatch${FieldType}&
const ${typeName}MixedValueFvPatch${FieldType}&
);
//- Construct and return a clone
@ -96,14 +96,14 @@ public:
{
return tmp< fvPatch${FieldType} >
(
new ${typeName}FixedValueFvPatch${FieldType}(*this)
new ${typeName}MixedValueFvPatch${FieldType}(*this)
);
}
//- Construct as copy setting internal field reference
${typeName}FixedValueFvPatch${FieldType}
${typeName}MixedValueFvPatch${FieldType}
(
const ${typeName}FixedValueFvPatch${FieldType}&,
const ${typeName}MixedValueFvPatch${FieldType}&,
const DimensionedField<${TemplateType}, volMesh>&
);
@ -115,13 +115,13 @@ public:
{
return tmp< fvPatch${FieldType} >
(
new ${typeName}FixedValueFvPatch${FieldType}(*this, iF)
new ${typeName}MixedValueFvPatch${FieldType}(*this, iF)
);
}
//- Destructor
virtual ~${typeName}FixedValueFvPatch${FieldType}();
virtual ~${typeName}MixedValueFvPatch${FieldType}();
// Member functions

View File

@ -989,7 +989,7 @@ DimensionSets
// Set of units used for printing. Can be any basic or derived
// but not scaled (only supported for dimensionedScalar, etc)
printUnits (kg m s K mol A Cd);
writeUnits (kg m s K mol A Cd);
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -104,11 +104,8 @@ Foam::functionEntries::codeStream::getFunction
// codeName: codeStream + _<sha1>
// codeDir : _<sha1>
dynamicCode dynCode
(
"codeStream" + context.sha1().str(true),
context.sha1().str(true)
);
std::string sha1Str(context.sha1().str(true));
dynamicCode dynCode("codeStream" + sha1Str, sha1Str);
// Load library if not already loaded
// Version information is encoded in the libPath (encoded with the SHA1)

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -43,7 +43,9 @@ Description
code
#{
this->refValue() = min(10, 0.1*this->db().time().value());
this->refValue() =
vector(1, 0, 0)
*min(10, 0.1*this->db().time().value());
this->refGrad() = vector::zero;
this->valueFraction() = 1.0;
#};

View File

@ -26,6 +26,7 @@ License
#include "writeDictionary.H"
#include "dictionary.H"
#include "Time.H"
#include "HashSet.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -108,7 +109,9 @@ Foam::writeDictionary::~writeDictionary()
void Foam::writeDictionary::read(const dictionary& dict)
{
dict.lookup("dictNames") >> dictNames_;
wordList dictNames(dict.lookup("dictNames"));
HashSet<word> uniqueNames(dictNames);
dictNames_ = uniqueNames.toc();
digests_.setSize(dictNames_.size(), SHA1Digest());

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,11 @@ Class
regionProperties
Description
Simple class to hold region information for coupled region simulations
Simple class to hold region information for coupled region simulations.
Gives per physics ('fluid', 'solid') the names of the regions. There
is no assumption on this level that one region should only have one
set of physics.
SourceFiles
regionProperties.C

View File

@ -31,27 +31,18 @@ done
#runApplication `getApplication`
# Decompose
for i in bottomAir topAir heater leftSolid rightSolid
do
decomposePar -region $i > log.decomposePar.$i 2>&1
done
runApplication decomposePar -allRegions
# Run
runParallel `getApplication` 4
# Reconstruct
for i in bottomAir topAir heater leftSolid rightSolid
do
reconstructPar -region $i > log.reconstructPar.$i2 >&1
done
runApplication reconstructPar -allRegions
echo
echo "creating files for paraview post-processing"
echo
for i in bottomAir topAir heater leftSolid rightSolid
do
paraFoam -touch -region $i
done
paraFoam -touchAll
# ----------------------------------------------------------------- end-of-file

View File

@ -31,19 +31,13 @@ done
#runApplication chtMultiRegionFoam
# Decompose
for i in bottomWater topAir heater leftSolid rightSolid
do
decomposePar -region $i > log.decomposePar.$i 2>&1
done
runApplication decomposePar -allRegions
# Run
runParallel `getApplication` 4
# Reconstruct
for i in bottomWater topAir heater leftSolid rightSolid
do
reconstructPar -region $i > log.reconstructPar.$i 2>&1
done
runApplication reconstructPar -allRegions
echo

View File

@ -36,27 +36,18 @@ runApplication `getApplication`
## Decompose
#for i in bottomAir topAir heater leftSolid rightSolid
#do
# decomposePar -region $i > log.decomposePar.$i 2>&1
#done
#runApplication decomposePar -allRegions
#
## Run
#runParallel `getApplication` 4
#
## Reconstruct
#for i in bottomAir topAir heater leftSolid rightSolid
#do
# reconstructPar -region $i > log.reconstructPar.$i 2>&1
#done
#runApplication reconstructPar -allRegions
echo
echo "creating files for paraview post-processing"
echo
for i in bottomAir topAir heater leftSolid rightSolid
do
paraFoam -touch -region $i
done
paraFoam -touchAll
# ----------------------------------------------------------------- end-of-file

View File

@ -31,19 +31,13 @@ done
runApplication `getApplication`
## Decompose
#for i in bottomAir topAir heater leftSolid rightSolid
#do
# decomposePar -region $i > log.decomposePar.$i 2>&1
#done
#runApplication decomposePar -allRegions
#
## Run
#runParallel `getApplication` 4
#
## Reconstruct
#for i in bottomAir topAir heater leftSolid rightSolid
#do
# reconstructPar -region $i > log.reconstructPar.$i 2>&1
#done
#runApplication reconstructPar -allRegions
echo

View File

@ -44,10 +44,7 @@ runApplication `getApplication`
## Run in parallel
## Decompose
#for i in bottomAir topAir heater leftSolid rightSolid
#do
# decomposePar -region $i > log.decomposePar.$i 2>&1
#done
#runApplication decomposePar -allRegions
#
#for i in bottomAir topAir
#do
@ -63,10 +60,7 @@ runApplication `getApplication`
#runParallel `getApplication` 4
#
## Reconstruct
#for i in bottomAir topAir heater leftSolid rightSolid
#do
# reconstructPar -region $i > log.reconstructPar.$i 2>&1
#done
#runApplication reconstructPar -allRegions
echo