diff --git a/applications/utilities/miscellaneous/patchSummary/Make/files b/applications/utilities/miscellaneous/patchSummary/Make/files new file mode 100644 index 0000000000..62485dc33d --- /dev/null +++ b/applications/utilities/miscellaneous/patchSummary/Make/files @@ -0,0 +1,3 @@ +patchSummary.C + +EXE = $(FOAM_USER_APPBIN)/patchSummary diff --git a/applications/utilities/miscellaneous/patchSummary/Make/options b/applications/utilities/miscellaneous/patchSummary/Make/options new file mode 100644 index 0000000000..fa15f12452 --- /dev/null +++ b/applications/utilities/miscellaneous/patchSummary/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +EXE_LIBS = \ + -lfiniteVolume diff --git a/applications/utilities/miscellaneous/patchSummary/patchSummary.C b/applications/utilities/miscellaneous/patchSummary/patchSummary.C new file mode 100644 index 0000000000..a2f8c986ba --- /dev/null +++ b/applications/utilities/miscellaneous/patchSummary/patchSummary.C @@ -0,0 +1,117 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Application + patchSummary + +Description + Writes fields and boundary condition info for each patch at each requested + time instance. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "volFields.H" +#include "IOobjectList.H" +#include "patchSummaryTemplates.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + +# include "addTimeOptions.H" +# include "setRootCase.H" +# include "createTime.H" + + // Get times list + instantList Times = runTime.times(); + + // set startTime and endTime depending on -time and -latestTime options +# include "checkTimeOptions.H" + + runTime.setTime(Times[startTime], startTime); + +# include "createMesh.H" + + for (label i=startTime; i(vsf, obj, objI, mesh); + addToFieldList(vvf, obj, objI, mesh); + addToFieldList(vsptf, obj, objI, mesh); + addToFieldList(vsytf, obj, objI, mesh); + addToFieldList(vtf, obj, objI, mesh); + } + } + + Info<< endl; + + const polyBoundaryMesh& bm = mesh.boundaryMesh(); + forAll(bm, patchI) + { + Info<< "Patch: " << bm[patchI].name() << nl; + outputFieldList(vsf, patchI); + outputFieldList(vvf, patchI); + outputFieldList(vsptf, patchI); + outputFieldList(vsytf, patchI); + outputFieldList(vtf, patchI); + Info << endl; + } + } + + Info << "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/utilities/miscellaneous/patchSummary/patchSummaryTemplates.C b/applications/utilities/miscellaneous/patchSummary/patchSummaryTemplates.C new file mode 100644 index 0000000000..57123fd117 --- /dev/null +++ b/applications/utilities/miscellaneous/patchSummary/patchSummaryTemplates.C @@ -0,0 +1,75 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +\*---------------------------------------------------------------------------*/ + +#include "patchSummaryTemplates.H" +#include "IOmanip.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template +void Foam::addToFieldList +( + PtrList >& fieldList, + const IOobject& obj, + const label fieldI, + const fvMesh& mesh +) +{ + typedef GeometricField fieldType; + + if (obj.headerClassName() == fieldType::typeName) + { + fieldList.set + ( + fieldI, + new fieldType(obj, mesh) + ); + Info<< " " << fieldType::typeName << tab << obj.name() << endl; + } +} + + +template +void Foam::outputFieldList +( + PtrList >& fieldList, + const label patchI +) +{ + forAll(fieldList, fieldI) + { + if (fieldList.set(fieldI)) + { + Info<< " " << pTraits::typeName << tab << tab + << fieldList[fieldI].name() << tab << tab + << fieldList[fieldI].boundaryField()[patchI].type() << nl; + } + } +} + + +// ************************************************************************* // diff --git a/applications/utilities/miscellaneous/patchSummary/patchSummaryTemplates.H b/applications/utilities/miscellaneous/patchSummary/patchSummaryTemplates.H new file mode 100644 index 0000000000..e29db21fc3 --- /dev/null +++ b/applications/utilities/miscellaneous/patchSummary/patchSummaryTemplates.H @@ -0,0 +1,65 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#ifndef patchSummaryTemplates_H +#define patchSummaryTemplates_H + +#include "fvCFD.H" +#include "volFields.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + template + void addToFieldList + ( + PtrList >& fieldList, + const IOobject& obj, + const label fieldI, + const fvMesh& mesh + ); + + template + void outputFieldList + ( + PtrList >& fieldList, + const label patchI + ); +} // End namespace Foam + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository +# include "patchSummaryTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //