summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Mocciciola2016-10-01 17:39:01 +0200
committerMichele Mocciciola2016-10-01 17:39:01 +0200
commit16fc355db4e720c0998c8d89872d75159ea7b92d (patch)
tree67eb528dcaa4d7dcf40b14ef62ed847a7365cab0
parentd5e385d1fd9fcadd7887de97a574ac91083714ee (diff)
downloadaur-16fc355db4e720c0998c8d89872d75159ea7b92d.tar.gz
Updated to gcc-6. Introduced compilation of OpenSeesSP and OpenSeesMP. Executable links to metis-4. Many thanks to nema.arpit for his work.
-rw-r--r--.SRCINFO15
-rw-r--r--Makefile.def145
-rw-r--r--PKGBUILD42
-rw-r--r--min-max-conflict.patch24
-rw-r--r--png-miss-header.patch12
-rw-r--r--steeldr.f-bug.patch26
6 files changed, 178 insertions, 86 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a74ba2a2aa88..386cb34bdbbe 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Tue May 3 21:39:13 UTC 2016
+# Sat Oct 1 15:35:57 UTC 2016
pkgbase = opensees
pkgdesc = OpenSees, a software framework for developing applications to simulate the performance of structural and geotechnical systems subjected to earthquakes
pkgver = 2.5.0
- pkgrel = 1
+ pkgrel = 2
url = http://opensees.berkeley.edu/
arch = i686
arch = x86_64
@@ -15,8 +15,17 @@ pkgbase = opensees
depends = libpng
depends = mesa
depends = lapack
+ depends = mumps4
+ depends = glu
+ depends = openmpi
source = Makefile.def
- md5sums = ef90aba7305b6c5de948df9c5ba43df6
+ source = png-miss-header.patch
+ source = min-max-conflict.patch
+ source = steeldr.f-bug.patch
+ md5sums = cfcbd913cf332951aa326614e161fee3
+ md5sums = b8f21b0e77db6338fd6550ba3aaf8057
+ md5sums = 2e451d6e144b0e1a61e4efe622ef39b0
+ md5sums = b572eee6bfd3ca03c2e541cdb1dcfcc7
pkgname = opensees
diff --git a/Makefile.def b/Makefile.def
index d2cae4e20c2c..d1bcb88962e3 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -8,7 +8,8 @@
#
# Written: mickele
# Created: 12/2014
-# Last modified: 05/2016
+# Modified: nema.arpit
+# Last modified: 09/2016
#
# Send bug reports, comments or suggestions to
# https://aur.archlinux.org/packages/opensees/
@@ -32,13 +33,13 @@ OpenSees_PROGRAM = $(INSTALLDIR)/bin/OpenSees
OPERATING_SYSTEM = LINUX
-#GRAPHICS = UsingOpenGL, UsingX11, NONE
+# GRAPHICS = UsingOpenGL, UsingX11, NONE
GRAPHICS = UsingOpenGL
-#PROGRAMMING_MODE = SEQUENTIAL, THREADS OR DISTRIBUTED_MPI
+# PROGRAMMING_MODE = SEQUENTIAL, THREADS, PARALLEL_INTERPRETERS, PARALLEL
PROGRAMMING_MODE = SEQUENTIAL
-#COMPILER = GCC
+# COMPILER = GCC
COMPILER = GCC
#DEBUG_MODE = DEBUG, NO_DEBUG
@@ -65,7 +66,7 @@ CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS
LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK
ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK
UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK
-METISdir = $(HOME)/OpenSees/OTHER/METIS
+# METISdir = $(HOME)/OpenSees/OTHER/METIS
CSPARSEdir = $(HOME)/OpenSees/OTHER/CSPARSE
SRCdir = $(HOME)/OpenSees/SRC
@@ -74,11 +75,16 @@ ifeq ($(PROGRAMMING_MODE), THREADS)
else
SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_5.0/SRC
endif
-# SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.5/SRC
+ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
+ SUPERLU_DISTdir =
+else
+ SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.5/SRC
+endif
DIRS = $(BLASdir) $(CBLASdir) $(LAPACKdir) $(AMDdir) $(CSPARSEdir) \
- $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(SRCdir) $(METISdir)
+ $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(SRCdir) $(METISdir) \
+ $(SUPERLU_DISTdir)
# %-------------------------------------------------------%
# | SECTION 4: LIBRARIES |
@@ -109,18 +115,28 @@ CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a
#CBLAS_LIBRARY = -lcblas
ARPACK_LIBRARY = $(HOME)/lib/libArpack.a
UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a
-METIS_LIBRARY = $(HOME)/lib/libMetis.a
+# METIS_LIBRARY = $(HOME)/lib/libMetis.a
+METIS_LIBRARY = -lmetis-4
+METIS_INCLUDE = /usr/include/metis-4
CSPARSE_LIBRARY = $(HOME)/lib/libCSparse.a
TCL_LIBRARY = -ltk8.6 -ltcl8.6
-BLITZ_LIBRARY =
+TCL_INCLUDE =
+BLITZ_LIBRARY =
+BLITZ_INCLUDE =
AMD_LIBRARY = $(HOME)/lib/libAmd.a
+ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
+ DISTRIBUTED_SUPERLU_LIBRARY =
+else
+ DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a
+endif
+
ifeq ($(GRAPHICS), UsingOpenGL)
- GRAPHIC_LIBRARY = -lGL -lGLU -lX11
+ GRAPHIC_LIBRARY = -lGL -lGLU -lX11
else
- ifeq ($(GRAPHICS), UsingX11)
- GRAPHIC_LIBRARY = -lX11
- endif
+ ifeq ($(GRAPHICS), UsingX11)
+ GRAPHIC_LIBRARY = -lX11
+ endif
endif
ifeq ($(RELIABILITY), YES_RELIABILITY)
@@ -139,10 +155,11 @@ WIPE_LIBS = $(FE_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(ARPACK_LIBRARY) \
$(UMFPACK_LIBRARY) \
- $(METIS_LIBRARY) \
$(CSPARSE_LIBRARY) \
$(RELIABILITY_LIBRARY)
+# $(METIS_LIBRARY) \
+
# %---------------------------------------------------------%
# | SECTION 5: COMPILERS |
# | |
@@ -186,6 +203,14 @@ else
PROGRAMMING_FLAG = -DUSE_INTERP_RESULT
endif
+ifeq ($(PROGRAMMING_MODE), PARALLEL)
+ PROGRAMMING_FLAG = -D_PARALLEL_PROCESSING -DUSE_INTERP_RESULT -D_MUMPS -D_OPENMPI
+endif
+
+ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
+ PROGRAMMING_FLAG = -D_PARALLEL_INTERPRETERS -DUSE_INTERP_RESULT -D_MUMPS -D_OPENMPI
+endif
+
ifeq ($(DEBUG_MODE), DEBUG)
DEBUG_FLAG = -D_G3DEBUG
else
@@ -232,7 +257,7 @@ ifeq ($(DEBUG_MODE), DEBUG)
else
# modified as optimizaton currently causing problems with Steel01 code
- C++FLAGS = -Wall -O3 -D_UNIX -ftemplate-depth-30 -D_LINUX \
+ C++FLAGS = -Wall -O3 -D_UNIX -D_LINUX -std=c++98 \
$(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \
-ffloat-store -fpermissive
@@ -297,55 +322,28 @@ SHELL = /bin/sh
# | be linked with when creating executables. These are |
# | platform specific and typically order does matter!! |
# %---------------------------------------------------------%
-ifeq ($(PROGRAMMMING_MODE), SEQUENTIAL)
+ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
HAVEMUMPS = NO
MUMPS_FLAG =
MUMPS_INCLUDE =
MUMPS_LIB =
+ DISTSUPERLU_INCLUDE =
else
HAVEMUMPS = YES
+ DISTSUPERLU_INCLUDE = -I$(SUPERLU_DISTdir)
endif
ifeq ($(HAVEMUMPS), YES)
-
- MUMPS = YES
- MUMPS_FLAG = -D_MUMPS -D_OPENMPI
- #MUMPS_DIR = /gpfs/fmk/MUMPS_4.6.4
- MUMPS_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/MUMPS_4.10.0
-
- PLAT = MPICHGM-INTEL80
-
- SCALAP = $(BLACSlib) $(SCALAPlib) $(BLACSlib)
-
- BLACS_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/BLAC
- SCALAPACK_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/SCALAPACK
- LAPACK_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/LAPACK
-
- BLACS_LIB = -L$(BLACS_DIR)/LIB -lblacs_MPI-LINUX-0
- SCALAPACK_LIB = -L$(SCALAPACK_DIR) -lscalapack
- BLACS_LIB = -L$(BLACS_DIR)/INCLUDE
- SCALAPACK_LIB = -L$(SCALAPACK_DIR)
-
- PLAT = LINUX
-
- SCALAP = $(BLACS_LIB) $(SCALAPACK_LIB)
-
- MUMPS_LIB = -L$(MUMPS_DIR)/lib \
- $(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \
- $(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \
- $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \
- $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o \
- $(HOME)/lib/libdmumps.a \
- $(HOME)/lib/libmumps_common.a \
- $(HOME)/lib/libpord.a \
- $(HOME)/lib/libscalapack.a \
- $(HOME)/lib/blacs_MPI-LINUX-0.a \
- $(HOME)/lib/blacsCinit_MPI-LINUX-0.a \
- $(HOME)/lib/blacsF77init_MPI-LINUX-0.a \
- $(HOME)/PARALLEL_NUMERICAL_LIBS/BLACS/SRC/MPI/INTERNAL/bi_f77_get_constants.o \
- $(HOME)/lib/blas_LINUX.a
-
- MUMPS_INCLUDE = -I$(MUMPS_DIR)/include
+ MUMPS = YES
+ MUMPS_FLAG = -D_MUMPS -D_OPENMPI
+ MUMPS_DIR = /usr
+ MUMPS_LIB = $(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \
+ $(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \
+ $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \
+ $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o \
+ -L$(MUMPS_DIR)/lib \
+ -ldmumps -lmumps_common -lesmumps -lscotch -lscotcherr -lpord -lscalapack
+ MUMPS_INCLUDE = -I$(MUMPS_DIR)/include
endif
MACHINE_LINKLIBS = -L$(BASE)/lib \
@@ -358,20 +356,21 @@ MACHINE_NUMERICAL_LIBS = $(RELIABILITY_LIBRARY) -lm \
$(LAPACK_LIBRARY) $(BLAS_LIBRARY) $(CBLAS_LIBRARY) \
$(GRAPHIC_LIBRARY) $(OPTIMIZATION_LIBRARY) \
$(AMD_LIBRARY) \
+ $(METIS_LIBRARY) \
$(CSPARSE_LIBRARY) \
-ldl -lgfortran -lpng
ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
- PARALLEL_LIB =
+ PARALLEL_LIB =
else ifeq ($(PROGRAMMING_MODE), PARALLEL)
- PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \
- $(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSolver.o \
- $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \
- $(METIS_LIBRARY) $(HOME)/OpenSees/OTHER/METIS/frename.o $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_f77
+ PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \
+ $(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSolver.o \
+ $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \
+ $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_mpifh $(DISTRIBUTED_SUPERLU_LIBRARY)
else ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \
- $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \
- $(METIS_LIBRARY) $(HOME)/OpenSees/OTHER/METIS/frename.o $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_f77
+ $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \
+ $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_mpifh $(DISTRIBUTED_SUPERLU_LIBRARY)
endif
ifeq ($(PROGRAMMING_MODE), THREADS)
@@ -386,18 +385,18 @@ endif
# | The following macros specify include files needed for |
# | compilation. |
# %---------------------------------------------------------%
-MACHINE_INCLUDES = -I/usr/include \
- -I$(BASE)/include \
- -I/usr/include/cxx \
- $(MUMPS_INCLUDE) \
+MACHINE_INCLUDES = -I$(BASE)/include \
+ -I$(BASE)/include/cxx \
-I$(HOME)/include \
- -I$(HOME)/blitz \
-I$(UMFPACKdir) \
- -I$(SUPERLUdir)
-
-# this file contains all the OpenSees/SRC includes
+ -I$(SUPERLUdir) \
+ $(DISTSUPERLU_INCLUDE) \
+ $(MUMPS_INCLUDE) \
+ $(METIS_INCLUDE) \
+ $(BLITZ_INCLUDE) \
+ $(TCL_INCLUDE)
+
+# this file contains all the OpenSees/SRC includes FE_INCLUDES
include $(FE)/Makefile.incl
-TCL_INCLUDES =
-
-INCLUDES = $(TCL_INCLUDES) $(FE_INCLUDES) $(MACHINE_INCLUDES)
+INCLUDES = $(FE_INCLUDES) $(MACHINE_INCLUDES)
diff --git a/PKGBUILD b/PKGBUILD
index b356c2325dc8..af766f3a99b7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,19 +1,21 @@
# Maintainer: mickele
+#Contributor: nema.arpit
pkgname=opensees
pkgver=2.5.0
-pkgrel=1
+pkgrel=2
pkgdesc="OpenSees, a software framework for developing applications to simulate the performance of structural and geotechnical systems subjected to earthquakes"
arch=("i686" "x86_64")
url="http://opensees.berkeley.edu/"
-depends=('tk>=8.6' 'openssl' 'libpng' 'mesa' 'lapack')
+depends=('tk>=8.6' 'openssl' 'libpng' 'mesa' 'lapack' 'mumps4' 'glu' 'openmpi')
makedepends=('svn' 'gcc-fortran')
options=()
license=("custom")
+# source=("http://opensees.berkeley.edu/OpenSees/code/OpenSees${pkgver}.tar.gz" "Makefile.def")
+
# This release is available only through svn
# http://opensees.berkeley.edu/OpenSees/changeLog.php
-# source=("http://opensees.berkeley.edu/OpenSees/code/OpenSees${pkgver}.tar.gz" "Makefile.def")
-source=("Makefile.def")
+source=("Makefile.def" "png-miss-header.patch" "min-max-conflict.patch" "steeldr.f-bug.patch")
# _svntrunk="svn://opensees.berkeley.edu/usr/local/svn/OpenSees/trunk"
_svntrunk="svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk"
@@ -39,30 +41,50 @@ prepare() {
sed -e "s|\$(INSTALLDIR)|${srcdir}|" \
-e "s|\$(SRCDIR)|${srcdir}|" \
-i Makefile.def
-
+
msg "Patching..."
# Missing header
# error: ‘Z_BEST_COMPRESSION’ was not declared in this scope
- sed -e "s|#include <png.h>|#include <png.h>\n#include <zlib.h>|" \
- -i SRC/renderer/OpenGlDevice.cpp
+ svn patch "${srcdir}/png-miss-header.patch"
+
+ # Patch DistributedSuperLu.cpp to avoid min max macro conflict
+ # between f2c.h and stl_algobase.h in gcc6
+ svn patch "${srcdir}/min-max-conflict.patch"
+
+ # Fix STEELDR.f, potential bug in ShellMITC4.cpp
+ svn patch "${srcdir}/steeldr.f-bug.patch"
}
build() {
cd "${srcdir}/${_svnmod}"
-
- msg "Building..."
+
+ msg "Building OpenSees..."
mkdir -p "${srcdir}/lib"
mkdir -p "${srcdir}/bin"
+ make wipe
make
+
+ msg "Building OpenSeesMP..."
+ make wipe
+ make "OpenSees_PROGRAM = ${srcdir}/bin/OpenSeesMP" "PROGRAMMING_MODE = PARALLEL_INTERPRETERS"
+
+ msg "Building OpenSeesSP..."
+ make wipe
+ make "OpenSees_PROGRAM = ${srcdir}/bin/OpenSeesSP" "PROGRAMMING_MODE = PARALLEL"
}
package(){
msg "Istalling binary..."
install -d -m755 "${pkgdir}${_installdir}/bin"
install "${srcdir}/bin/OpenSees" "${pkgdir}${_installdir}/bin"
+ install "${srcdir}/bin/OpenSeesMP" "${pkgdir}${_installdir}/bin"
+ install "${srcdir}/bin/OpenSeesSP" "${pkgdir}${_installdir}/bin"
msg "Istalling licence..."
install -D -m644 "${srcdir}/OpenSees/COPYRIGHT" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
-md5sums=('ef90aba7305b6c5de948df9c5ba43df6')
+md5sums=('cfcbd913cf332951aa326614e161fee3'
+ 'b8f21b0e77db6338fd6550ba3aaf8057'
+ '2e451d6e144b0e1a61e4efe622ef39b0'
+ 'b572eee6bfd3ca03c2e541cdb1dcfcc7')
diff --git a/min-max-conflict.patch b/min-max-conflict.patch
new file mode 100644
index 000000000000..e5e3f4259fd4
--- /dev/null
+++ b/min-max-conflict.patch
@@ -0,0 +1,24 @@
+Index: SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.cpp
+===================================================================
+--- SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.cpp (revision 6236)
++++ SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.cpp (working copy)
+@@ -31,6 +31,7 @@
+
+ #include <DistributedSuperLU.h>
+ #include <SparseGenColLinSOE.h>
++#include <superlu_ddefs.h>
+ #include <f2c.h>
+ #include <math.h>
+ #include <Channel.h>
+@@ -37,10 +38,10 @@
+ #include <FEM_ObjectBroker.h>
+ #include <ID.h>
+
+-#include <superlu_ddefs.h>
+
+
+
++
+ superlu_options_t options;
+ SuperLUStat_t stat;
+ SuperMatrix A;
diff --git a/png-miss-header.patch b/png-miss-header.patch
new file mode 100644
index 000000000000..90f82ba3b7ea
--- /dev/null
+++ b/png-miss-header.patch
@@ -0,0 +1,12 @@
+Index: SRC/renderer/OpenGlDevice.cpp
+===================================================================
+--- SRC/renderer/OpenGlDevice.cpp (revision 6236)
++++ SRC/renderer/OpenGlDevice.cpp (working copy)
+@@ -32,6 +32,7 @@
+ #ifdef _GLX
+ #define _PNG
+ #include <png.h>
++#include <zlib.h>
+ #endif
+
+ #include <iostream>
diff --git a/steeldr.f-bug.patch b/steeldr.f-bug.patch
new file mode 100644
index 000000000000..fed7407791f7
--- /dev/null
+++ b/steeldr.f-bug.patch
@@ -0,0 +1,26 @@
+Index: SRC/element/shell/ShellMITC4.cpp
+===================================================================
+--- SRC/element/shell/ShellMITC4.cpp (revision 6236)
++++ SRC/element/shell/ShellMITC4.cpp (working copy)
+@@ -1126,7 +1126,7 @@
+ resid.Zero( ) ;
+
+ //start Yuli Huang (yulihuang@gmail.com) & Xinzheng Lu (luxz@tsinghua.edu.cn)
+- updateBasis( );
++// updateBasis( );
+ //end Yuli Huang (yulihuang@gmail.com) & Xinzheng Lu (luxz@tsinghua.edu.cn)
+
+ double dx34 = xl[0][2]-xl[0][3];
+Index: SRC/material/uniaxial/STEELDR.f
+===================================================================
+--- SRC/material/uniaxial/STEELDR.f (revision 6236)
++++ SRC/material/uniaxial/STEELDR.f (working copy)
+@@ -288,6 +288,8 @@
+ if(ep_s.le.ep_sushift(k)) then
+ fp_s=s1*fp_su
+ fps_s=fps_su
++ ep_sushift(k)=ep_s
++ ep_o(k)=ep_sushift(k)+ep_su
+ else
+ call Bauschinger(1,icheat,P_major,P_minor,region,
+ * ep_sushift,s1,fp_su,fps_su,Ep_u,f_y,ep_a,fp_a,