Permalink
Browse files

foamNewApp: script to create template for a new application

Creates a directory containing source .C file and Make directory
Will deprecate foamNewSource with App argument in due course
  • Loading branch information...
1 parent 2a592ec commit 10ded8a6698880eda596b6ad69b2e249c6816993 Chris Greenshields committed Dec 4, 2015
Showing with 130 additions and 0 deletions.
  1. +73 −0 bin/foamNewApp
  2. +3 −0 etc/codeTemplates/app/Make/files
  3. +7 −0 etc/codeTemplates/app/Make/options
  4. +47 −0 etc/codeTemplates/app/app.C
View
@@ -0,0 +1,73 @@
+#!/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 <http://www.gnu.org/licenses/>.
+#
+# Script
+# foamNewApp
+#
+# Description
+# Create directory with source and compilation files for a new application
+#
+#------------------------------------------------------------------------------
+Script=${0##*/}
+DIR="$FOAM_ETC/codeTemplates/app"
+
+usage() {
+ while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+ cat<<USAGE
+Usage: $Script [-h | -help] <applicationName>
+
+* Create directory with source and compilation files for a new application
+ <applicationName> (dir)
+ - <applicationName>.C
+ - Make (dir)
+ - files
+ - options
+ Compiles an executable named <applicationName> in \$FOAM_USER_APPBIN:
+ $FOAM_USER_APPBIN
+USAGE
+ exit 1
+}
+
+case "$1" in
+(-h | -help)
+ usage
+ ;;
+-*)
+ usage "$1 is not a valid filename"
+ ;;
+esac
+
+[ "$#" -eq 1 ] || usage "Wrong number of arguments"
+[ -d "$1" ] && usage "$1 directory already exists, aborting..."
+
+NAME=$1
+
+echo "Creating application code directory $NAME" && mkdir $NAME
+sed "s#NAME#${NAME}#g" ${DIR}/app.C > $NAME/$NAME.C
+
+echo "Creating Make subdirectory" && mkdir $NAME/Make
+sed "s#NAME#${NAME}#g" ${DIR}/Make/files > $NAME/Make/files
+cp ${DIR}/Make/options $NAME/Make
+
+#------------------------------------------------------------------------------
@@ -0,0 +1,3 @@
+NAME.C
+
+EXE = $(FOAM_USER_APPBIN)/NAME
@@ -0,0 +1,7 @@
+EXE_INC = \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude
+
+LIB_LIBS = \
+ -lfiniteVolume \
+ -lmeshTools
@@ -0,0 +1,47 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 <http://www.gnu.org/licenses/>.
+
+Application
+ NAME
+
+Description
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ #include "setRootCase.H"
+ #include "createTime.H"
+
+ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ Info<< "\nEnd\n" << endl;
+ return 0;
+}
+
+
+// ************************************************************************* //

0 comments on commit 10ded8a

Please sign in to comment.