mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' into cvm
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -42,6 +42,9 @@ SiCortex*Gcc*/
|
||||
solaris*Gcc*/
|
||||
SunOS*Gcc*/
|
||||
|
||||
# reinstate wmake/rules that might look like build folders
|
||||
!wmake/rules/*/
|
||||
|
||||
# doxygen generated documentation
|
||||
doc/[Dd]oxygen/html
|
||||
doc/[Dd]oxygen/latex
|
||||
|
||||
12
Allwmake
12
Allwmake
@ -1,13 +1,21 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
if [ "$PWD" != "$WM_PROJECT_DIR" ]
|
||||
then
|
||||
echo "Error: Current directory in not \$WM_PROJECT_DIR"
|
||||
echo " The environment variable are not consistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# wmake is required for subsequent targets
|
||||
( cd wmake/src && make )
|
||||
|
||||
# build ThirdParty sources
|
||||
( cd $WM_THIRD_PARTY_DIR && ./Allwmake )
|
||||
$WM_THIRD_PARTY_DIR/Allwmake
|
||||
|
||||
# build OpenFOAM libraries and applications
|
||||
src/Allwmake
|
||||
applications/Allwmake
|
||||
|
||||
|
||||
27
README
27
README
@ -30,8 +30,8 @@
|
||||
check whether Qt4 is installed, and the version, type:
|
||||
+ qmake --version
|
||||
|
||||
Both 32- and 64-bit version of ParaView were compiled with Qt-4.4.3 (with
|
||||
openSuSE-11.1). If the user finds that a ParaView binary fails to run, then
|
||||
Both 32-bit and 64-bit version of ParaView were compiled with Qt-4.4.3 (with
|
||||
openSUSE-11.1). If the user finds that a ParaView binary fails to run, then
|
||||
it is almost certainly due to a conflict in compiled and installed Qt
|
||||
versions and they will need to consult the section below on "Compiling
|
||||
ParaView and the PV3FoamReader module."
|
||||
@ -40,10 +40,10 @@
|
||||
+ ubuntu-7.10: Version 4.3.2
|
||||
+ ubuntu-8.04: Version 4.3.4
|
||||
+ ubuntu-9.04: Version 4.5.0
|
||||
+ openSuSE-10.2: Version 4.2.1 - too old
|
||||
+ openSuSE-10.3: Version 4.3.1
|
||||
+ openSuSE-11.0: Version 4.4.0
|
||||
+ openSuSE-11.1: Version 4.4.3
|
||||
+ openSUSE-10.2: Version 4.2.1 - too old
|
||||
+ openSUSE-10.3: Version 4.3.1
|
||||
+ openSUSE-11.0: Version 4.4.0
|
||||
+ openSUSE-11.1: Version 4.4.3
|
||||
|
||||
Compilation and running of ParaView has been successful using the libraries
|
||||
downloaded in the "libqt4-dev" package on ubuntu.
|
||||
@ -51,7 +51,7 @@
|
||||
If you don't have an appropriate version of Qt installed you can download
|
||||
the sources from TrollTech e.g.:
|
||||
ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.5.tar.bz2
|
||||
and compile and install in /usr/local or some other location that does to
|
||||
and compile and install in /usr/local or some other location that does not
|
||||
conflict with the pre-installed version.
|
||||
|
||||
* Installation
|
||||
@ -112,7 +112,7 @@
|
||||
which may be obtained from http://gcc.gnu.org/.
|
||||
|
||||
Install the compiler in
|
||||
$WM_PROJECT_INST_DIR/ThirdParty/gcc-<GCC_VERSION>/platforms/$WM_ARCH$WM_COMPILER_ARCH/
|
||||
$WM_THIRD_PARTY_DIR/gcc-<GCC_VERSION>/platforms/$WM_ARCH$WM_COMPILER_ARCH/
|
||||
and change the gcc version number in $WM_PROJECT_DIR/etc/settings.sh and
|
||||
$WM_PROJECT_DIR/etc/settings.csh appropriately and finally update the
|
||||
environment variables as in section 3.
|
||||
@ -120,7 +120,7 @@
|
||||
Now go to the top-level source directory $WM_PROJECT_DIR and execute the
|
||||
top-level build script './Allwmake'. In principle this will build everything,
|
||||
but if problems occur with the build order it may be necessary to update the
|
||||
environment variables and re-execute 'Allwmake'.
|
||||
environment variables and re-execute './Allwmake'.
|
||||
|
||||
If you experience difficulties with building the source-pack, or your platform
|
||||
is not currently supported, please contact <enquiries@OpenCFD.co.uk> to
|
||||
@ -160,12 +160,13 @@
|
||||
* Compiling Paraview 3.6.1 and the PV3FoamReader module
|
||||
If there are problems encountered with ParaView, then it may be necessary to
|
||||
compile ParaView from sources. The compilation
|
||||
is a fairly simple process using the supplied makeParaView script that
|
||||
has worked in our tests with other packages supplied in the ThirdParty
|
||||
directory, namely cmake-2.6.4 and gcc-4.3.3. Execute the following:
|
||||
is a fairly simple process using the makeParaView script
|
||||
(found in ThirdParty directory), which has worked in our tests with other
|
||||
packages supplied in the ThirdParty directory, namely cmake-2.6.4 and
|
||||
gcc-4.3.3. Execute the following:
|
||||
+ cd $WM_THIRD_PARTY_DIR
|
||||
+ rm -rf paraview-3.6.1/platforms
|
||||
+ makeParaView
|
||||
+ ./makeParaView
|
||||
|
||||
The PV3FoamReader module is an OpenFOAM utility that can be compiled in the
|
||||
usual manner as follows:
|
||||
|
||||
@ -1,5 +1,14 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
if [ "$PWD" != "$WM_PROJECT_DIR/applications" ]
|
||||
then
|
||||
echo "Error: Current directory in not \$WM_PROJECT_DIR/applications"
|
||||
echo " The environment variable are not consistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
wmake all solvers
|
||||
|
||||
3
applications/test/fileNameClean/Make/files
Normal file
3
applications/test/fileNameClean/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
fileNameCleanTest.C
|
||||
|
||||
EXE = $(FOAM_USER_APPBIN)/fileNameCleanTest
|
||||
0
applications/test/fileNameClean/Make/options
Normal file
0
applications/test/fileNameClean/Make/options
Normal file
104
applications/test/fileNameClean/fileNameCleanTest.C
Normal file
104
applications/test/fileNameClean/fileNameCleanTest.C
Normal file
@ -0,0 +1,104 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
\\/ 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
|
||||
|
||||
Application
|
||||
fileNameCleanTest
|
||||
|
||||
Description
|
||||
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "argList.H"
|
||||
#include "fileName.H"
|
||||
#include "SubList.H"
|
||||
#include "IOobject.H"
|
||||
#include "IOstreams.H"
|
||||
#include "OSspecific.H"
|
||||
|
||||
|
||||
using namespace Foam;
|
||||
|
||||
void printCleaning(fileName& pathName)
|
||||
{
|
||||
Info<< "fileName = " << pathName << nl
|
||||
<< " path() = " << pathName.path() << nl
|
||||
<< " name() = " << pathName.name() << nl
|
||||
<< " joined = " << pathName.path()/pathName.name() << nl << nl;
|
||||
|
||||
pathName.clean();
|
||||
|
||||
Info<< "cleaned = " << pathName << nl
|
||||
<< " path() = " << pathName.path() << nl
|
||||
<< " name() = " << pathName.name() << nl
|
||||
<< " joined = " << pathName.path()/pathName.name() << nl << nl;
|
||||
|
||||
IOobject::writeDivider(Info);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// Main program:
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::noBanner();
|
||||
argList::noParallel();
|
||||
argList::validArgs.insert("fileName .. fileNameN");
|
||||
|
||||
argList args(argc, argv, false, true);
|
||||
|
||||
if (args.additionalArgs().empty())
|
||||
{
|
||||
args.printUsage();
|
||||
}
|
||||
|
||||
if (args.optionFound("case"))
|
||||
{
|
||||
fileName pathName = args.option("case");
|
||||
Info<< nl
|
||||
<< "-case" << nl
|
||||
<< "path = " << args.path() << nl
|
||||
<< "root = " << args.rootPath() << nl
|
||||
<< "case = " << args.caseName() << nl
|
||||
<< "FOAM_CASE=" << getEnv("FOAM_CASE") << nl
|
||||
<< "FOAM_CASENAME=" << getEnv("FOAM_CASENAME") << nl
|
||||
<< endl;
|
||||
|
||||
printCleaning(pathName);
|
||||
}
|
||||
|
||||
forAll(args.additionalArgs(), argI)
|
||||
{
|
||||
fileName pathName = args.additionalArgs()[argI];
|
||||
printCleaning(pathName);
|
||||
}
|
||||
|
||||
Info<< "\nEnd" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -27,6 +27,7 @@ Application
|
||||
|
||||
Description
|
||||
Print the OpenFOAM version strings.
|
||||
|
||||
Simultaneously the smallest possible program to use a minimal bit of
|
||||
the OpenFOAM library
|
||||
|
||||
@ -37,9 +38,9 @@ Description
|
||||
|
||||
int main()
|
||||
{
|
||||
std::cerr
|
||||
<< "build " << Foam::FOAMbuild << "\n"
|
||||
<< "version " << Foam::FOAMversion << "\n";
|
||||
std::cout
|
||||
<< "version " << Foam::FOAMversion << "\n"
|
||||
<< "build " << Foam::FOAMbuild << "\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -5,9 +5,8 @@
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
|
||||
# build libccmio and create lnInclude directory
|
||||
( cd $WM_THIRD_PARTY_DIR && ./AllwmakeLibccmio )
|
||||
$WM_THIRD_PARTY_DIR/AllwmakeLibccmio
|
||||
|
||||
# if the library built properly, the headers should exist too
|
||||
if [ -e $FOAM_LIBBIN/libccmio.so ]
|
||||
|
||||
26
bin/foamTags
26
bin/foamTags
@ -31,17 +31,29 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "Usage : ${0##*/}"
|
||||
echo ""
|
||||
echo "Build the tags files for all the .C and .H files"
|
||||
echo ""
|
||||
exit 1
|
||||
if [ $# -ne 0 ]
|
||||
then
|
||||
echo "Usage : ${0##*/}"
|
||||
echo ""
|
||||
echo "Build the tags files for all the .C and .H files"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $WM_PROJECT_DIR
|
||||
|
||||
for cmd in etags ectags
|
||||
do
|
||||
type $cmd >/dev/null 2>&1 || {
|
||||
echo "${0##*/} cannot build tag files: '$cmd' command not found"
|
||||
exit
|
||||
}
|
||||
done
|
||||
|
||||
|
||||
cd $WM_PROJECT_DIR || exit
|
||||
mkdir .tags 2>/dev/null
|
||||
|
||||
|
||||
etagsCmd="etags --declarations -l c++ -o .tags/etags -"
|
||||
#etagsDefCmd="etags -l c++ -o .tags/etagsDef -"
|
||||
#etagsDecCmd="etags --declarations -l c++ -o .tags/etagsDec -"
|
||||
|
||||
@ -1,398 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
use File::Spec;
|
||||
use Getopt::Long;
|
||||
|
||||
#############################################################################
|
||||
# SETTINGS
|
||||
#
|
||||
my %config = (
|
||||
thirdParty => "$ENV{WM_PROJECT_INST_DIR}/ThirdParty",
|
||||
project => ( $ENV{WM_PROJECT} || '' ) . "-"
|
||||
. ( $ENV{WM_PROJECT_VERSION} || '' ),
|
||||
);
|
||||
|
||||
my %packages = (
|
||||
cmake => {
|
||||
-opt => 1,
|
||||
url => "http://www.cmake.org/files/v2.6/cmake-2.6.0.tar.gz",
|
||||
},
|
||||
|
||||
lam => {
|
||||
-opt => 1,
|
||||
url => "http://www.lam-mpi.org/download/files/lam-7.1.4.tar.bz2",
|
||||
},
|
||||
|
||||
libccmio => {
|
||||
-opt => 1,
|
||||
url =>
|
||||
"https://wci.llnl.gov/codes/visit/3rd_party/libccmio-2.6.1.tar.gz",
|
||||
},
|
||||
|
||||
openmpi => {
|
||||
url =>
|
||||
"http://www.open-mpi.org/software/ompi/v1.2/downloads/openmpi-1.2.6.tar.bz2",
|
||||
},
|
||||
|
||||
metis => {
|
||||
url =>
|
||||
"http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.0pre2.tar.gz"
|
||||
},
|
||||
mico => {
|
||||
-opt => 1,
|
||||
url => "http://www.mico.org/mico-2.3.12.tar.gz",
|
||||
},
|
||||
|
||||
mpich => {
|
||||
-opt => 1,
|
||||
url => "ftp://ftp.mcs.anl.gov/pub/mpi/old/mpich-1.2.4.tar.gz",
|
||||
},
|
||||
|
||||
ParMetis => {
|
||||
url =>
|
||||
"http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/ParMetis-3.1.tar.gz",
|
||||
},
|
||||
|
||||
ParMGridGen => {
|
||||
url =>
|
||||
"http://www-users.cs.umn.edu/~moulitsa/download/ParMGridGen-1.0.tar.gz",
|
||||
},
|
||||
|
||||
zlib => { url => "http://www.zlib.net/zlib-1.2.3.tar.gz", },
|
||||
|
||||
hoard => {
|
||||
-opt => 1,
|
||||
url =>
|
||||
"http://www.cs.umass.edu/%7Eemery/hoard/hoard-3.7.1/hoard-371.tar.gz"
|
||||
},
|
||||
|
||||
## # this really doesn't work well, but code needs minor patching anyhow:
|
||||
## fbsdmalloc => {
|
||||
## url =>
|
||||
## "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/lib/libc/stdlib/malloc.c?rev=1.171",
|
||||
##
|
||||
## },
|
||||
);
|
||||
|
||||
#
|
||||
# END OF SETTINGS
|
||||
############################################################################
|
||||
|
||||
( my $Script = $0 ) =~ s{^.*/}{};
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
sub usage {
|
||||
my ( @req, @opt );
|
||||
|
||||
for ( sort keys %packages ) {
|
||||
if ( $packages{$_}{-opt} ) {
|
||||
push @opt, $_;
|
||||
}
|
||||
else {
|
||||
push @req, $_;
|
||||
}
|
||||
}
|
||||
|
||||
$! = 0; # clean exit
|
||||
warn "@_\n" if @_;
|
||||
die <<"USAGE";
|
||||
usage:
|
||||
$Script [OPTION] [package1 .. packageN]
|
||||
|
||||
options:
|
||||
-help usage
|
||||
-status show status [default]
|
||||
-list list versions and resource locations
|
||||
-version list versions only
|
||||
-dir list unpack directory
|
||||
-reldir list unpack directory relative to cwd
|
||||
-get get packages as required (uses curl)
|
||||
-unpack unpack packages where required and possible
|
||||
|
||||
Simple management of 3rd party software for '$config{project}'
|
||||
using the directory
|
||||
$config{thirdParty}
|
||||
|
||||
Packages: @req
|
||||
Optional: @opt
|
||||
|
||||
Return codes:
|
||||
-status -get -unpack number of missing packages or errors
|
||||
|
||||
USAGE
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
my %opt;
|
||||
|
||||
# default action is -status
|
||||
@ARGV or $opt{status}++;
|
||||
GetOptions(
|
||||
\%opt, ##
|
||||
"help", "status", "list", "version", "dir",
|
||||
"reldir", "get", "unpack",
|
||||
)
|
||||
or usage;
|
||||
|
||||
$opt{help} and usage;
|
||||
|
||||
-d $config{thirdParty} or usage "ERROR: no '$config{thirdParty}' dir";
|
||||
|
||||
#
|
||||
# complete the config
|
||||
#
|
||||
if ( not exists $config{sources} ) {
|
||||
$config{sources} = "$config{thirdParty}/sources";
|
||||
-d $config{sources} or mkdir $config{sources};
|
||||
}
|
||||
|
||||
#
|
||||
# cleanup the packages table
|
||||
#
|
||||
for my $name ( keys %packages ) {
|
||||
my $href = $packages{$name};
|
||||
|
||||
if ( not $href->{url} ) {
|
||||
warn "$name without url\n";
|
||||
delete $packages{$name};
|
||||
next;
|
||||
}
|
||||
|
||||
if ( not exists $href->{file} ) {
|
||||
( $href->{file} = $href->{url} ) =~ s{^.*/|\?.*$}{}g;
|
||||
}
|
||||
|
||||
if ( not exists $href->{dir} ) {
|
||||
( $href->{dir} = $href->{file} ) =~ s{\.(zip|tar(\.(gz|bz2))?)$}{};
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# check for names in the packages
|
||||
#
|
||||
sub selectNames {
|
||||
my @names;
|
||||
my $req;
|
||||
|
||||
while ( @_ and $_[0] =~ /^-/ ) {
|
||||
my $opt = shift;
|
||||
if ( $opt =~ /^-req/ ) {
|
||||
$req++;
|
||||
}
|
||||
}
|
||||
|
||||
if (@_) {
|
||||
my ( %seen, @reject );
|
||||
for my $name (@_) {
|
||||
next if $seen{$name}++;
|
||||
if ( exists $packages{$name} ) {
|
||||
push @names, $name;
|
||||
}
|
||||
else {
|
||||
push @reject, $name;
|
||||
}
|
||||
}
|
||||
|
||||
usage "unknown package(s): @reject" if @reject;
|
||||
}
|
||||
else {
|
||||
@names =
|
||||
grep { not $req or not $packages{$_}{-opt} } sort keys %packages;
|
||||
}
|
||||
|
||||
@names or usage "no packages";
|
||||
|
||||
return @names;
|
||||
}
|
||||
|
||||
#
|
||||
# list the current status
|
||||
#
|
||||
if ( $opt{status} ) {
|
||||
my @names = selectNames @ARGV;
|
||||
|
||||
my $nMissing = 0;
|
||||
|
||||
for my $name (@names) {
|
||||
my $href = $packages{$name};
|
||||
my ( $dir, $file, $url ) = @$href{qw( dir file url )};
|
||||
|
||||
my @status;
|
||||
if ( -e "$config{sources}/$file" ) {
|
||||
push @status, " packed: $config{sources}/$file";
|
||||
}
|
||||
|
||||
if ( -d "$config{thirdParty}/$dir" ) {
|
||||
push @status, "unpacked: $config{thirdParty}/$dir";
|
||||
}
|
||||
|
||||
unless (@status) {
|
||||
$nMissing++;
|
||||
@status = "missing";
|
||||
}
|
||||
|
||||
for (@status) {
|
||||
printf "%-16s %-16s %s", $name, $dir, $_;
|
||||
|
||||
if ( $href->{-opt} ) {
|
||||
print " [optional]";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
exit $nMissing;
|
||||
}
|
||||
|
||||
#
|
||||
# show an overview of the versions and the resource locations
|
||||
#
|
||||
if ( $opt{list} ) {
|
||||
my @names = selectNames @ARGV;
|
||||
|
||||
for my $name (@names) {
|
||||
my $href = $packages{$name};
|
||||
my ( $dir, $file, $url ) = @$href{qw( dir file url )};
|
||||
|
||||
printf "%-16s %-16s %s", $name, $dir, $url;
|
||||
if ( $href->{-opt} ) {
|
||||
print " [optional]";
|
||||
}
|
||||
print "\n";
|
||||
|
||||
}
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
#
|
||||
# show the version (directory name) only
|
||||
#
|
||||
if ( $opt{version} ) {
|
||||
my @names = selectNames @ARGV;
|
||||
|
||||
for my $name (@names) {
|
||||
my $href = $packages{$name};
|
||||
my ( $dir, $file, $url ) = @$href{qw( dir file url )};
|
||||
|
||||
print $dir, "\n";
|
||||
}
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
#
|
||||
# show the unpack directory name
|
||||
#
|
||||
if ( $opt{dir} or $opt{reldir} ) {
|
||||
my @names = selectNames @ARGV;
|
||||
my $base = $config{thirdParty};
|
||||
|
||||
if ( $opt{reldir} ) {
|
||||
$base = File::Spec->abs2rel($base);
|
||||
length $base or $base = '.';
|
||||
}
|
||||
|
||||
for my $name (@names) {
|
||||
my $href = $packages{$name};
|
||||
my ( $dir, $file, $url ) = @$href{qw( dir file url )};
|
||||
|
||||
print File::Spec->catfile( $base, $dir ), "\n";
|
||||
}
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
#
|
||||
# get and/or unpack packages as required and possible
|
||||
# avoid getting/unpacking optional packages
|
||||
#
|
||||
if ( $opt{get} or $opt{unpack} ) {
|
||||
my @names = selectNames -required => @ARGV;
|
||||
|
||||
my $nError = 0;
|
||||
|
||||
for my $name (@names) {
|
||||
my $href = $packages{$name};
|
||||
my ( $dir, $file, $url ) = @$href{qw( dir file url )};
|
||||
|
||||
my $flags = "";
|
||||
if ( $href->{-opt} ) {
|
||||
$flags .= "[optional]";
|
||||
}
|
||||
|
||||
warn '-' x 70, "\n", "$name ($dir) $flags\n";
|
||||
|
||||
if ( -d "$config{thirdParty}/$dir" ) {
|
||||
warn "unpacked: $config{thirdParty}/$dir\n";
|
||||
next;
|
||||
}
|
||||
|
||||
if ( $opt{get} ) {
|
||||
if ( -e "$config{sources}/$file" ) {
|
||||
warn " packed: $config{sources}/$file\n";
|
||||
}
|
||||
else {
|
||||
my $fetch = "curl -k -o $file";
|
||||
|
||||
# curl seems to hang on anonymous ftp?
|
||||
if ( $url =~ /^ftp:/ ) {
|
||||
$fetch = "wget -v";
|
||||
}
|
||||
|
||||
system "set -x; cd $config{sources} && $fetch $url";
|
||||
|
||||
if ( not -e "$config{sources}/$file" ) {
|
||||
$nError++;
|
||||
warn " download failed!?\n";
|
||||
next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $opt{unpack} ) {
|
||||
if ( -e "$config{sources}/$file" ) {
|
||||
my $unpack;
|
||||
if ( $file =~ m{\.zip$} ) {
|
||||
$unpack = "unzip";
|
||||
}
|
||||
elsif ( $file =~ m{\.tar$} ) {
|
||||
$unpack = "tar -xf";
|
||||
}
|
||||
elsif ( $file =~ m{\.tar\.bz2$} ) {
|
||||
$unpack = "tar -xjf";
|
||||
}
|
||||
elsif ( $file =~ m{\.(tgz|tar\.gz)$} ) {
|
||||
$unpack = "tar -xzf";
|
||||
}
|
||||
else {
|
||||
$nError++;
|
||||
warn " no unpack defined for $file\n";
|
||||
next;
|
||||
}
|
||||
|
||||
system
|
||||
"set -x; cd $config{thirdParty} && $unpack $config{sources}/$file";
|
||||
|
||||
# catch isolated cases where it unpacks without a version number
|
||||
if ( -d "$config{thirdParty}/$name"
|
||||
and not -d "$config{thirdParty}/$dir" )
|
||||
{
|
||||
rename "$config{thirdParty}/$name",
|
||||
"$config{thirdParty}/$dir";
|
||||
}
|
||||
|
||||
unless ( -d "$config{thirdParty}/$dir" ) {
|
||||
$nError++;
|
||||
warn "unpack failed!?\n";
|
||||
next;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
warn '-' x 70, "\n\n";
|
||||
exit $nError;
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
@ -1,78 +0,0 @@
|
||||
#---------------------------------*- sh -*-------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
# \\/ 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
|
||||
# thirdPartyGetFunctions
|
||||
#
|
||||
# Description
|
||||
# Functions for managing the third-party packages
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# get, unpack and change to third party directory
|
||||
# - call from within a sub-shell, since it uses 'cd'
|
||||
#
|
||||
getUnpack() {
|
||||
[ "$#" -eq 1 ] || {
|
||||
echo "getUnpack called with incorrect arguments $@"
|
||||
return 1
|
||||
}
|
||||
|
||||
d=$(foamThirdParty -dir $1 2>/dev/null) || {
|
||||
echo "nothing know about '$1'"
|
||||
return 1
|
||||
}
|
||||
|
||||
foamThirdParty -get -unpack $1 && [ -d "$d" ] || return 1
|
||||
|
||||
[ -d "$d" ] && chmod -R ugo+rX $d 2>/dev/null
|
||||
|
||||
echo $d
|
||||
}
|
||||
|
||||
#
|
||||
# copy Make/{files,options} from wmakeFiles/PACKAGE
|
||||
#
|
||||
cpMakeFiles() {
|
||||
[ "$#" -eq 2 ] || {
|
||||
echo "cpMakeFiles called with incorrect arguments $@"
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg=$1
|
||||
dst=$2
|
||||
|
||||
for i in $(cd wmakeFiles/$pkg && find . -type f)
|
||||
do
|
||||
d=$(dirname $i)
|
||||
b=$(basename $i)
|
||||
|
||||
mkdir -p $dst/$d/Make 2>/dev/null
|
||||
[ -e $dst/$d/Make/$b ] || cp wmakeFiles/$pkg/$i $dst/$d/Make/$b
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
12
bin/touchapp
12
bin/touchapp
@ -32,17 +32,17 @@
|
||||
|
||||
if [ "$#" -ne 0 ]
|
||||
then
|
||||
echo "Usage: ${0##*/}"
|
||||
echo " touch FOAM_APPBIN"
|
||||
exit 1
|
||||
echo "Usage: ${0##*/}"
|
||||
echo " touch FOAM_APPBIN"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ -d "$FOAM_APPBIN" ]
|
||||
then
|
||||
echo "touching FOAM_APPBIN: $FOAM_APPBIN"
|
||||
touch $FOAM_APPBIN/*
|
||||
echo "touching FOAM_APPBIN: $FOAM_APPBIN"
|
||||
touch $FOAM_APPBIN/*
|
||||
else
|
||||
echo "no FOAM_APPBIN: $FOAM_APPBIN"
|
||||
echo "no FOAM_APPBIN: $FOAM_APPBIN"
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
export WM_PROJECT=OpenFOAM
|
||||
export WM_PROJECT_VERSION=1.6
|
||||
export WM_PROJECT_VERSION=dev
|
||||
|
||||
################################################################################
|
||||
# USER EDITABLE PART
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
setenv WM_PROJECT OpenFOAM
|
||||
setenv WM_PROJECT_VERSION 1.6
|
||||
setenv WM_PROJECT_VERSION dev
|
||||
|
||||
################################################################################
|
||||
# USER EDITABLE PART
|
||||
|
||||
@ -1,5 +1,14 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
if [ "$PWD" != "$WM_PROJECT_DIR/src" ]
|
||||
then
|
||||
echo "Error: Current directory in not \$WM_PROJECT_DIR/src"
|
||||
echo " The environment variable are not consistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
# update OpenFOAM version strings if required
|
||||
|
||||
@ -66,14 +66,14 @@ bool Foam::argList::regroupArgv(int& argc, char**& argv)
|
||||
|
||||
// note: we also re-write directly into args_
|
||||
// and use a second pass to sort out args/options
|
||||
for (int argi=0; argi < argc; argi++)
|
||||
for (int argI = 0; argI < argc; argI++)
|
||||
{
|
||||
if (strcmp(argv[argi], "(") == 0)
|
||||
if (strcmp(argv[argI], "(") == 0)
|
||||
{
|
||||
level++;
|
||||
tmpString += "(";
|
||||
}
|
||||
else if (strcmp(argv[argi], ")") == 0)
|
||||
else if (strcmp(argv[argI], ")") == 0)
|
||||
{
|
||||
if (level >= 1)
|
||||
{
|
||||
@ -87,19 +87,19 @@ bool Foam::argList::regroupArgv(int& argc, char**& argv)
|
||||
}
|
||||
else
|
||||
{
|
||||
args_[nArgs++] = argv[argi];
|
||||
args_[nArgs++] = argv[argI];
|
||||
}
|
||||
}
|
||||
else if (level)
|
||||
{
|
||||
// quote each string element
|
||||
tmpString += "\"";
|
||||
tmpString += argv[argi];
|
||||
tmpString += argv[argI];
|
||||
tmpString += "\"";
|
||||
}
|
||||
else
|
||||
{
|
||||
args_[nArgs++] = argv[argi];
|
||||
args_[nArgs++] = argv[argI];
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,12 +129,18 @@ void Foam::argList::getRootCase()
|
||||
casePath = iter();
|
||||
casePath.clean();
|
||||
|
||||
// handle degenerate form and '-case .' like no -case specified
|
||||
if (casePath.empty() || casePath == ".")
|
||||
{
|
||||
// handle degenerate form and '-case .' like no -case specified
|
||||
casePath = cwd();
|
||||
options_.erase("case");
|
||||
}
|
||||
else if (casePath[0] != '/' && casePath.name() == "..")
|
||||
{
|
||||
// avoid relative cases ending in '..' - makes for very ugly names
|
||||
casePath = cwd()/casePath;
|
||||
casePath.clean();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -169,11 +175,11 @@ Foam::argList::argList
|
||||
{
|
||||
// Check if this run is a parallel run by searching for any parallel option
|
||||
// If found call runPar (might filter argv)
|
||||
for (int argi=0; argi<argc; argi++)
|
||||
for (int argI = 0; argI < argc; argI++)
|
||||
{
|
||||
if (argv[argi][0] == '-')
|
||||
if (argv[argI][0] == '-')
|
||||
{
|
||||
const char *optionName = &argv[argi][1];
|
||||
const char *optionName = &argv[argI][1];
|
||||
|
||||
if (validParOptions.found(optionName))
|
||||
{
|
||||
@ -195,14 +201,14 @@ Foam::argList::argList
|
||||
int nArgs = 1;
|
||||
string argListString = args_[0];
|
||||
|
||||
for (int argi = 1; argi < args_.size(); argi++)
|
||||
for (int argI = 1; argI < args_.size(); argI++)
|
||||
{
|
||||
argListString += ' ';
|
||||
argListString += args_[argi];
|
||||
argListString += args_[argI];
|
||||
|
||||
if (args_[argi][0] == '-')
|
||||
if (args_[argI][0] == '-')
|
||||
{
|
||||
const char *optionName = &args_[argi][1];
|
||||
const char *optionName = &args_[argI][1];
|
||||
|
||||
if
|
||||
(
|
||||
@ -216,8 +222,8 @@ Foam::argList::argList
|
||||
)
|
||||
)
|
||||
{
|
||||
argi++;
|
||||
if (argi >= args_.size())
|
||||
argI++;
|
||||
if (argI >= args_.size())
|
||||
{
|
||||
FatalError
|
||||
<< "option " << "'-" << optionName << '\''
|
||||
@ -226,8 +232,8 @@ Foam::argList::argList
|
||||
}
|
||||
|
||||
argListString += ' ';
|
||||
argListString += args_[argi];
|
||||
options_.insert(optionName, args_[argi]);
|
||||
argListString += args_[argI];
|
||||
options_.insert(optionName, args_[argI]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -236,9 +242,9 @@ Foam::argList::argList
|
||||
}
|
||||
else
|
||||
{
|
||||
if (nArgs != argi)
|
||||
if (nArgs != argI)
|
||||
{
|
||||
args_[nArgs] = args_[argi];
|
||||
args_[nArgs] = args_[argI];
|
||||
}
|
||||
nArgs++;
|
||||
}
|
||||
@ -529,21 +535,19 @@ Foam::argList::argList
|
||||
// Set the case and case-name as an environment variable
|
||||
if (rootPath_[0] == '/')
|
||||
{
|
||||
// absolute path
|
||||
// absolute path - use as-is
|
||||
setEnv("FOAM_CASE", rootPath_/globalCase_, true);
|
||||
}
|
||||
else if (rootPath_ == ".")
|
||||
{
|
||||
// relative to the current working directory
|
||||
setEnv("FOAM_CASE", cwd()/globalCase_, true);
|
||||
setEnv("FOAM_CASENAME", globalCase_, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// qualify relative path
|
||||
setEnv("FOAM_CASE", cwd()/rootPath_/globalCase_, true);
|
||||
}
|
||||
setEnv("FOAM_CASENAME", globalCase_, true);
|
||||
fileName casePath = cwd()/rootPath_/globalCase_;
|
||||
casePath.clean();
|
||||
|
||||
setEnv("FOAM_CASE", casePath, true);
|
||||
setEnv("FOAM_CASENAME", casePath.name(), true);
|
||||
}
|
||||
|
||||
// Switch on signal trapping. We have to wait until after Pstream::init
|
||||
// since this sets up its own ones.
|
||||
|
||||
@ -55,18 +55,115 @@ Foam::fileName::Type Foam::fileName::type() const
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// * remove repeated slashes
|
||||
// /abc////def --> /abc/def
|
||||
//
|
||||
// * remove '/./'
|
||||
// /abc/def/./ghi/. --> /abc/def/./ghi
|
||||
// abc/def/./ --> abc/def
|
||||
//
|
||||
// * remove '/../'
|
||||
// /abc/def/../ghi/jkl/nmo/.. --> /abc/ghi/jkl
|
||||
// abc/../def/ghi/../jkl --> abc/../def/jkl
|
||||
//
|
||||
// * remove trailing '/'
|
||||
//
|
||||
bool Foam::fileName::clean()
|
||||
{
|
||||
bool changed = false;
|
||||
// the top slash - we are never allowed to go above it
|
||||
register string::size_type top = this->find('/');
|
||||
|
||||
changed = this->removeRepeated('/') || changed;
|
||||
changed = this->removeTrailing('/') || changed;
|
||||
// no slashes - nothing to do
|
||||
if (top == string::npos)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return changed;
|
||||
// start with the '/' found:
|
||||
register char prev = '/';
|
||||
register string::size_type nChar = top+1;
|
||||
register string::size_type maxLen = this->size();
|
||||
|
||||
for
|
||||
(
|
||||
register string::size_type src = nChar;
|
||||
src < maxLen;
|
||||
/*nil*/
|
||||
)
|
||||
{
|
||||
register char c = operator[](src++);
|
||||
|
||||
if (prev == '/')
|
||||
{
|
||||
// repeated '/' - skip it
|
||||
if (c == '/')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// could be '/./' or '/../'
|
||||
if (c == '.')
|
||||
{
|
||||
// found trailing '/.' - skip it
|
||||
if (src >= maxLen)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// peek at the next character
|
||||
register char c1 = operator[](src);
|
||||
|
||||
// found '/./' - skip it
|
||||
if (c1 == '/')
|
||||
{
|
||||
src++;
|
||||
continue;
|
||||
}
|
||||
|
||||
// it is '/..' or '/../'
|
||||
if (c1 == '.' && (src+1 >= maxLen || operator[](src+1) == '/'))
|
||||
{
|
||||
string::size_type parent;
|
||||
|
||||
// backtrack to find the parent directory
|
||||
// minimum of 3 characters: '/x/../'
|
||||
// strip it, provided it is above the top point
|
||||
if
|
||||
(
|
||||
nChar > 2
|
||||
&& (parent = this->rfind('/', nChar-2)) != string::npos
|
||||
&& parent >= top
|
||||
)
|
||||
{
|
||||
nChar = parent + 1; // retain '/' from the parent
|
||||
src += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
// bad resolution, eg 'abc/../../'
|
||||
// retain the sequence, but move the top to avoid it being
|
||||
// considered a valid parent later
|
||||
top = nChar + 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
operator[](nChar++) = prev = c;
|
||||
}
|
||||
|
||||
// remove trailing slash
|
||||
if (nChar > 1 && operator[](nChar-1) == '/')
|
||||
{
|
||||
nChar--;
|
||||
}
|
||||
|
||||
this->resize(nChar);
|
||||
|
||||
return (nChar != maxLen);
|
||||
}
|
||||
|
||||
|
||||
// Return string with repeated characters removed
|
||||
Foam::fileName Foam::fileName::clean() const
|
||||
{
|
||||
fileName fName(*this);
|
||||
|
||||
@ -20,6 +20,29 @@ dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform $turbulentKE;
|
||||
|
||||
#include "turbulentBoundaryField"
|
||||
boundaryField
|
||||
{
|
||||
#include "fixedInlet"
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type kqRWallFunction;
|
||||
}
|
||||
|
||||
"motorBike_.*"
|
||||
{
|
||||
type kqRWallFunction;
|
||||
}
|
||||
|
||||
#include "frontBackUpperPatches"
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -20,6 +20,29 @@ dimensions [0 0 -1 0 0 0 0];
|
||||
|
||||
internalField uniform $turbulentOmega;
|
||||
|
||||
#include "turbulentBoundaryField"
|
||||
boundaryField
|
||||
{
|
||||
#include "fixedInlet"
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type omegaWallFunction;
|
||||
}
|
||||
|
||||
"motorBike_.*"
|
||||
{
|
||||
type omegaWallFunction;
|
||||
}
|
||||
|
||||
#include "frontBackUpperPatches"
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.6 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#include "fixedInlet"
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type kqRWallFunction;
|
||||
}
|
||||
|
||||
"motorBike_.*"
|
||||
{
|
||||
type kqRWallFunction;
|
||||
}
|
||||
|
||||
#include "frontBackUpperPatches"
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.6 |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -16,9 +16,9 @@ FoamFile
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// x y z u v w d rho mDot T cp Y0..YN
|
||||
(
|
||||
(0.1 0.32 0.0 0.5 0.25 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
(0.1 0.44 0.0 0.5 0.1 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
(0.1 0.56 0.0 0.5 -0.1.0 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
(0.1 0.32 0.0 0.5 0.25 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
(0.1 0.44 0.0 0.5 0.10 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
(0.1 0.56 0.0 0.5 -0.10 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
(0.1 0.68 0.0 0.5 -0.25 0.0 0.001 1000 0.2 300 4200 1.0)
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user