CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

FOAM Command Flow 1 .bash

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   November 17, 2013, 09:36
Lightbulb FOAM Command Flow 1 .bash
  #1
New Member
 
Y
Join Date: Feb 2013
Location: Dresden =)
Posts: 24
Rep Power: 4
peteryuan is on a distinguished road
Hey guys,

I have been learning bash scripting these days and for practice I wrote a small bash script to make openfoam usage a little easier (try to).
I call it fcf1, as the title of this thread.
I want to share this with you. Feel free to try it out and modify it. I am a beginner in bash scripting and I know there are a lot of advanced users here. So, if you are interested, please work further on this script and post the improved versions - so that we can learn from each other. I would also be happy if you tell me where I can improve.

cheers!
peter

Code:
#!/bin/bash
###############################################################
# this is a script to make FOAM easier to use
# I call it foam command flow no. 1 ==> fcf1
# written by x.yuan
# last change on 2013.11.17
###############################################################
function usage
{
    echo ""
    echo "usage: -h to show this..
    whatever.... 
    "
    echo "
    some message to write .... 
    "
}
function press_enter
{
    echo ""
    echo -n "Press Enter to continue"
    read
    # clear
}
###############################################################
interactive=
filename="default"
while [ "$1" != "" ]; do
    case $1 in
        -f | --file )        shift
                             filename=$1
                             echo "file name is : $filename"
                             ;;
        -i | --interactive)  interactive=1
                             echo "interactive on"
                             ;;
        -h | --help)         usage
                             exit 0
                             ;;
        * )                  usage  # otherwise show help
                             exit 1
    esac
    shift
done
###############################################################
# title:
###############################################################
echo ""
echo ==========================================================
echo "0: FOAM flow control 01"
echo ==========================================================
[ -d constant ] && echo "IN A CASE DIR, GOOD." || exit 1
echo ==========================================================
echo ready to go...
sleep 2
###############################################################
# case dir setup:
###############################################################
cs=n  # like control string
echo -n "1: pyFoamClearCase.py (y or n) > "
read cs
# if $cs == "y"; then  # does not work this way!
if [ $cs = "y" ]; then
    echo yes to clearcase..
    pyFoamClearCase.py ./; press_enter
fi
echo ==========================================================
###############################################################
# pre processing like mesh generation:
###############################################################
# echo -n "2: blockMesh apply (y or n) > "
# read cs
# if [ $cs = "y" ]
# then
#     echo yes to blockMesh
#     blockMesh | tee blockMesh.log
# fi
selection=
until [ "$selection" = "0" ]; do
    echo "2: PRE MENU"
    echo ""
    echo "1 - blockMesh | tee logfile"
    echo "2 - pyFoamDisplayBlockMesh.py <blockMeshDict>"
    echo "3 - checkMesh"
    echo "4 - paraFoam to view the mesh"
    echo ""
    echo "0 - exit loop"
    echo ""
    echo -n "Enter selection: "
    read selection
    echo ""
    case $selection in
        1 ) blockMesh | tee blockMesh.log ; press_enter ;;
        2 ) pyFoamDisplayBlockMesh.py constant/polyMesh/blockMeshDict; press_enter ;;
        3 ) checkMesh ; press_enter ;;
        4 ) paraFoam ; press_enter ;;
        # 0 ) exit ;;  # this exit whole programm!
        0 ) break ;;
        * ) echo "Please enter your selection!"; press_enter
    esac
done
echo ==========================================================
###############################################################
# solver running:
###############################################################
# try to get the string from file:
[ -d system ] && grep "application" system/controlDict || exit 2


solver=
echo -n "3: solver app to use > "
read solver
selection=
until [ "$selection" = "0" ]; do
    echo ""
    echo "3: SOLVER MENU"
    echo ""
    echo "1 - $solver | tee logfile"
    echo "2 - pyFoamPlotRunner.py $solver"
    echo "3 - pyFoamPlotWatcher.py logfile"
    echo "4 - paraFoam to view the results"
    echo ""
    echo "0 - exit loop"
    echo ""
    echo -n "Enter selection: "
    read selection
    echo ""
    case $selection in
        1 ) $solver | tee $solver.log ; press_enter ;;
        2 ) pyFoamPlotRunner.py $solver ; press_enter ;;
        # 3 ) pyFoamPlotWatcher.py PyFoamRunner.$solver.logfile ; press_enter ;;
        3 ) echo dont try that... ;;
        4 ) paraFoam ; press_enter ;;
        0 ) break ;;
        * ) echo "Please enter your selection!"; press_enter
    esac
done
echo ==========================================================
###############################################################
# post processing like data manipulation:
###############################################################
# foamCalc...
# sample...
# yPlusRAS...





###############################################################
echo fcf1 ends here, sir.
echo ==========================================================
echo ""
exit 0
###############################################################
by the way, here is the main source of my learning:

http://linuxcommand.org/writing_shell_scripts.php
filmsbykris.com
peteryuan is offline   Reply With Quote

Reply

Tags
bash, command, script

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
error message with modeling a cube with a hold at the center hsingtzu OpenFOAM Native Meshers: blockMesh 2 March 14, 2012 10:56
mesh airfoil NACA0012 anand_30 OpenFOAM Meshing & Mesh Conversion 12 December 12, 2011 05:16
BlockMesh FOAM warning gaottino OpenFOAM Native Meshers: blockMesh 7 July 19, 2010 14:11
Axisymmetrical mesh Rasmus Gjesing (Gjesing) OpenFOAM Native Meshers: blockMesh 10 April 2, 2007 14:00
Import gmsh msh to Foam adorean Open Source Meshers: Gmsh, Netgen, CGNS, ... 24 April 27, 2005 08:19


All times are GMT -4. The time now is 17:12.