Probe file processing tool. Jovani Favero
This commit is contained in:
parent
30b35bab83
commit
fed24046f9
1 changed files with 135 additions and 0 deletions
135
bin/foamProbe
Executable file
135
bin/foamProbe
Executable file
|
@ -0,0 +1,135 @@
|
|||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright held by original author
|
||||
# \\/ 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
|
||||
#
|
||||
# Script
|
||||
# foamProbe
|
||||
#
|
||||
# Description
|
||||
# Proccess a scalar, vetorial or tensorial field of OpenFOAM
|
||||
# probe file (for monitoring points). The original file will not be changed
|
||||
# and the fields of each monitoring point will be stored in a new
|
||||
# directory named probe<Name> (where <Name> is the field name) in the
|
||||
# directory where are the original probes files.
|
||||
# The fourth optional parameter can be used to create xmgrace sequentially
|
||||
# graphs (case is 0)
|
||||
# for monitoring points or automatically create eps figures (case is 1).
|
||||
|
||||
#
|
||||
# Author:
|
||||
# Jovani L. Favero, J. F. Mitre (2009)
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
if [ $# -lt 3 ]; then
|
||||
echo "Usage: foamProbe [<probes files directory> <numbers of monitoring points> <field name> <optional value: 0 - open in xmgrace, 1 - save to eps file>]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# File name, NAME.
|
||||
NAME=$(basename "$1")
|
||||
DNAME="$1"
|
||||
shift
|
||||
|
||||
# Number of points, P.
|
||||
P="$1"
|
||||
shift
|
||||
|
||||
NAME=$(basename "$1")
|
||||
CNAME="$1"
|
||||
shift
|
||||
xmgrace=0
|
||||
|
||||
if [ $# -eq 1 ]; then
|
||||
# Choose to save eps.
|
||||
save="$1"
|
||||
xmgrace=1
|
||||
fi
|
||||
|
||||
if [ ! -d "$DNAME" ]; then
|
||||
echo "Directory $DNAME does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $P -lt 1 ]; then
|
||||
echo "Can not be less than 1 single monitoring point."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $DNAME
|
||||
|
||||
if [ ! -f "$CNAME" ]; then
|
||||
echo "Field $CNAME does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Screen information
|
||||
echo ""
|
||||
echo "Wait: Processing $P point(s) in $CNAME file ...."
|
||||
|
||||
# Base directory to place processed files
|
||||
DIR="./probe$NAME/"
|
||||
if [ ! -d "$DIR" ]; then
|
||||
mkdir "$DIR"
|
||||
fi
|
||||
sed -e "s/ *(/\t/g" -e 's/)//g' "$CNAME" >"$DIR/$NAME"
|
||||
cd $DIR
|
||||
column=1
|
||||
while [ "$column" -le "$P" ]; do
|
||||
point=$column
|
||||
column=`expr $column + 1`
|
||||
cut -f 1,$column "$NAME" |sed -e "s/\t/ /g" -e '/^#/d' >$NAME.base
|
||||
echo -e "# Time \t Point_$point" >$NAME\_$point
|
||||
cat $NAME.base >>$NAME\_$point
|
||||
rm -f $NAME.base
|
||||
done
|
||||
cd - &>/dev/null
|
||||
|
||||
if [ "$xmgrace" = 1 ]; then
|
||||
cd probe$CNAME/
|
||||
field=1
|
||||
underscore=_
|
||||
while [ "$field" -le "$P" ]; do
|
||||
point=$field
|
||||
field=`expr $field + 1`
|
||||
echo " Opening file $CNAME$underscore$point"
|
||||
if [ "$save" = 0 ]; then
|
||||
echo " Opened $CNAME$underscore$point"
|
||||
xmgrace -nxy $CNAME\_$point -noask
|
||||
fi
|
||||
|
||||
if [ "$save" -ne 0 ]; then
|
||||
xmgrace -nxy $CNAME\_$point -hardcopy -printfile $CNAME\_$point.eps -hdevice EPS
|
||||
echo " Saving file $CNAME$underscore$point.eps"
|
||||
fi
|
||||
echo " Closing file $CNAME$underscore$point"
|
||||
echo ""
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Done!!!"
|
||||
echo ""
|
||||
|
||||
exit 0
|
Reference in a new issue