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)/parallel/decompose/decompositionMethods/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/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 = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
@ -11,4 +12,5 @@ EXE_LIBS = \
-lgenericPatchFields \ -lgenericPatchFields \
-ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp \ -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp \
-llagrangian \ -llagrangian \
-lmeshTools -lmeshTools \
-lregionModels

View File

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

View File

@ -1,11 +1,13 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/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 = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lgenericPatchFields \ -lgenericPatchFields \
-llagrangian \ -llagrangian \
-lmeshTools \ -lmeshTools \
-lreconstruct -lreconstruct \
-lregionModels

View File

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

View File

@ -107,7 +107,6 @@
<BooleanDomain name="bool"/> <BooleanDomain name="bool"/>
<Documentation> <Documentation>
Use vtkPolyhedron instead of decomposing polyhedra. Use vtkPolyhedron instead of decomposing polyhedra.
!!Actually uses vtkConvexPointSet until this is properly supported in VTK!!
</Documentation> </Documentation>
</IntVectorProperty> </IntVectorProperty>
@ -154,6 +153,20 @@
</Documentation> </Documentation>
</IntVectorProperty> </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 --> <!-- Force GUI update check box -->
<IntVectorProperty <IntVectorProperty
name="UpdateGUI" name="UpdateGUI"
@ -193,7 +206,8 @@
</RequiredProperties> </RequiredProperties>
</ArraySelectionDomain> </ArraySelectionDomain>
<Documentation> <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> </Documentation>
</StringVectorProperty> </StringVectorProperty>
@ -281,6 +295,7 @@
<Property name="UiZeroTime" show="0"/> <Property name="UiZeroTime" show="0"/>
<Property name="UiRefresh" show="0"/> <Property name="UiRefresh" show="0"/>
<Property name="UiShowPatchNames" show="0"/> <Property name="UiShowPatchNames" show="0"/>
<Property name="UiShowGroupsOnly" show="0"/>
<Property name="UiIncludeSets" show="0"/> <Property name="UiIncludeSets" show="0"/>
<Property name="UiIncludeZones" show="0"/> <Property name="UiIncludeZones" show="0"/>
</Hints> </Hints>

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -109,7 +109,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
QFrame* hline1 = new QFrame(this); QFrame* hline1 = new QFrame(this);
hline1->setFrameStyle(QFrame::HLine | QFrame::Sunken); hline1->setFrameStyle(QFrame::HLine | QFrame::Sunken);
form->addWidget(hline1, 1, 0, 1, 2); form->addWidget(hline1, 1, 0, 1, 3);
// checkbox for caching mesh // checkbox for caching mesh
if ((prop = this->proxy()->GetProperty("UiCacheMesh")) != 0) 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 // checkbox for include sets
if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0) if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0)
{ {
@ -278,7 +306,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
QFrame* hline2 = new QFrame(this); QFrame* hline2 = new QFrame(this);
hline2->setFrameStyle(QFrame::HLine | QFrame::Sunken); 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() void pqPV3FoamReaderPanel::IncludeSetsToggled()
{ {
vtkSMProperty* prop; vtkSMProperty* prop;

View File

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

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -85,6 +85,7 @@ vtkPV3FoamReader::vtkPV3FoamReader()
IncludeSets = 0; IncludeSets = 0;
IncludeZones = 0; IncludeZones = 0;
ShowPatchNames = 0; ShowPatchNames = 0;
ShowGroupsOnly = 0;
InterpolateVolFields = 1; InterpolateVolFields = 1;
UpdateGUI = 0; 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) void vtkPV3FoamReader::updatePatchNamesView(const bool show)
{ {
pqApplicationCore* appCore = pqApplicationCore::instance(); pqApplicationCore* appCore = pqApplicationCore::instance();

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -31,6 +31,7 @@ License
#include "pointSet.H" #include "pointSet.H"
#include "fvMeshSubset.H" #include "fvMeshSubset.H"
#include "vtkPV3FoamReader.h" #include "vtkPV3FoamReader.h"
#include "uindirectPrimitivePatch.H"
// VTK includes // VTK includes
#include "vtkDataArraySelection.h" #include "vtkDataArraySelection.h"
@ -171,21 +172,50 @@ void Foam::vtkPV3Foam::convertMeshPatches
for (int partId = range.start(); partId < range.end(); ++partId) for (int partId = range.start(); partId < range.end(); ++partId)
{ {
const word patchName = getPartName(partId); if (!partStatus_[partId])
const label patchId = patches.findPatchID(patchName);
if (!partStatus_[partId] || patchId < 0)
{ {
continue; continue;
} }
const word patchName = getPartName(partId);
labelHashSet patchIds(patches.patchSet(List<wordRe>(1, patchName)));
if (debug) if (debug)
{ {
Info<< "Creating VTK mesh for patch[" << patchId <<"] " Info<< "Creating VTK mesh for patches [" << patchIds <<"] "
<< patchName << endl; << 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) if (vtkmesh)
{ {

View File

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

View File

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

View File

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

View File

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

View File

@ -989,7 +989,7 @@ DimensionSets
// Set of units used for printing. Can be any basic or derived // Set of units used for printing. Can be any basic or derived
// but not scaled (only supported for dimensionedScalar, etc) // 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 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -104,11 +104,8 @@ Foam::functionEntries::codeStream::getFunction
// codeName: codeStream + _<sha1> // codeName: codeStream + _<sha1>
// codeDir : _<sha1> // codeDir : _<sha1>
dynamicCode dynCode std::string sha1Str(context.sha1().str(true));
( dynamicCode dynCode("codeStream" + sha1Str, sha1Str);
"codeStream" + context.sha1().str(true),
context.sha1().str(true)
);
// Load library if not already loaded // Load library if not already loaded
// Version information is encoded in the libPath (encoded with the SHA1) // 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 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License

View File

@ -43,7 +43,9 @@ Description
code 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->refGrad() = vector::zero;
this->valueFraction() = 1.0; this->valueFraction() = 1.0;
#}; #};

View File

@ -26,6 +26,7 @@ License
#include "writeDictionary.H" #include "writeDictionary.H"
#include "dictionary.H" #include "dictionary.H"
#include "Time.H" #include "Time.H"
#include "HashSet.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -108,7 +109,9 @@ Foam::writeDictionary::~writeDictionary()
void Foam::writeDictionary::read(const dictionary& dict) 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()); digests_.setSize(dictNames_.size(), SHA1Digest());

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -25,7 +25,11 @@ Class
regionProperties regionProperties
Description 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 SourceFiles
regionProperties.C regionProperties.C

View File

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

View File

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

View File

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

View File

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

View File

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