mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://dm/home/dm4/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -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
|
||||||
@ -41,6 +41,45 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< ds*dt << " " << dt*ds << endl;
|
Info<< ds*dt << " " << dt*ds << endl;
|
||||||
|
|
||||||
|
|
||||||
|
// dimensionSet
|
||||||
|
{
|
||||||
|
Pout<< "dimensionSet construct from is:"
|
||||||
|
<< dimensionSet(IStringStream("[Pa m^2 s^-2]")())
|
||||||
|
<< endl;
|
||||||
|
|
||||||
|
IStringStream is("[Pa m^2 s^-2]");
|
||||||
|
dimensionSet dset(dimless);
|
||||||
|
is >> dset;
|
||||||
|
Pout<< "dimensionSet read:" << dset << endl;
|
||||||
|
}
|
||||||
|
// dimensionedType
|
||||||
|
{
|
||||||
|
Pout<< "construct from is:"
|
||||||
|
<< dimensionedScalar(IStringStream("bla [Pa mm^2 s^-2] 3.0")())
|
||||||
|
<< endl;
|
||||||
|
Pout<< "construct from name,is:"
|
||||||
|
<< dimensionedScalar
|
||||||
|
(
|
||||||
|
"ABC",
|
||||||
|
IStringStream("[Pa mm^2 s^-2] 3.0")()
|
||||||
|
) << endl;
|
||||||
|
Pout<< "construct from name,dimensionSet,is:"
|
||||||
|
<< dimensionedScalar
|
||||||
|
(
|
||||||
|
"ABC",
|
||||||
|
dimLength,
|
||||||
|
IStringStream("bla [mm] 3.0")()
|
||||||
|
) << endl;
|
||||||
|
{
|
||||||
|
IStringStream is("bla [mm] 3.0");
|
||||||
|
dimensionedScalar ds;
|
||||||
|
is >> ds;
|
||||||
|
Pout<< "read:" << ds << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@ -55,6 +55,8 @@ Description
|
|||||||
this if you don't mind having disconnected domains in a single region.
|
this if you don't mind having disconnected domains in a single region.
|
||||||
This option requires all cells to be in one (and one only) cellZone.
|
This option requires all cells to be in one (and one only) cellZone.
|
||||||
|
|
||||||
|
- prefixRegion prefixes all normal patches with region name (interface
|
||||||
|
(patches already have region name prefix)
|
||||||
|
|
||||||
- Should work in parallel.
|
- Should work in parallel.
|
||||||
cellZones can differ on either side of processor boundaries in which case
|
cellZones can differ on either side of processor boundaries in which case
|
||||||
@ -389,6 +391,40 @@ void reorderPatches
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Prepend prefix to selected patches.
|
||||||
|
void renamePatches
|
||||||
|
(
|
||||||
|
fvMesh& mesh,
|
||||||
|
const word& prefix,
|
||||||
|
const labelList& patchesToRename
|
||||||
|
)
|
||||||
|
{
|
||||||
|
polyBoundaryMesh& polyPatches =
|
||||||
|
const_cast<polyBoundaryMesh&>(mesh.boundaryMesh());
|
||||||
|
forAll(patchesToRename, i)
|
||||||
|
{
|
||||||
|
label patchI = patchesToRename[i];
|
||||||
|
polyPatch& pp = polyPatches[patchI];
|
||||||
|
|
||||||
|
if (isA<coupledPolyPatch>(pp))
|
||||||
|
{
|
||||||
|
WarningIn
|
||||||
|
(
|
||||||
|
"renamePatches(fvMesh&, const word&, const labelList&"
|
||||||
|
) << "Encountered coupled patch " << pp.name()
|
||||||
|
<< ". Will only rename the patch itself,"
|
||||||
|
<< " not any referred patches."
|
||||||
|
<< " This might have to be done by hand."
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
pp.name() = prefix + '_' + pp.name();
|
||||||
|
}
|
||||||
|
// Recalculate any demand driven data (e.g. group to name lookup)
|
||||||
|
polyPatches.updateMesh();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class GeoField>
|
template<class GeoField>
|
||||||
void subsetVolFields
|
void subsetVolFields
|
||||||
(
|
(
|
||||||
@ -987,6 +1023,7 @@ void createAndWriteRegion
|
|||||||
const fvMesh& mesh,
|
const fvMesh& mesh,
|
||||||
const labelList& cellRegion,
|
const labelList& cellRegion,
|
||||||
const wordList& regionNames,
|
const wordList& regionNames,
|
||||||
|
const bool prefixRegion,
|
||||||
const labelList& faceToInterface,
|
const labelList& faceToInterface,
|
||||||
const labelList& interfacePatches,
|
const labelList& interfacePatches,
|
||||||
const label regionI,
|
const label regionI,
|
||||||
@ -1017,6 +1054,7 @@ void createAndWriteRegion
|
|||||||
addedPatches.insert(interfacePatches[interfaceI]+1);
|
addedPatches.insert(interfacePatches[interfaceI]+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Info<< "Mapping fields" << endl;
|
Info<< "Mapping fields" << endl;
|
||||||
|
|
||||||
// Map existing fields
|
// Map existing fields
|
||||||
@ -1109,6 +1147,7 @@ void createAndWriteRegion
|
|||||||
|
|
||||||
// Create reordering list to move patches-to-be-deleted to end
|
// Create reordering list to move patches-to-be-deleted to end
|
||||||
labelList oldToNew(newPatches.size(), -1);
|
labelList oldToNew(newPatches.size(), -1);
|
||||||
|
DynamicList<label> sharedPatches(newPatches.size());
|
||||||
label newI = 0;
|
label newI = 0;
|
||||||
|
|
||||||
Info<< "Deleting empty patches" << endl;
|
Info<< "Deleting empty patches" << endl;
|
||||||
@ -1122,7 +1161,12 @@ void createAndWriteRegion
|
|||||||
{
|
{
|
||||||
if (returnReduce(pp.size(), sumOp<label>()) > 0)
|
if (returnReduce(pp.size(), sumOp<label>()) > 0)
|
||||||
{
|
{
|
||||||
oldToNew[patchI] = newI++;
|
oldToNew[patchI] = newI;
|
||||||
|
if (!addedPatches.found(patchI))
|
||||||
|
{
|
||||||
|
sharedPatches.append(newI);
|
||||||
|
}
|
||||||
|
newI++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1152,6 +1196,15 @@ void createAndWriteRegion
|
|||||||
reorderPatches(newMesh(), oldToNew, nNewPatches);
|
reorderPatches(newMesh(), oldToNew, nNewPatches);
|
||||||
|
|
||||||
|
|
||||||
|
// Rename shared patches with region name
|
||||||
|
if (prefixRegion)
|
||||||
|
{
|
||||||
|
Info<< "Prefixing patches with region name" << endl;
|
||||||
|
|
||||||
|
renamePatches(newMesh(), regionNames[regionI], sharedPatches);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Info<< "Writing new mesh" << endl;
|
Info<< "Writing new mesh" << endl;
|
||||||
|
|
||||||
newMesh().setInstance(newMeshInstance);
|
newMesh().setInstance(newMeshInstance);
|
||||||
@ -1672,6 +1725,11 @@ int main(int argc, char *argv[])
|
|||||||
"useFaceZones",
|
"useFaceZones",
|
||||||
"use faceZones to patch inter-region faces instead of single patch"
|
"use faceZones to patch inter-region faces instead of single patch"
|
||||||
);
|
);
|
||||||
|
argList::addBoolOption
|
||||||
|
(
|
||||||
|
"prefixRegion",
|
||||||
|
"prefix region name to all patches, not just coupling patches"
|
||||||
|
);
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
@ -1696,6 +1754,8 @@ int main(int argc, char *argv[])
|
|||||||
const bool detectOnly = args.optionFound("detectOnly");
|
const bool detectOnly = args.optionFound("detectOnly");
|
||||||
const bool sloppyCellZones = args.optionFound("sloppyCellZones");
|
const bool sloppyCellZones = args.optionFound("sloppyCellZones");
|
||||||
const bool useFaceZones = args.optionFound("useFaceZones");
|
const bool useFaceZones = args.optionFound("useFaceZones");
|
||||||
|
const bool prefixRegion = args.optionFound("prefixRegion");
|
||||||
|
|
||||||
|
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
@ -2226,6 +2286,7 @@ int main(int argc, char *argv[])
|
|||||||
mesh,
|
mesh,
|
||||||
cellRegion,
|
cellRegion,
|
||||||
regionNames,
|
regionNames,
|
||||||
|
prefixRegion,
|
||||||
faceToInterface,
|
faceToInterface,
|
||||||
interfacePatches,
|
interfacePatches,
|
||||||
regionI,
|
regionI,
|
||||||
@ -2246,6 +2307,7 @@ int main(int argc, char *argv[])
|
|||||||
mesh,
|
mesh,
|
||||||
cellRegion,
|
cellRegion,
|
||||||
regionNames,
|
regionNames,
|
||||||
|
prefixRegion,
|
||||||
faceToInterface,
|
faceToInterface,
|
||||||
interfacePatches,
|
interfacePatches,
|
||||||
regionI,
|
regionI,
|
||||||
@ -2266,6 +2328,7 @@ int main(int argc, char *argv[])
|
|||||||
mesh,
|
mesh,
|
||||||
cellRegion,
|
cellRegion,
|
||||||
regionNames,
|
regionNames,
|
||||||
|
prefixRegion,
|
||||||
faceToInterface,
|
faceToInterface,
|
||||||
interfacePatches,
|
interfacePatches,
|
||||||
regionI,
|
regionI,
|
||||||
|
|||||||
Reference in New Issue
Block a user