Merge branch 'master' of /home/noisy2/OpenFOAM/OpenFOAM-dev

This commit is contained in:
mattijs
2008-06-05 13:06:23 +01:00
8 changed files with 471 additions and 192 deletions

86
README
View File

@ -104,9 +104,9 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you cannot find an appropriate binary pack for your platform you can If you cannot find an appropriate binary pack for your platform you can
build the complete OpenFOAM from the source-pack. First you will need to build the complete OpenFOAM from the source-pack. First you will need to
compile or obtain a recent version of gcc (we recommend gcc-4.1.?) for compile or obtain a recent version of gcc (we recommend gcc-4.2.?) for
your platform which may be obtained from http://gcc.gnu.org/. Install the your platform which may be obtained from http://gcc.gnu.org/. Install the
compiler in $WM_PROJECT_INST_DIR/$WM_ARCH/gcc-4.1.? and change the gcc compiler in $WM_PROJECT_INST_DIR/$WM_ARCH/gcc-4.2.? and change the gcc
version number in $WM_PROJECT_DIR/.bashrc and $WM_PROJECT_DIR/.cshrc as version number in $WM_PROJECT_DIR/.bashrc and $WM_PROJECT_DIR/.cshrc as
appropriate and update the environment variables as in section 3. appropriate and update the environment variables as in section 3.
@ -167,87 +167,7 @@
http://www.OpenFOAM.org/bugs.html http://www.OpenFOAM.org/bugs.html
A. Network settings A. Running OpenFOAM in 32-bit mode on 64-bit machines
~~~~~~~~~~~~~~~~~~~
OpenFOAM requires a basic level of networking to be set up. Firstly, the
host name must be set - to test, type 'uname -a'. The running shell must
be tcsh, csh, bash or ksh - to test type 'echo $SHELL'
The user must be able to 'ping' the host machine itself (<host>) - to
test, type 'ping -c 1 <host>'
If the ping fails then it is possible that that the entry for the host
machine is missing, incorrect or duplicated in the /etc/hosts file. The
user can check this by typing 'grep <host> /etc/hosts' which should return
a single line, typically of the form:
<IPaddress> <host>.<domain> <host>
The <IPaddress> must correspond to that in the networking settings of the
machine which can also be checked by typing on Linux '/sbin/ifconfig'
which should produce lines of output that include something similar to the
following:
eth0 Link encap:Ethernet HWaddr ...
inet addr:<IPaddress> ...
If the user is connected to a network that uses dynamic IP addresses, they
must be particularly careful to ensure that an entry for their hostname/IP
exists in the /etc/hosts file. If the server frequently reallocates IP
addresses across the network, it is advisable that the /etc/hosts file is
updated automatically when any changes occur.
The user should also be able to contact any other machine that it needs
to, either a remote licence host or other machines that are being used
within some parallel computation. Essentially the user needs to be able to
ping these machines as described in preceeding sections.
The machine must have one of (or both) remote (rsh) and secure shell (ssh)
running on his/her account. To check whether rsh is running correctly, the
user should type 'rsh <host> ls'. Alternatively the user can check if ssh
is running correctly by typing 'ssh <host> ls'. In either case, the output
to the command should produce a file/directory listing for the current
directory and no other text. If neither command works, we recommend the
user set up rsh for their use as follows:
Check the rsh executable actually exists, e.g. the path to the executable
should be returned when typing 'which rsh'. Check with the system
administrator that rsh is enabled on the user's account; if not, request
that it is enabled. Create a '.rhosts' file in the $HOME directory
containing entries to access any machines they need to access, i.e. their
own machine and, if different, the licence host machine. The entries are
of the form: '<host> <user>'.
Remote shell accesses the .bashrc (or .cshrc) file and will not run
correctly if there is a problem with this file. In particular the user
should be careful with the following:
The ~/.cshrc (or ~/.bashrc) file should not contain errors that prevent it
from executing fully at startup; all error messages during execution of
the ~/.bashrc (or ~/.cshrc) file should be investigated and acted upon to
eliminate them. echo (print to screen) statements within ~/.bashrc (or
~/.cshrc) must not be executed during the running of rsh. This does not
mean that echo statements are forbidden from the ~/.cshrc (or ~/.bashrc)
file, but they must be enclosed in a control structure, e.g. an if
statement, that ensures they are not executed when rsh is executed.
For ~.bashrc:
if [ "$PS1" ]; then
echo "..."
fi
# or, alternatively
if /usr/bin/tty -s 2>/dev/null; then
echo "..."
fi
and, for ~.cshrc:
if ($?prompt) then ; echo "..." ; endif
B. Running OpenFOAM in 32-bit mode on 64-bit machines
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Those users with an installation of Linux on a 64-bit machine may install Those users with an installation of Linux on a 64-bit machine may install
either or both of the 32-bit version of OpenFOAM (linux) or the 64-bit either or both of the 32-bit version of OpenFOAM (linux) or the 64-bit

View File

@ -127,7 +127,7 @@ public:
{} {}
//- Return the block holding these datasets //- Return the block holding these datasets
const int block() const int block() const
{ {
return block_; return block_;
} }
@ -137,17 +137,17 @@ public:
return name_; return name_;
} }
const int start() const int start() const
{ {
return start_; return start_;
} }
const int end() const int end() const
{ {
return start_ + size_; return start_ + size_;
} }
const int size() const int size() const
{ {
return size_; return size_;
} }

393
bin/foamThirdParty Executable file
View File

@ -0,0 +1,393 @@
#!/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 = (
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;
}
# --------------------------------------------------------------------------

View File

@ -43,7 +43,7 @@ addCMakeVariable ()
initialiseVariables () initialiseVariables ()
{ {
unset CMAKE_VARIABLES OBJ_ADD MPI_ARCH_PATH unset CMAKE_VARIABLES OBJ_ADD
if [ "$VERBOSE" = ON ]; then if [ "$VERBOSE" = ON ]; then
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
@ -55,26 +55,7 @@ addMpiSupport ()
{ {
[ "$INCLUDE_MPI" = ON ] || return [ "$INCLUDE_MPI" = ON ] || return
# using OpenFOAM variables to identify location of MPI libraries MPI_LIBRARY=$MPI_ARCH_PATH/lib/libmpi.so
case "$WM_MPLIB" in
OPENMPI)
MPI_ARCH_PATH=$OPENMPI_ARCH_PATH
MPI_LIBRARY=$OPENMPI_ARCH_PATH/lib/libmpi.so
;;
LAM)
MPI_ARCH_PATH=$LAM_ARCH_PATH
MPI_LIBRARY=$LAM_ARCH_PATH/lib/libmpi.so
;;
MPICH)
MPI_ARCH_PATH=$MPICH_ARCH_PATH
MPI_LIBRARY=$MPICH_ARCH_PATH/lib/libmpich.so
;;
*)
echo "*** Error: unknown/unsupported mpi: $WM_MPLIB"
exit 1
;;
esac
MPI_INCLUDE_PATH=$MPI_ARCH_PATH/include MPI_INCLUDE_PATH=$MPI_ARCH_PATH/include
MPI_RUN=$MPI_ARCH_PATH/bin/mpirun MPI_RUN=$MPI_ARCH_PATH/bin/mpirun
@ -274,7 +255,6 @@ installParaView ()
# for good measure - clear a few variables before using any of the functions # for good measure - clear a few variables before using any of the functions
unset VERBOSE INCLUDE_MPI INCLUDE_PYTHON INCLUDE_MESA PYTHON_LIBRARY unset VERBOSE INCLUDE_MPI INCLUDE_PYTHON INCLUDE_MESA PYTHON_LIBRARY
unset MPI_ARCH_PATH
unset CMAKE_VARIABLES OBJ_ADD unset CMAKE_VARIABLES OBJ_ADD
unset CMAKE_SKIP unset CMAKE_SKIP

View File

@ -130,70 +130,67 @@ endif
# Communications library # Communications library
# ~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~
unset MPI_ARCH_PATH
switch ("$WM_MPLIB") switch ("$WM_MPLIB")
case OPENMPI: case OPENMPI:
set ompi_version=1.2.6 set mpi_version=openmpi-1.2.6
setenv OPENMPI_HOME $thirdParty/openmpi-$ompi_version setenv MPI_ARCH_PATH $thirdParty/$mpi_version/platforms/$WM_OPTIONS
setenv OPENMPI_ARCH_PATH $OPENMPI_HOME/platforms/$WM_OPTIONS
# Tell OpenMPI where to find it's install directory # Tell OpenMPI where to find it's install directory
setenv OPAL_PREFIX $OPENMPI_ARCH_PATH setenv OPAL_PREFIX $MPI_ARCH_PATH
AddLib $OPENMPI_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddPath $OPENMPI_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/openmpi-$ompi_version setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/$mpi_version
unset ompi_version unset mpi_version
breaksw breaksw
case LAM: case LAM:
set lam_version=7.1.4 set mpi_version=lam-7.1.4
setenv LAMHOME $thirdParty/lam-$lam_version setenv MPI_ARCH_PATH $thirdParty/$mpi_version/platforms/$WM_OPTIONS
setenv LAM_ARCH_PATH $LAMHOME/platforms/$WM_OPTIONS setenv LAMHOME $thirdParty/$mpi_version
AddLib $LAM_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddPath $LAM_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/lam-$lam_version setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/$mpi_version
unset lam_version unset mpi_version
breaksw breaksw
case MPICH: case MPICH:
set mpich_version=1.2.4 set mpi_version=mpich-1.2.4
setenv MPICH_PATH $thirdParty/mpich-$mpich_version setenv MPI_ARCH_PATH $thirdParty/$mpi_version/platforms/$WM_OPTIONS
setenv MPICH_ARCH_PATH $MPICH_PATH/platforms/$WM_OPTIONS setenv MPICH_ROOT $MPI_ARCH_PATH
setenv MPICH_ROOT $MPICH_ARCH_PATH
AddLib $MPICH_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddPath $MPICH_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/mpich-$mpich_version setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/$mpi_version
unset mpich_version unset mpi_version
breaksw breaksw
case MPICH-GM: case MPICH-GM:
setenv MPICH_PATH /opt/mpi setenv MPICH_PATH /opt/mpi
setenv MPICH_ARCH_PATH $MPICH_PATH
setenv MPICH_ROOT $MPICH_ARCH_PATH setenv MPICH_ROOT $MPICH_ARCH_PATH
setenv MPI_ARCH_PATH $MPICH_PATH
setenv GM_LIB_PATH /opt/gm/lib64 setenv GM_LIB_PATH /opt/gm/lib64
AddLib $MPICH_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddLib $GM_LIB_PATH AddLib $GM_LIB_PATH
AddPath $MPICH_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/mpich-gm setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/mpich-gm
breaksw breaksw
case GAMMA: case GAMMA:
setenv GAMMA_ARCH_PATH /usr setenv GAMMA_ARCH_PATH /usr
# AddLib $GAMMA_ARCH_PATH/lib
# AddPath $GAMMA_ARCH_PATH/bin
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/gamma setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/gamma
breaksw breaksw
case MPI: case MPI:
setenv MPI_ARCH_PATH /opt/mpi
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/mpi setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/mpi
breaksw breaksw

View File

@ -39,18 +39,22 @@ fi
AddPath() AddPath()
{ {
if [ $# -ge 1 ]; then while [ $# -ge 1 ]
do
[ -d $1 ] || mkdir -p $1 [ -d $1 ] || mkdir -p $1
export PATH=$1:$PATH export PATH=$1:$PATH
fi shift
done
} }
AddLib() AddLib()
{ {
if [ $# -ge 1 ]; then while [ $# -ge 1 ]
do
[ -d $1 ] || mkdir -p $1 [ -d $1 ] || mkdir -p $1
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
fi shift
done
} }
@ -117,7 +121,7 @@ OpenFOAM)
if [ ! -d "$WM_COMPILER_DIR" ] if [ ! -d "$WM_COMPILER_DIR" ]
then then
echo echo
echo "Warning in $1:" echo "Warning in $WM_PROJECT_DIR/etc/settings.sh:"
echo " Cannot find $WM_COMPILER_DIR installation." echo " Cannot find $WM_COMPILER_DIR installation."
echo " Please install this compiler version or if you wish to use the system compiler," echo " Please install this compiler version or if you wish to use the system compiler,"
echo " change the WM_COMPILER_INST setting to 'System' in this file" echo " change the WM_COMPILER_INST setting to 'System' in this file"
@ -135,78 +139,71 @@ if [ "$WM_COMPILER_BIN" != "" ]; then
fi fi
# Third-party software
# ~~~~~~~~~~~~~~~~~~~~
thirdParty=$WM_PROJECT_INST_DIR/ThirdParty
# Communications library # Communications library
# ~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~
unset MPI_ARCH_PATH
case "$WM_MPLIB" in case "$WM_MPLIB" in
OPENMPI) OPENMPI)
ompi_version=1.2.6 mpi_version=openmpi-1.2.6
export OPENMPI_HOME=$thirdParty/openmpi-$ompi_version export MPI_ARCH_PATH=$thirdParty/$mpi_version/platforms/$WM_OPTIONS
export OPENMPI_ARCH_PATH=$OPENMPI_HOME/platforms/$WM_OPTIONS
# Tell OpenMPI where to find it's install directory # Tell OpenMPI where to find its install directory
export OPAL_PREFIX=$OPENMPI_ARCH_PATH export OPAL_PREFIX=$MPI_ARCH_PATH
AddLib $OPENMPI_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddPath $OPENMPI_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/openmpi-$ompi_version export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/$mpi_version
unset ompi_version unset mpi_version
;; ;;
LAM) LAM)
lam_version=7.1.4 mpi_version=lam-7.1.4
export LAMHOME=$thirdParty/lam-$lam_version export MPI_ARCH_PATH=$thirdParty/$mpi_version/platforms/$WM_OPTIONS
export LAM_ARCH_PATH=$LAMHOME/platforms/$WM_OPTIONS export LAMHOME=$thirdParty/$mpi_version
# note: LAMHOME is deprecated, should probably point to MPI_ARCH_PATH too
AddLib $LAM_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddPath $LAM_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/lam-$lam_version export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/$mpi_version
unset lam_version unset mpi_version
;; ;;
MPICH) MPICH)
mpich_version=1.2.4 mpi_version=mpich-1.2.4
export MPICH_PATH=$thirdParty/mpich-$mpich_version export MPI_ARCH_PATH=$thirdParty/$mpi_version/platforms/$WM_OPTIONS
export MPICH_ARCH_PATH=$MPICH_PATH/platforms/$WM_OPTIONS
export MPICH_ROOT=$MPICH_ARCH_PATH export MPICH_ROOT=$MPICH_ARCH_PATH
AddLib $MPICH_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddPath $MPICH_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mpich-$mpich_version export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/$mpi_version
unset mpich_version unset mpi_version
;; ;;
MPICH-GM) MPICH-GM)
export MPICH_PATH=/opt/mpi export MPICH_PATH=/opt/mpi
export MPICH_ARCH_PATH=$MPICH_PATH export MPICH_ROOT=$MPICH_PATH
export MPICH_ROOT=$MPICH_ARCH_PATH export MPI_ARCH_PATH=$MPICH_PATH
export GM_LIB_PATH=/opt/gm/lib64 export GM_LIB_PATH=/opt/gm/lib64
AddLib $MPICH_ARCH_PATH/lib AddLib $MPI_ARCH_PATH/lib
AddLib $GM_LIB_PATH AddLib $GM_LIB_PATH
AddPath $MPICH_ARCH_PATH/bin AddPath $MPI_ARCH_PATH/bin
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mpich-gm export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mpich-gm
;; ;;
GAMMA) GAMMA)
export GAMMA_ARCH_PATH=/usr export GAMMA_ARCH_PATH=/usr
# AddLib $GAMMA_ARCH_PATH/lib
# AddPath $GAMMA_ARCH_PATH/bin
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/gamma export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/gamma
;; ;;
MPI) MPI)
export MPI_ARCH_PATH=/opt/mpi
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mpi export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mpi
;; ;;

View File

@ -68,7 +68,8 @@ bool Foam::dictionary::add(entry* ePtr, bool mergeEntry)
else else
{ {
IOWarningIn("dictionary::add(entry* ePtr)", (*this)) IOWarningIn("dictionary::add(entry* ePtr)", (*this))
<< "problem replacing entry in dictionary " << name() << "problem replacing entry "<< ePtr->keyword()
<< " in dictionary " << name()
<< endl; << endl;
IDLList<entry>::remove(ePtr); IDLList<entry>::remove(ePtr);
@ -91,7 +92,8 @@ bool Foam::dictionary::add(entry* ePtr, bool mergeEntry)
else else
{ {
IOWarningIn("dictionary::add(entry* ePtr)", (*this)) IOWarningIn("dictionary::add(entry* ePtr)", (*this))
<< "attempt to add an entry already in dictionary " << name() << "attempt to add entry "<< ePtr->keyword()
<< " which already exists in dictionary " << name()
<< endl; << endl;
delete ePtr; delete ePtr;

View File

@ -535,16 +535,6 @@ Foam::argList::argList
// Set the case as an environment variable // Set the case as an environment variable
setEnv("FOAM_CASE", rootPath_/globalCase_, true); setEnv("FOAM_CASE", rootPath_/globalCase_, true);
// Set the relative parent directory as an environment variable
if (parRunControl_.parRun())
{
setEnv("FOAM_ROOT", "..", true);
}
else
{
setEnv("FOAM_ROOT", ".", true);
}
// Switch on signal trapping. We have to wait until after Pstream::init // Switch on signal trapping. We have to wait until after Pstream::init
// since this sets up its own ones. // since this sets up its own ones.
sigFpe_.set(); sigFpe_.set();