From aff4d0ae9380d8f5d1d0abc33c2c1436b7a4428d Mon Sep 17 00:00:00 2001
From: ESeNonFossiIo <esenonfossiio@gmail.com>
Date: Wed, 27 May 2015 11:58:52 +0200
Subject: [PATCH] add template

---
 include/deal.II/lac/linear_operator.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/deal.II/lac/linear_operator.h b/include/deal.II/lac/linear_operator.h
index 73b0598c63..dc54741dea 100644
--- a/include/deal.II/lac/linear_operator.h
+++ b/include/deal.II/lac/linear_operator.h
@@ -2162,7 +2162,7 @@ lower_triangular_operator(const BlockMatrix &block_matrix)
 
     // And reinitialize every individual block with reinit_range_vectors:
     for (unsigned int i = 0; i < block_matrix.n_block_rows(); ++i)
-      linear_operator(block_matrix.block(i,0)).reinit_range_vector(v.block(i), fast);
+      linear_operator<typename Range::BlockType, typename Domain::BlockType,  typename BlockMatrix::BlockType>(block_matrix.block(i,0)).reinit_range_vector(v.block(i), fast);
 
     v.collect_sizes();
   };
@@ -2175,7 +2175,7 @@ lower_triangular_operator(const BlockMatrix &block_matrix)
 
     // And reinitialize every individual block with reinit_domain_vectors:
     for (unsigned int i = 0; i < block_matrix.n_block_cols(); ++i)
-      linear_operator(block_matrix.block(0,i)).reinit_domain_vector(v.block(i), fast);
+      linear_operator<typename Range::BlockType, typename Domain::BlockType,  typename BlockMatrix::BlockType>(block_matrix.block(0,i)).reinit_domain_vector(v.block(i), fast);
 
     v.collect_sizes();
   };
@@ -2277,7 +2277,7 @@ upper_triangular_operator(const BlockMatrix &block_matrix)
 
     // And reinitialize every individual block with reinit_range_vectors:
     for (unsigned int i = 0; i < block_matrix.n_block_rows(); ++i)
-      linear_operator(block_matrix.block(i,0)).reinit_range_vector(v.block(i), fast);
+      linear_operator<typename Range::BlockType, typename Domain::BlockType, typename BlockMatrix::BlockType>(block_matrix.block(i,0)).reinit_range_vector(v.block(i), fast);
 
     v.collect_sizes();
   };
@@ -2290,7 +2290,7 @@ upper_triangular_operator(const BlockMatrix &block_matrix)
 
     // And reinitialize every individual block with reinit_domain_vectors:
     for (unsigned int i = 0; i < block_matrix.n_block_cols(); ++i)
-      linear_operator(block_matrix.block(0,i)).reinit_domain_vector(v.block(i), fast);
+      linear_operator<typename Range::BlockType, typename Domain::BlockType,  typename BlockMatrix::BlockType>(block_matrix.block(0,i)).reinit_domain_vector(v.block(i), fast);
 
     v.collect_sizes();
   };
@@ -2393,11 +2393,11 @@ block_triangular_inverse( const BlockMatrix &block_matrix,
 
   if (lower)
     {
-      op_a = lower_triangular_operator(block_matrix);
+      op_a = lower_triangular_operator<Range, Domain, BlockMatrix>(block_matrix);
     }
   else
     {
-      op_a = upper_triangular_operator(block_matrix);
+      op_a = upper_triangular_operator<Range, Domain, BlockMatrix>(block_matrix);
     }
 
   auto id     = identity_operator(op_a.reinit_range_vector);
-- 
2.39.5