From 4f591a6fe3f2fc1477d5b740d1eb9e56a37d56b3 Mon Sep 17 00:00:00 2001
From: Ali Dorostkar <ashkan.dorostkar@gmail.com>
Date: Mon, 30 May 2016 16:42:24 +0200
Subject: [PATCH] Step-40 test for 8.3.0 and earlier

Integrated part of step-40 to be tested for earlier versions of dealii
---
 .../repos/builtin/packages/dealii/package.py  | 44 ++++++++++---------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index c871059075..e83347409e 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -228,29 +228,33 @@ def install(self, spec, prefix):
 
         # take step-40 which can use both PETSc and Trilinos
         # FIXME: switch step-40 to MPI run
-        if spec.satisfies('@8.4.0:'):
-            with working_dir('examples/step-40'):
-                print('=====================================')
-                print('========== Step-40 PETSc ============')
-                print('=====================================')
-                # list the number of cycles to speed up
-                filter_file(r'(const unsigned int n_cycles = 8;)',
-                            ('const unsigned int n_cycles = 2;'), 'step-40.cc')
-                cmake('.')
-                if '^petsc' in spec:
-                    make('release')
-                    make('run', parallel=False)
-            
-                print('=====================================')
-                print('========= Step-40 Trilinos ==========')
-                print('=====================================')
-                # change Linear Algebra to Trilinos
+        with working_dir('examples/step-40'):
+            print('=====================================')
+            print('========== Step-40 PETSc ============')
+            print('=====================================')
+            # list the number of cycles to speed up
+            filter_file(r'(const unsigned int n_cycles = 8;)',
+                        ('const unsigned int n_cycles = 2;'), 'step-40.cc')
+            cmake('.')
+            if '^petsc' in spec:
+                make('release')
+                make('run', parallel=False)
+
+            print('=====================================')
+            print('========= Step-40 Trilinos ==========')
+            print('=====================================')
+            # change Linear Algebra to Trilinos
+            if spec.satisfies('@8.4.0:'):
                 filter_file(r'(\/\/ #define FORCE_USE_OF_TRILINOS.*)',
                             ('#define FORCE_USE_OF_TRILINOS'), 'step-40.cc')
-                if '^trilinos+hypre' in spec:
-                    make('release')
-                    make('run', parallel=False)
+            else:
+                filter_file(r'(#define USE_PETSC_LA.*)',
+                            ('// #define USE_PETSC_LA'), 'step-40.cc')
+            if '^trilinos+hypre' in spec:
+                make('release')
+                make('run', parallel=False)
 
+            if spec.satisfies('@8.4.0:'):
                 print('=====================================')
                 print('=== Step-40 Trilinos SuperluDist ====')
                 print('=====================================')
-- 
GitLab