diff options
Diffstat (limited to 'src/AMRHierLib/WriteStitchCells.cc')
-rw-r--r-- | src/AMRHierLib/WriteStitchCells.cc | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/AMRHierLib/WriteStitchCells.cc b/src/AMRHierLib/WriteStitchCells.cc new file mode 100644 index 0000000..0becef4 --- /dev/null +++ b/src/AMRHierLib/WriteStitchCells.cc @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// +// Project: Tools for AMR Visualization +// Module: $RCSfile$ +// Language: C++ +// Date: $Date$ +// Author: $Author$ +// Version: $Revision$ +// +//------------------------------------------------------------------------------ + +// Standard C/C++ Includes +#include <algorithm> +#include <iostream> + +// AMR Related Includes +#include <AMRHierarchy.hh> +#include <AMRLevel.hh> +#include <AMRGridStitcher.hh> + +// Project specific Includes +#include "StitchCellWriter.hh" + +int main(int argc, char* argv[]) +{ + if (argc != 4) { + std::cerr << "Usage: " << argv[0] << " <Input File> <Output Basename> <NumUsedLevels>" << std::endl; + return 42; + } + AMRHierarchy theAMRHier; + theAMRHier.readIEEEFile(argv[1]); + int maxLevel = std::min(atoi(argv[3]) - 1, theAMRHier.numLevels() - 1);; + StitchCellWriter writer(theAMRHier, argv[2], maxLevel); + + if (maxLevel > 0) { + for (int currLevelNo = 1; currLevelNo < maxLevel; ++currLevelNo) + { + std::cout << "Start level " << currLevelNo << std::endl; + AMRLevel *currLevel = theAMRHier.getLevel(currLevelNo); + for (AMRGrid *currGridPtr = currLevel->getFirstGrid(); currGridPtr != 0; currGridPtr = currGridPtr->getNextGridInLevel()) { + std::cout << "Stitching grid #" << currGridPtr->index() << std::endl; + AMRGridStitcher<StitchCellWriter> gridStitcher(writer, theAMRHier, currGridPtr, true); + gridStitcher.generateStitchCells(); + } + } + AMRLevel *lastLevel = theAMRHier.getLevel(maxLevel); + for (AMRGrid *currGridPtr = lastLevel->getFirstGrid(); currGridPtr != 0; currGridPtr = currGridPtr->getNextGridInLevel()) { + std::cout << "Stitching grid #" << currGridPtr->index() << std::endl; + AMRGridStitcher<StitchCellWriter> gridStitcher(writer, theAMRHier, currGridPtr, false); + gridStitcher.generateStitchCells(); + } + } +} |