diff --git a/bin/foamCloneCase b/bin/foamCloneCase new file mode 100755 index 0000000000..d037cfa960 --- /dev/null +++ b/bin/foamCloneCase @@ -0,0 +1,90 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2015 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 +# foamCloneCase +# +# Description +# Create a new case directory that includes time, system and constant +# directories from a source case. +# The time directory is the first time directory by default +# - requires foamListTimes v2.3.x and newer +# +#------------------------------------------------------------------------------ +usage() { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat< +options: + -l | -latestTime clone the latest time directory + -h | -help print the usage + +Create a new case directory that includes time, system and constant +directories of directory. +The time directory is the first time directory by default. + +USAGE + exit 1 +} + +TIME_OPTION="head -1" + +# parse options +while [ "$#" -gt 0 ] +do + case "$1" in + -h | -help) + usage + ;; + -l | -latestTime) + TIME_OPTION="tail -1" + shift 1 + ;; + -*) + usage "unknown option: '$*'" + ;; + *) + break + ;; + esac +done + +[ $# -eq 2 ] || usage "Incorrect arguments specified" +if [ "$(foamListTimes -case $1 2>&1 >/dev/null | grep 'FOAM FATAL ERROR')" ] +then + usage "$1 is not does not a valid case directory" +fi +! [ -e $2 ] || usage "$2 file/directory already exists, delete and re-run" + +echo "Making $2 case directory" +mkdir $2 + +TIME_DIR="$(foamListTimes -withZero -case $1 | $TIME_OPTION)" + +echo "Copying case directories from $1 to $2" +cp -r $1/system $1/constant $1/${TIME_DIR} $2 + +#------------------------------------------------------------------------------ diff --git a/bin/foamCreateVideo b/bin/foamCreateVideo new file mode 100755 index 0000000000..bd28984770 --- /dev/null +++ b/bin/foamCreateVideo @@ -0,0 +1,117 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2015 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 +# foamCreateVideo +# +# Description +# Creates an MPEG-4 compressed (.mp4) video file from PNG images +# - requires mencoder +# +#------------------------------------------------------------------------------ + +usage () { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat < directory containing png images (default local dir) + -f | -fps frames per second (default = 10) + -h | -help help + -i | -image name of image sequence (default = image) + -o | -out name of output video file (default = video) + +Creates an MPEG-4 compressed (.mp4) video file from a sequence of PNG images +- A sequence named "image" will expect files image.0000.png, image.0001.png, etc +- An output video named "video" will produce a file video.mp4 +- By default the video codec is high resolution (x264) but there is an option to + select a medium resolution codec (lavc) + +Requires mencoder + +USAGE + exit 1 +} + + +# Default settings +DIR='.' +IMAGE='image' +VIDEO='video' +FPS=10 +VCODEC=x264 + + +while [ "$#" -gt 0 ] +do + case "$1" in + -h | -help) + usage + ;; + -d | -directory) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + DIR=$2 + shift 2 + ;; + -f | -fps) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + FPS=$2 + shift 2 + ;; + -i | -image) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + IMAGE=$2 + shift 2 + ;; + -o | -out) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + VIDEO=$2 + shift 2 + ;; + -*) + usage "invalid option '$1'" + ;; + *) + break + ;; + esac +done + +# +# MAIN +# + +[ -f "$(ls -1 $DIR/$IMAGE.*.png | head -1)" ] || usage "Cannot find first file in image sequence" + +if command -v mencoder >/dev/null 2>&1; then + mencoder \ + "mf://$DIR/$IMAGE.*.png" \ + -mf fps=$FPS \ + -o $VIDEO.mp4 \ + -ovc $VCODEC +else + usage "Please install mencoder" +fi diff --git a/bin/foamMonitor b/bin/foamMonitor new file mode 100755 index 0000000000..9f70c74570 --- /dev/null +++ b/bin/foamMonitor @@ -0,0 +1,176 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2015 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 +# foamMonitor +# +# Description +# Monitor data with Gnuplot from time-value(s) graphs written by OpenFOAM +# e.g. by functionObjects +# - requires gnuplot, gnuplot_x11 +# +#------------------------------------------------------------------------------ +usage() { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat< +options: + -h | -help print the usage + -i | -idle