#!/bin/sh cd "${0%/*}" || exit # Run from this directory . ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions #------------------------------------------------------------------------------ if isTest "$@" then # Reset the controlDict if [ -f system/controlDict.orig ] then echo "$0: restoring the controlDict from controlDict.orig" mv -f system/controlDict.orig system/controlDict fi fi restore0Dir runApplication blockMesh application=$(getApplication) #- Test writing collated format #runApplication decomposePar -fileHandler collated runParallel redistributePar -decompose -fileHandler collated runParallel $application -fileHandler collated #runApplication reconstructPar -latestTime -fileHandler collated runParallel -s reconstruct redistributePar -reconstruct -latestTime -fileHandler collated #- Test writing uncollated format #runApplication -s uncollated decomposePar -fileHandler uncollated -force runParallel -s uncollated redistributePar -decompose -fileHandler uncollated runParallel -s uncollated $application -fileHandler uncollated #- Test uncollated+distributed running: copy to different roots rm -rf machineA/fileHandler mkdir -p machineA/fileHandler ( cd machineA/fileHandler && \ cp -rf ../../processor[0-1] . && \ cp -rf ../../system . && \ mkdir -p constant && cp ../../constant/* constant ) #- Note: slave node does not need constant&system since these are global rm -rf machineB/fileHandler mkdir -p machineB/fileHandler ( cd machineB/fileHandler && \ cp -rf ../../processor[2-3] . ) #- Run with different roots ( d=$PWD && \ cd machineA/fileHandler && \ runParallel -s multiRoot $application \ -fileHandler masterUncollated -ioRanks '0,2' \ -roots "(\"$d/machineA\" \"$d/machineB\" \"$d/machineB\")" ) #- Restart from uncollated runParallel -s collated $application -fileHandler collated runApplication -s collated reconstructPar -latestTime -fileHandler collated #- Convert the parallel format to uncollated runParallel foamFormatConvert -fileHandler uncollated #- Restart with multiple IO ranks runParallel -s multiCollated \ $application -fileHandler collated -ioRanks '0,2' #- Reconstruct the multi-rank format. Delete the collated directory # since conflicts with the multi-collated directory rm -rf processors4 runApplication -s multiCollated reconstructPar -latestTime \ -fileHandler collated -ioRanks '0,2' #- Convert the multi-rank format to uncollated runParallel -s uncollated foamFormatConvert -fileHandler uncollated #- Restart from multiCollated using collated runParallel -s uncollated_from_multiCollated \ $application -fileHandler uncollated #- Test collated+distributed running: copy to different roots # Important: make sure to copy uniform since we're copying it #- Delete all processor directories runApplication -s collated decomposePar \ -fileHandler collated -force -copyUniform rm -rf machineA/fileHandler mkdir -p machineA/fileHandler ( cd machineA/fileHandler && \ cp -rf ../../processor* . && \ cp -rf ../../system . && \ mkdir -p constant && cp ../../constant/* constant ) #- Note: slave node does not need constant&system since these are global rm -rf machineB/fileHandler mkdir -p machineB/fileHandler #- Run with different roots ( d=$PWD && \ cd machineA/fileHandler && \ runParallel -s distributed_multiCollated $application \ -fileHandler collated -ioRanks '0,2' \ -roots "(\"$d/machineA\" \"$d/machineB\" \"$d/machineB\")" ) #------------------------------------------------------------------------------