diff options
author | David E <dave.eckold@gmail.com> | 2021-11-03 18:13:33 +0000 |
---|---|---|
committer | Andrew Ammerlaan <andrewammerlaan@gentoo.org> | 2021-11-04 11:25:29 +0100 |
commit | 213da7e78c0a86d5aab7eb0ac26a60bc5df94d20 (patch) | |
tree | 345c6f7942651b4e545b2ae9ed14e1dc02bf1e79 /sci-misc | |
parent | profiles/package.mask: mask sci-libs/geom for removal (diff) | |
download | sci-213da7e78c0a86d5aab7eb0ac26a60bc5df94d20.tar.gz sci-213da7e78c0a86d5aab7eb0ac26a60bc5df94d20.tar.bz2 sci-213da7e78c0a86d5aab7eb0ac26a60bc5df94d20.zip |
sci-misc/elmer-fem: Fix compile error
Hi
This pull request fixes a compile error associated with issue
[#274](https://github.com/ElmerCSC/elmerfem/issues/274).
I've added the patch attached to this issue as well as the following:
- Bumped ebuild EAPI to version 8
- Exposed a useflag for WITH_Mumps
- removed the softblock on arpack by changing the
ELMER_INSTALL_LIB_DIR to `/usr/$(get_libdir)/elmersolver`
This location matches the cmake file from upstream and prevents
a collision with system arpack.
Signed-off-by: David Eckold <dave.eckold@gmail.com>
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Closes: https://github.com/gentoo/sci/pull/1120
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'sci-misc')
-rw-r--r-- | sci-misc/elmer-fem/elmer-fem-9.0-r1.ebuild | 76 | ||||
-rw-r--r-- | sci-misc/elmer-fem/files/elmer-fem-DCRComplexSolve-compile-error.patch | 70 | ||||
-rw-r--r-- | sci-misc/elmer-fem/metadata.xml | 1 |
3 files changed, 147 insertions, 0 deletions
diff --git a/sci-misc/elmer-fem/elmer-fem-9.0-r1.ebuild b/sci-misc/elmer-fem/elmer-fem-9.0-r1.ebuild new file mode 100644 index 000000000..c1ec06737 --- /dev/null +++ b/sci-misc/elmer-fem/elmer-fem-9.0-r1.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_STANDARD=90 + +inherit fortran-2 flag-o-matic cmake multilib + +ELMER_ROOT="elmerfem" +MY_PN=${PN/elmer-/} + +DESCRIPTION="Finite element programs, libraries, and visualization tools" +HOMEPAGE="https://www.csc.fi/web/elmer http://www.elmerfem.org/blog/" +SRC_URI="https://github.com/ElmerCSC/elmerfem/archive/release-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="ice gui matc mumps mpi post test" +RESTRICT="!test? ( test )" + +RDEPEND=" + virtual/blas + virtual/lapack + sci-libs/arpack + mumps? ( sci-libs/mumps ) + mpi? ( sys-cluster/openmpi ) + post? ( + dev-lang/tcl:0= + dev-lang/tk:0= + ) + gui? ( x11-libs/qwt:6 ) +" +DEPEND="${RDEPEND}" +# Note this seems to only configure correctly with the elmer version of umfpack +# But this doesn't stop it from compiling / working without it + +PATCHES=( + "${FILESDIR}/${PN}-DCRComplexSolve-compile-error.patch" + "${FILESDIR}/${PN}-ElmerIce-compile.patch" +) + +S="${WORKDIR}/elmerfem-release-${PV}" + +src_prepare() { + cmake_src_prepare + sed -i '/#include <QPainter>/a #include <QPainterPath>' ElmerGUI/Application/twod/renderarea.cpp || die + test-flag-FC -fallow-argument-mismatch && append-fflags -fallow-argument-mismatch + test-flag-FC -fallow-invalid-boz && append-fflags -fallow-invalid-boz + # TODO: fix the tests, fails in compile phase: multiple rules to make target + rm -r fem/tests/* || die + touch fem/tests/CMakeLists.txt || die +} + +src_configure() { + local mycmakeargs=( + -DMPI_Fortran_COMPILE_FLAGS="$FCFLAGS" + -DCMAKE_Fortran_FLAGS="$FCFLAGS" + -DELMER_INSTALL_LIB_DIR="/usr/$(get_libdir)/elmersolver" + -DWITH_MPI="$(usex mpi)" + -DWITH_OpenMP="$(usex mpi)" + -DWITH_MATC="$(usex matc)" + -DWITH_Mumps="$(usex mumps)" + -DWITH_ElmerIce="$(usex ice)" + -DWITH_ELMERPOST="$(usex post)" + -DWITH_ELMERGUI="$(usex gui)" + -DWITH_QT5="$(usex gui)" + -DWITH_QWT="$(usex gui)" + -DQWT_INCLUDE_DIR="/usr/include/qwt6" + -DQWT_LIBRARY="/usr/$(get_libdir)/libqwt6-qt5.so" + -DBUILD_TESTING="$(usex test)" + ) + cmake_src_configure +} diff --git a/sci-misc/elmer-fem/files/elmer-fem-DCRComplexSolve-compile-error.patch b/sci-misc/elmer-fem/files/elmer-fem-DCRComplexSolve-compile-error.patch new file mode 100644 index 000000000..6f9cdf289 --- /dev/null +++ b/sci-misc/elmer-fem/files/elmer-fem-DCRComplexSolve-compile-error.patch @@ -0,0 +1,70 @@ +From 8ea87194fb50ff052a75212f9d2a2ae217edad95 Mon Sep 17 00:00:00 2001 +From: Mathias <mathias@localhost.localdomain> +Date: Sun, 2 May 2021 12:06:15 +0200 +Subject: [PATCH] fixed DCRComplexSolve compile error + +--- + fem/src/modules/DCRComplexSolve.F90 | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/fem/src/modules/DCRComplexSolve.F90 b/fem/src/modules/DCRComplexSolve.F90 +index cfa71dee..b6bb59bc 100644 +--- a/fem/src/modules/DCRComplexSolve.F90 ++++ b/fem/src/modules/DCRComplexSolve.F90 +@@ -426,7 +426,7 @@ CONTAINS + SUBROUTINE InputTensor( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: n, i, j, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material +@@ -485,7 +485,7 @@ CONTAINS + SUBROUTINE InputVector( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: n, i, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material +@@ -543,7 +543,7 @@ CONTAINS + REAL(KIND=dp) :: DiffCoef(3,3), Velo(3) + COMPLEX(KIND=dp) :: LSTIFF(2*n,2*n), LFORCE(2*n), A + LOGICAL :: Stat +- INTEGER :: i,p,q,t,dim, NBasis, CoordSys ++ INTEGER :: i,j,p,q,t,dim, NBasis, CoordSys + TYPE(GaussIntegrationPoints_t) :: IntegStuff + + REAL(KIND=dp) :: X,Y,Z,Metric(3,3),SqrtMetric,Symb(3,3,3),dSymb(3,3,3,3) +@@ -678,7 +678,7 @@ CONTAINS + C1(3), C0 + COMPLEX(KIND=dp) :: LSTIFF(n,n), LFORCE(n), A + LOGICAL :: Stat +- INTEGER :: i,p,q,t,dim,CoordSys ++ INTEGER :: i,j,p,q,t,dim,CoordSys + TYPE(GaussIntegrationPoints_t) :: IntegStuff + !------------------------------------------------------------------------------ + dim = CoordinateSystemDimension() +@@ -1374,7 +1374,7 @@ contains + SUBROUTINE InputTensor( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: n, i, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material +@@ -1426,7 +1426,7 @@ contains + SUBROUTINE InputVector( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: n, i, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material +-- +2.31.1 + diff --git a/sci-misc/elmer-fem/metadata.xml b/sci-misc/elmer-fem/metadata.xml index 341020564..feab34b47 100644 --- a/sci-misc/elmer-fem/metadata.xml +++ b/sci-misc/elmer-fem/metadata.xml @@ -12,6 +12,7 @@ <flag name="gui">Build the ElmerGUI</flag> <flag name="matc">Build the Elmer matc library</flag> <flag name="ice">Build ElmerICE</flag> + <flag name="mumps">Build with Mumps</flag> <flag name="post">Build ElmerPOST</flag> </use> </pkgmetadata> |