From 93187e134c92247df9aec26be48b6ac489fcf920 Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Wed, 20 Dec 2023 17:22:08 +0100 Subject: [PATCH 1/8] adding easyconfigs: Elmer-9.0-foss-2022b.eb and patches: Elmer-9.0-Qwt-6.2-Fix.patch, Elmer-9.0-renderarea-Qt5.patch --- .../e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch | 24 +++++++++ .../e/Elmer/Elmer-9.0-foss-2022b.eb | 53 +++++++++++++++++++ .../e/Elmer/Elmer-9.0-renderarea-Qt5.patch | 10 ++++ 3 files changed, 87 insertions(+) create mode 100644 easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch create mode 100644 easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb create mode 100644 easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch new file mode 100644 index 00000000000..7fb7622038a --- /dev/null +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch @@ -0,0 +1,24 @@ +--- ElmerGUI/Application/src/convergenceview.h.orig 2020-11-10 20:52:44.000000000 +0100 ++++ ElmerGUI/Application/src/convergenceview.h 2023-12-15 11:13:53.627242099 +0100 +@@ -51,8 +51,8 @@ + #include + #include + #include +-/*#include <-- deprecated in Qwt6, using qwt_compat.h instead*/ +-#include ++/*#include <-- deprecated in Qwt6, using qwt_compat.h instead ++#include <-- Removed in Qwt 6.2 */ + #include + #include + +@@ -76,8 +76,8 @@ + + private: + int d_count; +- QwtArray d_x; +- QwtArray d_y; ++ QVector d_x; ++ QVector d_y; + }; + + class Curve diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb new file mode 100644 index 00000000000..ef467e35e85 --- /dev/null +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb @@ -0,0 +1,53 @@ +easyblock = 'CMakeMake' + +name = 'Elmer' +version = '9.0' + +homepage = 'https://www.csc.fi/web/elmer/elmer' +description = """Elmer is an open source multiphysical simulation software mainly developed by +CSC - IT Center for Science (CSC). Elmer includes physical models of fluid dynamics, structural +mechanics, electromagnetics, heat transfer and acoustics, for example. These are described by +partial differential equations which Elmer solves by the Finite Element Method (FEM).""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'opt': True, 'optarch': True} + +source_urls = ['https://github.com/ElmerCSC/elmerfem/archive/'] +sources = ['release-%(version)s.tar.gz'] +patches = ['Elmer-9.0-DCRComplexSolve.patch', 'Elmer-9.0-Qwt-6.2-Fix.patch', 'Elmer-9.0-renderarea-Qt5.patch'] +checksums = [ + {'release-9.0.tar.gz': '08c5bf261e87ff37456c1aa0372db3c83efabe4473ea3ea0b8ec66f5944d1aa0'}, + {'Elmer-9.0-DCRComplexSolve.patch': '6419890b32f556fc4d531c92abed5dafb5c0867c420b73ec6477507ea6466dd9'}, + {'Elmer-9.0-Qwt-6.2-Fix.patch': 'c831c2072f6ce8f9753074832b14a3be0c5733272991b12a5d3c69b601ccb2aa'}, + {'Elmer-9.0-renderarea-Qt5.patch': '6218e8669477a1352faf72e52c1e7764451c6765ab2082f263054024115b2018'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('Hypre', '2.27.0'), + ('MUMPS', '5.6.1', '-metis'), + ('Qt5', '5.15.7'), + ('Qwt', '6.2.0'), + # ('Trilinos', '12.0.1', '-Python-2.7.9'), +] + +configopts = '-DWITH_ELMERGUI:BOOL=TRUE -DWITH_QT5:BOOL=TRUE ' +configopts += '-DWITH_MPI:BOOL=TRUE ' +configopts += '-DCMAKE_C_COMPILER=$(which $CC) ' +configopts += '-DCMAKE_Fortran_COMPILER=$(which $F90) ' +configopts += '-DCMAKE_CXX_COMPILER=$(which $CXX) ' +configopts += '-DBLAS_LIBRARIES="-L$EBVARBLAS_LAPACK_INC_DIR $EBVARLIBBLAS" ' +configopts += '-DLAPACK_LIBRARIES="-L$EBVARBLAS_LAPACK_INC_DIR $EBVARLIBLAPACK" ' +configopts += '-DSCALAPACK_LIBRARIES="-L$EBVARSCALAPACK_LIB_DIR $EBVARLIBSCALAPACK" ' + +sanity_check_paths = { + 'files': ['lib/elmersolver/libelmersolver.so'] + + ['bin/%s' % x for x in ['elmerf90', 'ElmerGrid', 'elmerld', 'ElmerSolver', + 'ElmerSolver_mpi', 'GebhardtFactors', 'matc', 'Mesh2D', 'ViewFactors']], + 'dirs': ['share/elmersolver/include'] +} + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch new file mode 100644 index 00000000000..cc7a876581a --- /dev/null +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch @@ -0,0 +1,10 @@ +--- ElmerGUI/Application/twod/renderarea.cpp.orig 2020-11-10 20:52:44.000000000 +0100 ++++ ElmerGUI/Application/twod/renderarea.cpp 2023-12-15 11:43:20.493498704 +0100 +@@ -38,6 +38,7 @@ + * * + *****************************************************************************/ + #include ++#include + #include + #include + #include From 9f7288d7e94562ae4eff71a553c3931ac8b9fc83 Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Wed, 20 Dec 2023 17:25:51 +0100 Subject: [PATCH 2/8] Add missing patch --- .../e/Elmer/Elmer-9.0-DCRComplexSolve.patch | 427 ++++++++++++++++++ 1 file changed, 427 insertions(+) create mode 100644 easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch new file mode 100644 index 00000000000..0c9cb3682f5 --- /dev/null +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch @@ -0,0 +1,427 @@ +--- fem/src/modules/DCRComplexSolve.F90.orig 2023-12-15 10:28:53.729618181 +0100 ++++ fem/src/modules/DCRComplexSolve.F90 2023-12-15 10:28:58.846691361 +0100 +@@ -205,7 +205,7 @@ + CALL Info( 'DCRComplexSolve', Message, Level=4 ) + CALL Info( 'DCRComplexSolve', '-------------------------------------', Level=4 ) + CALL Info( 'DCRComplexSolve', ' ', Level=4 ) +- CALL Info( 'DCRComplexSolve', 'Starting Assmebly', Level=4 ) ++ CALL Info( 'DCRComplexSolve', 'Starting Assembly', Level=4 ) + + CALL InitializeToZero( StiffMatrix, ForceVector ) + ! +@@ -426,14 +426,14 @@ + SUBROUTINE InputTensor( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: i, n, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: n1,n2,t1 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -444,30 +444,33 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(Hwrk,2),3) ++ IsScalar = (n1==1 .AND. n2==1) + + IF ( .NOT. stat ) RETURN + +- IF ( SIZE(Hwrk,1) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,2)) +- Tensor( i,i,1:n ) = Hwrk( 1,1,1:n ) +- END DO +- +- ELSE IF ( SIZE(Hwrk,2) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) +- Tensor(i,i,1:n) = Hwrk(i,1,1:n) +- END DO +- ++ IF ( IsScalar ) THEN ++ t1 = SIZE(Tensor,1) ++ DO i=1,t1 ++ Tensor(i,i,1:n) = Hwrk(1,1,1:n) ++ END DO + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) +- DO j=1,MIN(3,SIZE(Hwrk,2)) ++ IF ( n1 == 1 ) THEN ++ DO i=1,n2 ++ Tensor( i,i,1:n ) = Hwrk( 1,i,1:n ) ++ END DO ++ ELSE IF ( n2 == 1 ) THEN ++ DO i=1,n1 ++ Tensor(i,i,1:n) = Hwrk(i,1,1:n) ++ END DO ++ ELSE ++ DO i=1,n1 ++ DO j=1,n2 + Tensor( i,j,1:n ) = Hwrk(i,j,1:n) +- END DO +- END DO +- ++ END DO ++ END DO ++ END IF + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputTensor +@@ -485,7 +488,8 @@ + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: i ++ INTEGER :: n1,n2 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -496,22 +500,20 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(HWrk,2),3) ++ IsScalar = (n1==1 .AND. n2==1) + + IF ( .NOT. stat ) RETURN +- +- IF ( SIZE(Hwrk,1) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,2)) +- Tensor( i,1:n ) = Hwrk( 1,1,1:n ) ++ ++ IF ( n1 == 1 ) THEN ++ DO i=1,n2 ++ Tensor( i,1:n ) = Hwrk( 1,i,1:n ) + END DO +- + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) ++ DO i=1,n1 + Tensor( i,1:n ) = Hwrk( i,1,1:n ) + END DO +- + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputVector +@@ -1061,20 +1063,20 @@ + + !------------------------------------------------------------------------------ + +-contains ++ CONTAINS + + !------------------------------------------------------------------------------ + SUBROUTINE InputVector( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: i, n, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: n1,n2 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -1085,22 +1087,20 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(HWrk,2),3) ++ IsScalar = (n1==1 .AND. n2==1) + + IF ( .NOT. stat ) RETURN + +- IF ( SIZE(Hwrk,1) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,2)) ++ IF ( n1==1 ) THEN ++ DO i=1,n2 + Tensor( i,1:n ) = Hwrk( 1,1,1:n ) + END DO +- + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) ++ DO i=1,n1 + Tensor( i,1:n ) = Hwrk( i,1,1:n ) + END DO +- + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputVector +@@ -1127,7 +1127,6 @@ + + INTEGER :: i,j,k,l,n,t,DIM,En,Pn + LOGICAL :: stat, GotIt +-! REAL(KIND=dp), POINTER :: Hwrk(:,:,:) + + REAL(KIND=dp) :: Grad(3,3), Normal(3), EdgeLength, Jump, JumpReal, JumpImag, & + GradReal(3,3),GradImag(3,3) +@@ -1148,17 +1147,6 @@ + + TYPE(GaussIntegrationPoints_t), TARGET :: IntegStuff + +-! LOGICAL :: First = .TRUE. +-! SAVE Hwrk, First +-!------------------------------------------------------------------------------ +- +-! Initialize: +-! ----------- +- +-! IF ( First ) THEN +-! First = .FALSE. +-! NULLIFY( Hwrk ) +-! END IF + + SELECT CASE( CurrentCoordinateSystem() ) + CASE( AxisSymmetric, CylindricSymmetric ) +@@ -1361,20 +1349,20 @@ + Temperature, Pressure ) + !------------------------------------------------------------------------------ + +-contains ++ CONTAINS + + !------------------------------------------------------------------------------ + SUBROUTINE InputTensor( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: i, n, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: n1,n2 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -1385,30 +1373,27 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 + +- IF ( .NOT. stat ) RETURN ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(Hwrk,2),3) ++ IsScalar = (n1==1 .AND. n2==1) + +- IF ( SIZE(Hwrk,1) == 1 ) THEN ++ IF ( .NOT. stat ) RETURN + +- DO i=1,MIN(3,SIZE(Hwrk,2)) ++ IF ( n1 == 1 ) THEN ++ DO i=1,n2 + Tensor( i,i,1:n ) = Hwrk( 1,1,1:n ) + END DO +- +- ELSE IF ( SIZE(Hwrk,2) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) ++ ELSE IF ( n2 == 1 ) THEN ++ DO i=1,n1 + Tensor(i,i,1:n) = Hwrk(i,1,1:n) + END DO +- + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) +- DO j=1,MIN(3,SIZE(Hwrk,2)) ++ DO i=1,n1 ++ DO j=1,n2 + Tensor( i,j,1:n ) = Hwrk(i,j,1:n) + END DO + END DO +- + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputTensor +@@ -1419,14 +1404,14 @@ + SUBROUTINE InputVector( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: i, n, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: n1,n2 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -1437,22 +1422,20 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(Hwrk,2),3) + ++ IsScalar = (n1==1 .AND. n2==1) + IF ( .NOT. stat ) RETURN + +- IF ( SIZE(Hwrk,1) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,2)) ++ IF ( n1 == 1 ) THEN ++ DO i=1,n2 + Tensor( i,1:n ) = Hwrk( 1,1,1:n ) + END DO +- + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) ++ DO i=1,n1 + Tensor( i,1:n ) = Hwrk( i,1,1:n ) + END DO +- + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputVector +@@ -1497,9 +1480,6 @@ + LOGICAL :: notScalar = .TRUE. + TYPE( ValueList_t ), POINTER :: Material + TYPE(GaussIntegrationPoints_t), TARGET :: IntegStuff +- +-! LOGICAL :: First = .TRUE. +-! SAVE Hwrk, First + !------------------------------------------------------------------------------ + + ! Initialize: +@@ -1720,14 +1700,14 @@ + SUBROUTINE InputTensor( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: i, n, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: n1,n2 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -1738,30 +1718,27 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 +- +- IF ( .NOT. stat ) RETURN + +- IF ( SIZE(Hwrk,1) == 1 ) THEN ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(HWrk,2),3) ++ IsScalar = (n1==1 .AND. n2==1) + +- DO i=1,MIN(3,SIZE(Hwrk,2)) ++ IF ( .NOT. stat ) RETURN ++ ++ IF ( n1 == 1 ) THEN ++ DO i=1,n2 + Tensor( i,i,1:n ) = Hwrk( 1,1,1:n ) + END DO +- +- ELSE IF ( SIZE(Hwrk,2) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) ++ ELSE IF ( n2 == 1 ) THEN ++ DO i=1,n1 + Tensor(i,i,1:n) = Hwrk(i,1,1:n) + END DO +- + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) +- DO j=1,MIN(3,SIZE(Hwrk,2)) ++ DO i=1,n1 ++ DO j=1,n2 + Tensor( i,j,1:n ) = Hwrk(i,j,1:n) + END DO + END DO +- + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputTensor +@@ -1772,14 +1749,14 @@ + SUBROUTINE InputVector( Tensor, IsScalar, Name, Material, n, NodeIndexes ) + !------------------------------------------------------------------------------ + REAL(KIND=dp) :: Tensor(:,:) +- INTEGER :: n, NodeIndexes(:) ++ INTEGER :: i, n, NodeIndexes(:) + LOGICAL :: IsScalar + CHARACTER(LEN=*) :: Name + TYPE(ValueList_t), POINTER :: Material + !------------------------------------------------------------------------------ + LOGICAL :: FirstTime = .TRUE., stat + REAL(KIND=dp), POINTER :: Hwrk(:,:,:) +- ++ INTEGER :: n1, n2 + SAVE FirstTime, Hwrk + !------------------------------------------------------------------------------ + IF ( FirstTime ) THEN +@@ -1790,22 +1767,20 @@ + Tensor = 0.0d0 + + CALL ListGetRealArray( Material, Name, Hwrk, n, NodeIndexes, stat ) +- IsScalar = SIZE(HWrk,1) == 1 .AND. SIZE(HWrk,2) == 1 ++ n1 = MIN(SIZE(HWrk,1),3) ++ n2 = MIN(SIZE(HWrk,2),3) + ++ IsScalar = (n1 == 1 .AND. n2 == 1 ) + IF ( .NOT. stat ) RETURN + +- IF ( SIZE(Hwrk,1) == 1 ) THEN +- +- DO i=1,MIN(3,SIZE(Hwrk,2)) ++ IF ( n1 == 1 ) THEN ++ DO i=1,n2 + Tensor( i,1:n ) = Hwrk( 1,1,1:n ) + END DO +- + ELSE +- +- DO i=1,MIN(3,SIZE(Hwrk,1)) ++ DO i=1,n1 + Tensor( i,1:n ) = Hwrk( i,1,1:n ) + END DO +- + END IF + !------------------------------------------------------------------------------ + END SUBROUTINE InputVector From 754664f8234f7f17194336a60edbdf17076dfe95 Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Thu, 21 Dec 2023 08:43:32 +0100 Subject: [PATCH 3/8] Add missing patch --- .../q/Qwt/Qwt-6.2.0-GCCcore-12.2.0.eb | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 easybuild/easyconfigs/q/Qwt/Qwt-6.2.0-GCCcore-12.2.0.eb diff --git a/easybuild/easyconfigs/q/Qwt/Qwt-6.2.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/q/Qwt/Qwt-6.2.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..b37850e86e2 --- /dev/null +++ b/easybuild/easyconfigs/q/Qwt/Qwt-6.2.0-GCCcore-12.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'Qwt' +version = '6.2.0' + +homepage = 'https://qwt.sourceforge.io/' +description = """The Qwt library contains GUI Components and utility classes which are primarily useful for programs + with a technical background.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_BZ2] +patches = ['Qwt-6.2.0_fix-install-prefix.patch'] +checksums = [ + '9194f6513955d0fd7300f67158175064460197abab1a92fa127a67a4b0b71530', # qwt-6.2.0.tar.bz2 + 'ac5c329c0693d565b461cdd3b36c1b96b4d09885e1e0c10929fc7a9021c03bad', # Qwt-6.2.0_fix-install-prefix.patch +] + +builddependencies = [ + ('binutils', '2.39'), + ('pkgconf', '1.9.3'), +] + +dependencies = [ + ('Qt5', '5.15.7'), +] + +skipsteps = ['configure'] + +prebuildopts = 'export QWT_PREFIX=%(installdir)s && ' +prebuildopts += "qmake qwt.pro && " + +sanity_check_paths = { + 'files': ['lib/libqwt.%s' % SHLIB_EXT, 'lib/pkgconfig/Qt5Qwt6.pc'], + 'dirs': ['doc', 'features', 'include', 'plugins'], +} + +moduleclass = 'lib' From 1bba3097286094aa6f9aa96b580aa50950177d82 Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Thu, 21 Dec 2023 21:12:59 +0100 Subject: [PATCH 4/8] Add description to patches --- easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch | 1 + easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch | 1 + easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch | 1 + 3 files changed, 3 insertions(+) diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch index 0c9cb3682f5..744941d4d92 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch @@ -1,3 +1,4 @@ +Backport to 9.0 to allow compile with foss/2022b compiler. --- fem/src/modules/DCRComplexSolve.F90.orig 2023-12-15 10:28:53.729618181 +0100 +++ fem/src/modules/DCRComplexSolve.F90 2023-12-15 10:28:58.846691361 +0100 @@ -205,7 +205,7 @@ diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch index 7fb7622038a..4ab1d529f29 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch @@ -1,3 +1,4 @@ +Fix for recent Qwt --- ElmerGUI/Application/src/convergenceview.h.orig 2020-11-10 20:52:44.000000000 +0100 +++ ElmerGUI/Application/src/convergenceview.h 2023-12-15 11:13:53.627242099 +0100 @@ -51,8 +51,8 @@ diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch index cc7a876581a..e91976f2ceb 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch @@ -1,3 +1,4 @@ +Fix for recent Qt5 --- ElmerGUI/Application/twod/renderarea.cpp.orig 2020-11-10 20:52:44.000000000 +0100 +++ ElmerGUI/Application/twod/renderarea.cpp 2023-12-15 11:43:20.493498704 +0100 @@ -38,6 +38,7 @@ From b08ba66f7c6db32ba58c531309b4fd3f502bf8cf Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Fri, 22 Dec 2023 06:22:37 +0100 Subject: [PATCH 5/8] Update patches checksums --- easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb index ef467e35e85..041ad527bbd 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb @@ -17,9 +17,9 @@ sources = ['release-%(version)s.tar.gz'] patches = ['Elmer-9.0-DCRComplexSolve.patch', 'Elmer-9.0-Qwt-6.2-Fix.patch', 'Elmer-9.0-renderarea-Qt5.patch'] checksums = [ {'release-9.0.tar.gz': '08c5bf261e87ff37456c1aa0372db3c83efabe4473ea3ea0b8ec66f5944d1aa0'}, - {'Elmer-9.0-DCRComplexSolve.patch': '6419890b32f556fc4d531c92abed5dafb5c0867c420b73ec6477507ea6466dd9'}, - {'Elmer-9.0-Qwt-6.2-Fix.patch': 'c831c2072f6ce8f9753074832b14a3be0c5733272991b12a5d3c69b601ccb2aa'}, - {'Elmer-9.0-renderarea-Qt5.patch': '6218e8669477a1352faf72e52c1e7764451c6765ab2082f263054024115b2018'}, + {'Elmer-9.0-DCRComplexSolve.patch': '360d39251cd09423e4caa7cd7b150817fa17724c5eabc00b5427b113de9e4708'}, + {'Elmer-9.0-Qwt-6.2-Fix.patch': '9abf73537ee1053bd3e49c55fa19b83043ba51fb4a4176600964da0b5cd5a9ca'}, + {'Elmer-9.0-renderarea-Qt5.patch': '745b98335b5ba43bef7a4ee7123b00bdb4f784c875d138a16dea1d0797567cd9'}, ] builddependencies = [ From afa35ba031bb8f966d0bd52c42a62bbfbdc112cf Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Wed, 27 Dec 2023 15:24:10 +0100 Subject: [PATCH 6/8] Update patches with backport PR and commit references --- .../easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch | 3 +++ easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch | 2 ++ easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb | 6 +++--- .../easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch | 3 +++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch index 744941d4d92..e2823334326 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-DCRComplexSolve.patch @@ -1,4 +1,7 @@ Backport to 9.0 to allow compile with foss/2022b compiler. +See history of https://github.com/ElmerCSC/elmerfem/commits/devel/fem/src/modules/DCRComplexSolve.F90 +and commit "Try to fix some strange compile errors appearing after all these years in DCRComplexSolve.F90" +https://github.com/ElmerCSC/elmerfem/commit/54fd87054f687305644b92d0525a3f0cd4423a93 --- fem/src/modules/DCRComplexSolve.F90.orig 2023-12-15 10:28:53.729618181 +0100 +++ fem/src/modules/DCRComplexSolve.F90 2023-12-15 10:28:58.846691361 +0100 @@ -205,7 +205,7 @@ diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch index 4ab1d529f29..74e7c145848 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-Qwt-6.2-Fix.patch @@ -1,4 +1,6 @@ Fix for recent Qwt +See PR https://github.com/ElmerCSC/elmerfem/pull/294 ( Compatibility with Qwt 6.2. Fix for #293 #294 ) +and commit https://github.com/ElmerCSC/elmerfem/commit/48e9430ccb858ca5bda28b967a0c84b51e2404b2 --- ElmerGUI/Application/src/convergenceview.h.orig 2020-11-10 20:52:44.000000000 +0100 +++ ElmerGUI/Application/src/convergenceview.h 2023-12-15 11:13:53.627242099 +0100 @@ -51,8 +51,8 @@ diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb index 041ad527bbd..f477fdf3c2b 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb @@ -17,9 +17,9 @@ sources = ['release-%(version)s.tar.gz'] patches = ['Elmer-9.0-DCRComplexSolve.patch', 'Elmer-9.0-Qwt-6.2-Fix.patch', 'Elmer-9.0-renderarea-Qt5.patch'] checksums = [ {'release-9.0.tar.gz': '08c5bf261e87ff37456c1aa0372db3c83efabe4473ea3ea0b8ec66f5944d1aa0'}, - {'Elmer-9.0-DCRComplexSolve.patch': '360d39251cd09423e4caa7cd7b150817fa17724c5eabc00b5427b113de9e4708'}, - {'Elmer-9.0-Qwt-6.2-Fix.patch': '9abf73537ee1053bd3e49c55fa19b83043ba51fb4a4176600964da0b5cd5a9ca'}, - {'Elmer-9.0-renderarea-Qt5.patch': '745b98335b5ba43bef7a4ee7123b00bdb4f784c875d138a16dea1d0797567cd9'}, + {'Elmer-9.0-DCRComplexSolve.patch': '456e9b255c4cebffd04c1243001a284fcdbda27cb586640f3f852c67511881eb'}, + {'Elmer-9.0-Qwt-6.2-Fix.patch': 'c21b83364e08d2cd8bf3f2d62dfd16ed4f9bc478b8808cf36ecffa5174247b32'}, + {'Elmer-9.0-renderarea-Qt5.patch': '66c185f4e15ce738b85887b138258e70d94d7ae786e52b863624a4b538761639'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch index e91976f2ceb..643e538daac 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-renderarea-Qt5.patch @@ -1,4 +1,7 @@ Fix for recent Qt5 +See https://github.com/ElmerCSC/elmerfem/issues/233 +and https://github.com/ElmerCSC/elmerfem/commit/e057b0d46a6d1708a0d322bc73d70594a63de447 +history for https://github.com/ElmerCSC/elmerfem/commits/devel/ElmerGUI/Application/twod/renderarea.cpp --- ElmerGUI/Application/twod/renderarea.cpp.orig 2020-11-10 20:52:44.000000000 +0100 +++ ElmerGUI/Application/twod/renderarea.cpp 2023-12-15 11:43:20.493498704 +0100 @@ -38,6 +38,7 @@ From 253636ff975467b7b911463f7cbef4ce753189d4 Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Wed, 27 Dec 2023 15:41:35 +0100 Subject: [PATCH 7/8] Add sanity check command and remove Trilinos --- easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb index f477fdf3c2b..eaea84ef6b4 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb @@ -31,7 +31,6 @@ dependencies = [ ('MUMPS', '5.6.1', '-metis'), ('Qt5', '5.15.7'), ('Qwt', '6.2.0'), - # ('Trilinos', '12.0.1', '-Python-2.7.9'), ] configopts = '-DWITH_ELMERGUI:BOOL=TRUE -DWITH_QT5:BOOL=TRUE ' @@ -50,4 +49,6 @@ sanity_check_paths = { 'dirs': ['share/elmersolver/include'] } +sanity_check_commands = ["ElmerSolver -v"] + moduleclass = 'cae' From 1e1458486f5310939b556c82b0660946687c8e47 Mon Sep 17 00:00:00 2001 From: Leon Kos Date: Thu, 25 Jan 2024 22:37:28 +0100 Subject: [PATCH 8/8] Remove compiler selectors --- easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb | 3 --- 1 file changed, 3 deletions(-) diff --git a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb index eaea84ef6b4..8b541bcdd0e 100644 --- a/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb +++ b/easybuild/easyconfigs/e/Elmer/Elmer-9.0-foss-2022b.eb @@ -35,9 +35,6 @@ dependencies = [ configopts = '-DWITH_ELMERGUI:BOOL=TRUE -DWITH_QT5:BOOL=TRUE ' configopts += '-DWITH_MPI:BOOL=TRUE ' -configopts += '-DCMAKE_C_COMPILER=$(which $CC) ' -configopts += '-DCMAKE_Fortran_COMPILER=$(which $F90) ' -configopts += '-DCMAKE_CXX_COMPILER=$(which $CXX) ' configopts += '-DBLAS_LIBRARIES="-L$EBVARBLAS_LAPACK_INC_DIR $EBVARLIBBLAS" ' configopts += '-DLAPACK_LIBRARIES="-L$EBVARBLAS_LAPACK_INC_DIR $EBVARLIBLAPACK" ' configopts += '-DSCALAPACK_LIBRARIES="-L$EBVARSCALAPACK_LIB_DIR $EBVARLIBSCALAPACK" '