#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ 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 3 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, see . # # Script # Alltest # # Description # quickly tests the tutorials and writes out the scheme/solver information # #------------------------------------------------------------------------------ cd ${0%/*} || exit 1 # Run from this directory usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat< specify root directory to run tests from -default sets up a default scheme on all schemes -help print the usage * quickly tests the tutorials and writes out the scheme/solver information USAGE exit 1 } #------------------------------------------------------------------------------ unset DEFAULT_SCHEMES ROOT="./" # parse options while [ "$#" -gt 0 ] do case "$1" in -r | -root) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" ROOT="$2" shift ;; -h | -help) usage ;; -d | -default) DEFAULT_SCHEMES=true ;; -*) usage "unknown option: '$*'" ;; *) usage "unknown option/argument: '$*'" ;; esac shift done setDefaultFvSchemes() { cat</dev/null; exit 0' \ EXIT TERM INT cp ${MAIN_CONTROL_DICT} ${MAIN_CONTROL_DICT}.orig sed \ -e s/"\(fvSchemes[ \t]*\)\([0-9]\);"/"\1 1;"/g \ -e s/"\(solution[ \t]*\)\([0-9]\);"/"\1 1;"/g \ ${MAIN_CONTROL_DICT}.orig > ${MAIN_CONTROL_DICT} echo "Copying the tutorials" cp -a ${TUTORIALS_DIR} ${TEST_RUN_DIR} echo "Modifying the controlDicts to run only one time step" cd ${TEST_RUN_DIR} || exit 1 for CD in `find . -name "controlDict*"` do mv ${CD} ${CD}.orig sed \ -e s/"\(startFrom[ \t]*\)\([a-zA-Z]*\);"/"\1 latestTime;"/g \ -e s/"\(stopAt[ \t]*\)\([a-zA-Z]*\);"/"\1 nextWrite;"/g \ -e s/"\(writeControl[ \t]*\)\([a-zA-Z]*\);"/"\1 timeStep;"/g \ -e s/"\(writeInterval[ \t]*\)\([0-9a-zA-Z.-]*\);"/"\1 1;"/g \ ${CD}.orig > ${CD} done if [ "$DEFAULT_SCHEMES" = true ] then echo "Modifying the fvSchemes to contain only default schemes" for FV_SC in `find . -name fvSchemes` do for S in $FV_SCHEMES do mv ${FV_SC} ${FV_SC}.orig sed -e /"${S}"/,/$p/d ${FV_SC}.orig > ${FV_SC} done setDefaultFvSchemes >> ${FV_SC} done fi cp -f $FOAM_TUTORIALS/Allrun . ./Allrun sed -e :a -e '/\\$/N; s/\\\n//; ta' Allrun > temp APPLICATIONS=\ `grep "applications=" temp | sed 's/applications=\"\([A-Za-z \t]*\)\"/\1/g'` rm $SCHEMES_FILE > /dev/null 2>&1 for APP in $APPLICATIONS do echo $APP >> $SCHEMES_FILE echo "$APP: " | tr -d "\n" >> $SOLVERS_FILE for ST in $FV_SCHEMES do rm $SCHEMES_TEMP $SOLVERS_TEMP > /dev/null 2>&1 echo " ${ST}" >> $SCHEMES_FILE for LOG in `find ${APP} -name "log.${APP}"` do for S in `grep ${ST} ${LOG} | cut -d" " -f4` do echo " ${S}" >> $SCHEMES_TEMP done echo `grep solver ${LOG} | cut -d" " -f4` >> $SOLVERS_TEMP done if [ -f $SCHEMES_TEMP ] then cat $SCHEMES_TEMP | sort -u >> $SCHEMES_FILE fi done cat $SOLVERS_TEMP | tr " " "\n" | sort -u | tr "\n" " " >> $SOLVERS_FILE echo "" >> $SOLVERS_FILE done #------------------------------------------------------------------------------