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
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,6 +41,45 @@ int main(int argc, char *argv[])
|
||||
|
||||
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;
|
||||
|
||||
return 0;
|
||||
|
||||
@ -55,6 +55,8 @@ Description
|
||||
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.
|
||||
|
||||
- prefixRegion prefixes all normal patches with region name (interface
|
||||
(patches already have region name prefix)
|
||||
|
||||
- Should work in parallel.
|
||||
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>
|
||||
void subsetVolFields
|
||||
(
|
||||
@ -987,6 +1023,7 @@ void createAndWriteRegion
|
||||
const fvMesh& mesh,
|
||||
const labelList& cellRegion,
|
||||
const wordList& regionNames,
|
||||
const bool prefixRegion,
|
||||
const labelList& faceToInterface,
|
||||
const labelList& interfacePatches,
|
||||
const label regionI,
|
||||
@ -1017,6 +1054,7 @@ void createAndWriteRegion
|
||||
addedPatches.insert(interfacePatches[interfaceI]+1);
|
||||
}
|
||||
|
||||
|
||||
Info<< "Mapping fields" << endl;
|
||||
|
||||
// Map existing fields
|
||||
@ -1109,6 +1147,7 @@ void createAndWriteRegion
|
||||
|
||||
// Create reordering list to move patches-to-be-deleted to end
|
||||
labelList oldToNew(newPatches.size(), -1);
|
||||
DynamicList<label> sharedPatches(newPatches.size());
|
||||
label newI = 0;
|
||||
|
||||
Info<< "Deleting empty patches" << endl;
|
||||
@ -1122,7 +1161,12 @@ void createAndWriteRegion
|
||||
{
|
||||
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);
|
||||
|
||||
|
||||
// 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;
|
||||
|
||||
newMesh().setInstance(newMeshInstance);
|
||||
@ -1672,6 +1725,11 @@ int main(int argc, char *argv[])
|
||||
"useFaceZones",
|
||||
"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 "createTime.H"
|
||||
@ -1696,6 +1754,8 @@ int main(int argc, char *argv[])
|
||||
const bool detectOnly = args.optionFound("detectOnly");
|
||||
const bool sloppyCellZones = args.optionFound("sloppyCellZones");
|
||||
const bool useFaceZones = args.optionFound("useFaceZones");
|
||||
const bool prefixRegion = args.optionFound("prefixRegion");
|
||||
|
||||
|
||||
if
|
||||
(
|
||||
@ -2226,6 +2286,7 @@ int main(int argc, char *argv[])
|
||||
mesh,
|
||||
cellRegion,
|
||||
regionNames,
|
||||
prefixRegion,
|
||||
faceToInterface,
|
||||
interfacePatches,
|
||||
regionI,
|
||||
@ -2246,6 +2307,7 @@ int main(int argc, char *argv[])
|
||||
mesh,
|
||||
cellRegion,
|
||||
regionNames,
|
||||
prefixRegion,
|
||||
faceToInterface,
|
||||
interfacePatches,
|
||||
regionI,
|
||||
@ -2266,6 +2328,7 @@ int main(int argc, char *argv[])
|
||||
mesh,
|
||||
cellRegion,
|
||||
regionNames,
|
||||
prefixRegion,
|
||||
faceToInterface,
|
||||
interfacePatches,
|
||||
regionI,
|
||||
|
||||
Reference in New Issue
Block a user