51 int main(
int argc,
char *argv[])
55 "Write field and boundary condition info for each patch"
56 " at each requested time instance"
59 timeSelector::addOptions();
62 argList::addBoolOption
65 "Do not combine patches"
76 const polyBoundaryMesh& bm =
mesh.boundaryMesh();
81 runTime.setTime(timeDirs[timeI], timeI);
86 if (
mesh.readUpdate() == polyMesh::TOPO_PATCH_CHANGE)
88 Info<<
"Detected changed patches. Recreating patch group table."
94 IOobjectList(
mesh,
runTime.timeName()).sortedNames()
97 PtrList<volScalarField> vsf(objNames.size());
98 PtrList<volVectorField> vvf(objNames.size());
99 PtrList<volSphericalTensorField> vsptf(objNames.size());
100 PtrList<volSymmTensorField> vsytf(objNames.size());
101 PtrList<volTensorField> vtf(objNames.size());
103 PtrList<pointScalarField> psf(objNames.size());
104 PtrList<pointVectorField> pvf(objNames.size());
105 PtrList<pointSphericalTensorField> psptf(objNames.size());
106 PtrList<pointSymmTensorField> psytf(objNames.size());
107 PtrList<pointTensorField> ptf(objNames.size());
146 Info<< bm[patchi].type() <<
"\t: " << bm[patchi].name() <<
nl;
167 DynamicList<HashTable<word>> fieldToTypes(bm.size());
169 DynamicList<DynamicList<label>> groupToPatches(bm.size());
172 HashTable<word> fieldToType;
185 label groupI = fieldToTypes.find(fieldToType);
188 DynamicList<label>
group(1);
189 group.append(patchi);
190 groupToPatches.append(
group);
191 fieldToTypes.append(fieldToType);
195 groupToPatches[groupI].append(patchi);
200 forAll(groupToPatches, groupI)
202 const DynamicList<label>& patchIDs = groupToPatches[groupI];
204 if (patchIDs.size() > 1)
209 bm.matchGroups(patchIDs, groups, nonGroupPatches);
211 const labelList sortedPatches(nonGroupPatches.sortedToc());
214 Info<< bm[sortedPatches[i]].type()
215 <<
"\t: " << bm[sortedPatches[i]].name() <<
nl;
221 Info<<
"group\t: " << groups[i] <<
nl;
242 label patchi = patchIDs[i];
243 Info<< bm[patchi].type()
244 <<
"\t: " << bm[patchi].name() <<
nl;