]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Revert "Forgot to commit this change for the previous commit" and "Change to virtual...
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 11 Dec 2012 17:10:23 +0000 (17:10 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 11 Dec 2012 17:10:23 +0000 (17:10 +0000)
This was a bad idea.

Internally Subscriptor is abused in a significant number of places as a
strict aliasing enforcer... and we would break this behaviour with virtual
inheritance

git-svn-id: https://svn.dealii.org/branches/branch_cmake@27792 0785d39b-7218-0410-832d-ea1e28bc413d

70 files changed:
deal.II/include/deal.II/algorithms/operator.h
deal.II/include/deal.II/algorithms/timestep_control.h
deal.II/include/deal.II/base/function.h
deal.II/include/deal.II/base/logstream.h
deal.II/include/deal.II/base/mg_level_object.h
deal.II/include/deal.II/base/named_data.h
deal.II/include/deal.II/base/parameter_handler.h
deal.II/include/deal.II/base/polynomial.h
deal.II/include/deal.II/base/quadrature.h
deal.II/include/deal.II/base/table.h
deal.II/include/deal.II/base/tensor_function.h
deal.II/include/deal.II/dofs/block_info.h
deal.II/include/deal.II/dofs/dof_handler.h
deal.II/include/deal.II/fe/fe.h
deal.II/include/deal.II/fe/fe_values.h
deal.II/include/deal.II/fe/mapping.h
deal.II/include/deal.II/grid/intergrid_map.h
deal.II/include/deal.II/grid/tria.h
deal.II/include/deal.II/grid/tria_boundary.h
deal.II/include/deal.II/hp/dof_handler.h
deal.II/include/deal.II/hp/fe_collection.h
deal.II/include/deal.II/hp/mapping_collection.h
deal.II/include/deal.II/hp/q_collection.h
deal.II/include/deal.II/lac/arpack_solver.h
deal.II/include/deal.II/lac/block_indices.h
deal.II/include/deal.II/lac/block_list.h
deal.II/include/deal.II/lac/block_matrix.h
deal.II/include/deal.II/lac/block_matrix_array.h
deal.II/include/deal.II/lac/block_matrix_base.h
deal.II/include/deal.II/lac/block_sparse_matrix_ez.h
deal.II/include/deal.II/lac/block_sparsity_pattern.h
deal.II/include/deal.II/lac/block_vector_base.h
deal.II/include/deal.II/lac/chunk_sparsity_pattern.h
deal.II/include/deal.II/lac/compressed_set_sparsity_pattern.h
deal.II/include/deal.II/lac/compressed_simple_sparsity_pattern.h
deal.II/include/deal.II/lac/compressed_sparsity_pattern.h
deal.II/include/deal.II/lac/constraint_matrix.h
deal.II/include/deal.II/lac/filtered_matrix.h
deal.II/include/deal.II/lac/iterative_inverse.h
deal.II/include/deal.II/lac/lapack_full_matrix.h
deal.II/include/deal.II/lac/matrix_block.h
deal.II/include/deal.II/lac/matrix_lib.h
deal.II/include/deal.II/lac/parallel_vector.h
deal.II/include/deal.II/lac/petsc_matrix_base.h
deal.II/include/deal.II/lac/petsc_vector_base.h
deal.II/include/deal.II/lac/pointer_matrix.h
deal.II/include/deal.II/lac/precondition.h
deal.II/include/deal.II/lac/precondition_selector.h
deal.II/include/deal.II/lac/relaxation_block.h
deal.II/include/deal.II/lac/schur_matrix.h
deal.II/include/deal.II/lac/solver.h
deal.II/include/deal.II/lac/solver_control.h
deal.II/include/deal.II/lac/solver_selector.h
deal.II/include/deal.II/lac/sparse_direct.h
deal.II/include/deal.II/lac/sparse_matrix_ez.h
deal.II/include/deal.II/lac/sparsity_pattern.h
deal.II/include/deal.II/lac/trilinos_precondition.h
deal.II/include/deal.II/lac/trilinos_sparse_matrix.h
deal.II/include/deal.II/lac/trilinos_sparsity_pattern.h
deal.II/include/deal.II/lac/trilinos_vector_base.h
deal.II/include/deal.II/lac/vector.h
deal.II/include/deal.II/lac/vector_memory.h
deal.II/include/deal.II/meshworker/local_integrator.h
deal.II/include/deal.II/meshworker/vector_selector.h
deal.II/include/deal.II/multigrid/mg_base.h
deal.II/include/deal.II/multigrid/mg_constrained_dofs.h
deal.II/include/deal.II/multigrid/multigrid.h
deal.II/include/deal.II/numerics/data_postprocessor.h
deal.II/include/deal.II/numerics/time_dependent.h
deal.II/source/fe/fe_system.cc

index 54c6b78a6b90d446aac8149ad6f7920594a5b755..f4e407d1e156cc6baf250b397c5728d62aa07059 100644 (file)
@@ -52,7 +52,7 @@ namespace Algorithms
    * @author Guido Kanschat, 2010
    */
   template <class VECTOR>
-  class Operator : public virtual Subscriptor
+  class Operator : public Subscriptor
   {
   public:
     /**
@@ -94,7 +94,7 @@ namespace Algorithms
    * @author Guido Kanschat, 2010
    */
   template <class VECTOR>
-  class OutputOperator : public virtual Subscriptor
+  class OutputOperator : public Subscriptor
   {
     OutputOperator(const OutputOperator<VECTOR> &);
   public:
index e5938b660f23bc451b4b390a8791c60f9e08262b..4a2b28a8742f6ff69d5e3e00c89501afa7e364cc 100644 (file)
@@ -45,7 +45,7 @@ namespace Algorithms
    * The variable @p print_step can be used to control the amount of
    * output generated by the timestepping scheme.
    */
-  class TimestepControl : public virtual Subscriptor
+  class TimestepControl : public Subscriptor
   {
   public:
     /**
index 0cc2039c2ef7bb5708636292d5ec073179b79888..fc79c7f79a13ce4b179712ec5cba26f6cdc6329c 100644 (file)
@@ -99,7 +99,7 @@ template <typename number> class Vector;
  */
 template <int dim>
 class Function : public FunctionTime,
-  public virtual Subscriptor
+  public Subscriptor
 {
 public:
   /**
index 8255e96c60518f4553ec20f6b06103e6f019a2c3..cb50979e3807875c1617432f729060d9f16054d9 100644 (file)
@@ -83,7 +83,7 @@ DEAL_II_NAMESPACE_OPEN
  * @ingroup textoutput
  * @author Guido Kanschat, Wolfgang Bangerth, 1999, 2003, 2011
  */
-class LogStream : public virtual Subscriptor
+class LogStream : public Subscriptor
 {
 public:
   /**
index 7b03088a962c641e229c54471b7e734c92978c65..89dae1ab3047a8ab8016c242b11eb13eb19ce401 100644 (file)
@@ -35,7 +35,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Wolfgang Bangerth, Guido Kanschat, 1999, 2005, 2010
  */
 template<class Object>
-class MGLevelObject : public virtual Subscriptor
+class MGLevelObject : public Subscriptor
 {
 public:
   /**
index e2398943769ff90874df81706095c1ef3b93556c..6d4c7b3af11c315a3aca73dee4e66355af3adb8f 100644 (file)
@@ -40,7 +40,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Guido Kanschat, 2007, 2008, 2009
  */
 template <typename DATA>
-class NamedData : public virtual Subscriptor
+class NamedData : public Subscriptor
 {
 public:
   /** Standard constructor creating
index 269cdf92820dc8736753502b90f7bfaad53bf8bf..f19849ef969d18ff37b38f28734cdb594e4a7d97 100644 (file)
@@ -1783,7 +1783,7 @@ namespace Patterns
  *   @ingroup input
  *   @author Wolfgang Bangerth, October 1997, revised February 1998, 2010, 2011
  */
-class ParameterHandler : public virtual Subscriptor
+class ParameterHandler : public Subscriptor
 {
 private:
   /**
index 3df54af07dc4f16bbf4ac8d7b2c58877fe6dbe53..8897467e04f39d4a8c15f806267306397ff73792 100644 (file)
@@ -46,7 +46,7 @@ namespace Polynomials
    * @author Ralf Hartmann, Guido Kanschat, 2000, 2006
    */
   template <typename number>
-  class Polynomial : public virtual Subscriptor
+  class Polynomial : public Subscriptor
   {
   public:
     /**
index 5b9b575ad7a920135a61e09782eab2ad966b1efd..cfe06b50fc6309834eebafcf6a1e57fb3899f2e9 100644 (file)
@@ -77,7 +77,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Wolfgang Bangerth, Guido Kanschat, 1998, 1999, 2000, 2005, 2009
  */
 template <int dim>
-class Quadrature : public virtual Subscriptor
+class Quadrature : public Subscriptor
 {
 public:
   /**
index bdab58b6f270a06a92003963b80d42e5ead5b052..fc28f61f8285efe84ead4106da70535442d09493 100644 (file)
@@ -459,7 +459,7 @@ namespace internal
  * @author Wolfgang Bangerth, 2002.
  */
 template <int N, typename T>
-class TableBase : public virtual Subscriptor
+class TableBase : public Subscriptor
 {
 public:
   /**
index 7592460199cf4de91be903e922c55b822bfab60b..81b0dc008cdcf3f449ecf09761e143373862bbfa 100644 (file)
@@ -53,7 +53,7 @@ DEAL_II_NAMESPACE_OPEN
  */
 template <int rank, int dim>
 class TensorFunction : public FunctionTime,
-  public virtual Subscriptor
+  public Subscriptor
 {
 public:
   /**
index fa175def88ac65c8f14661ff32a86b1e098969a6..9738685202ab73e137fb6d2846f07c199b21c85e 100644 (file)
@@ -86,7 +86,7 @@ namespace hp
  * @ingroup dofs
  * @author Guido Kanschat, 2009
  */
-class BlockInfo : public virtual Subscriptor
+class BlockInfo : public Subscriptor
 {
 public:
   /**
index 0593a28a3e7917a4d6be2157bf6e8c0e73d2e7ee..707eaedf8ee9ea69cd5577eda7ad80a14dae55db 100644 (file)
@@ -168,7 +168,7 @@ namespace internal
  * @author Wolfgang Bangerth
  */
 template <int dim, int spacedim=dim>
-class DoFHandler  :  public virtual Subscriptor
+class DoFHandler  :  public Subscriptor
 {
   typedef dealii::internal::DoFHandler::Iterators<DoFHandler<dim,spacedim> > IteratorSelector;
 public:
index 54c65aa66355f09ef9a389b8b28648319038386f..6c018ffbe3ae4afc22f10b6f796e05c3bd01b90f 100644 (file)
@@ -338,7 +338,7 @@ namespace hp
  * @author Wolfgang Bangerth, Guido Kanschat, Ralf Hartmann, 1998, 2000, 2001, 2005
  */
 template <int dim, int spacedim=dim>
-class FiniteElement : public virtual Subscriptor,
+class FiniteElement : public Subscriptor,
   public FiniteElementData<dim>
 {
 public:
index 647ec442c87b87cba8c6659e05ce74370ed7901c..9cb34a481f03e74eda890d57179df9466ccfa1b2 100644 (file)
@@ -1611,7 +1611,7 @@ public:
  */
 template <int dim, int spacedim>
 class FEValuesBase : protected FEValuesData<dim,spacedim>,
-  public virtual Subscriptor
+  public Subscriptor
 {
 public:
   /**
index efe96109f54f0270b2aaf850ef38e65c9a8e835a..73a327eded942ba6d4f6ecb8adae755a6112264a 100644 (file)
@@ -216,7 +216,7 @@ enum MappingType
  * @author Guido Kanschat, Ralf Hartmann 2000, 2001
  */
 template <int dim, int spacedim=dim>
-class Mapping : public virtual Subscriptor
+class Mapping : public Subscriptor
 {
 public:
 
@@ -316,7 +316,7 @@ public:
    * has access to the precomputed
    * values stored there.
    */
-  class InternalDataBase: public virtual Subscriptor
+  class InternalDataBase: public Subscriptor
   {
   private:
     /**
index 47b11195fb82e9ec509aa502703b3a024873d479..04bf97c9177bd55278f7515d92ab992a3cba77a1 100644 (file)
@@ -112,7 +112,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Wolfgang Bangerth, 1999
  */
 template <class GridClass>
-class InterGridMap : public virtual Subscriptor
+class InterGridMap : public Subscriptor
 {
 public:
 
index a69a21bfaae106fc1e4be4e933495a336b69d69a..e47add785f49c7629773d9ebbba7b9f60ca934c9 100644 (file)
@@ -1201,7 +1201,7 @@ namespace internal
  * @author Wolfgang Bangerth, 1998; Ralf Hartmann, 2005
  */
 template <int dim, int spacedim=dim>
-class Triangulation : public virtual Subscriptor
+class Triangulation : public Subscriptor
 {
 private:
 
index b124f7f2d025e74bc14d11fd9b4bdf6190eba8fa..ef462423f88ebf24603d4711f3280b4e4b75ce04 100644 (file)
@@ -75,7 +75,7 @@ template <int dim, int space_dim> class Triangulation;
  * @author Wolfgang Bangerth, 1999, 2001, 2009, Ralf Hartmann, 2001, 2008
  */
 template <int dim, int spacedim=dim>
-class Boundary : public virtual Subscriptor
+class Boundary : public Subscriptor
 {
 public:
 
index 843e04b26557b885eeeae799159b3004f1b9d122..57c53edc7a231a045ba9437cb85c3616243e53ac 100644 (file)
@@ -73,7 +73,7 @@ namespace hp
    * @ingroup hp
    */
   template <int dim, int spacedim=dim>
-  class DoFHandler : public virtual Subscriptor
+  class DoFHandler : public Subscriptor
   {
     typedef dealii::internal::DoFHandler::Iterators<DoFHandler<dim,spacedim> > IteratorSelector;
   public:
index 3147efe3da3ec670700c38f2d219046e14edf26b..ddafe78b1346fec6acb8fc19d2b942636759daa1 100644 (file)
@@ -45,7 +45,7 @@ namespace hp
    * @author Wolfgang Bangerth, 2003
    */
   template <int dim, int spacedim=dim>
-  class FECollection : public virtual Subscriptor
+  class FECollection : public Subscriptor
   {
   public:
     /**
index c72190b92051b7945109f8a0af33dbe09a000b6b..3e5b925727563b39298744a42f49a182d1256522 100644 (file)
@@ -48,7 +48,7 @@ namespace hp
    * @author Oliver Kayser-Herold, 2005
    */
   template<int dim, int spacedim=dim>
-  class MappingCollection : public virtual Subscriptor
+  class MappingCollection : public Subscriptor
   {
   public:
     /**
index db17db53a2aefca5e186e658f551bec6fd1915fc..23f6b4df7cf58fd77ac896a854c9b8af8bbeca86 100644 (file)
@@ -37,7 +37,7 @@ namespace hp
    * @author Oliver Kayser-Herold, 2005
    */
   template <int dim>
-  class QCollection : public virtual Subscriptor
+  class QCollection : public Subscriptor
   {
   public:
     /**
index 36579bf988e82024adf330c6b0e74707560978f9..b569834e21825f1885bf5f8b424ef56ee9ab4319 100644 (file)
@@ -73,7 +73,7 @@ extern "C" void dneupd_(int *rvec, char *howmany, int *select, double *d,
  * Class to interface with the ARPACK routines.
  */
 
-class ArpackSolver : public virtual Subscriptor
+class ArpackSolver : public Subscriptor
 {
 public:
   /**
index 19320d144acf5fdc82744a33804ae399f8c3034d..5a8264c52b4213f2e25d79c7b06519a6cb56de0e 100644 (file)
@@ -46,7 +46,7 @@ DEAL_II_NAMESPACE_OPEN
  * @see @ref GlossBlockLA "Block (linear algebra)"
  * @author Wolfgang Bangerth, Guido Kanschat, 2000, 2007, 2011
  */
-class BlockIndices : public virtual Subscriptor
+class BlockIndices : public Subscriptor
 {
 public:
 
index 8f4fb7ebccd444dc3cb10f84f6ff425b9a2c8b72..d40c9c9814c051d40e9c337419bc87e8a28f6883 100644 (file)
@@ -45,7 +45,7 @@ DEAL_II_NAMESPACE_OPEN
  * @date 2010
  */
 class BlockList :
-  public virtual Subscriptor
+  public Subscriptor
 {
 public:
   /// The container for each index set
index 16f8fcd921c8d2debab5593bd9c9b3b7108948f3..7325b5db6aae6a8bd38c6a0b1fb1c5914f67d823 100644 (file)
@@ -39,7 +39,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Guido Kanschat, 2000
  */
 template <class MATRIX>
-class BlockDiagonalMatrix : public virtual Subscriptor
+class BlockDiagonalMatrix : public Subscriptor
 {
 public:
   /**
index d014d472db52a4a1e8100396d90daa6f26aeac1b..028ead966e59ee517a3d71336e1b13372d221821 100644 (file)
@@ -120,7 +120,7 @@ template <typename> class Vector;
  * @date 2000-2005, 2010
  */
 template <typename number = double>
-class BlockMatrixArray : public virtual Subscriptor
+class BlockMatrixArray : public Subscriptor
 {
 public:
   /**
index f16d611262c26c86d0a820fad0220649febfe332..8cd475e64170816ac13d72d9e0ce456b2f8d5fdf 100644 (file)
@@ -354,7 +354,7 @@ namespace BlockMatrixIterators
  * @author Wolfgang Bangerth, 2000, 2004
  */
 template <typename MatrixType>
-class BlockMatrixBase : public virtual Subscriptor
+class BlockMatrixBase : public Subscriptor
 {
 public:
   /**
index b6597661209c30bec6b0b2c4dddae19199a76f33..c42d51ece13e6f3a4183b955e6adc7a8fc812e3c 100644 (file)
@@ -44,7 +44,7 @@ template <typename Number> class BlockVector;
  * @author Guido Kanschat, 2002, 2003
  */
 template<typename Number>
-class BlockSparseMatrixEZ : public virtual Subscriptor
+class BlockSparseMatrixEZ : public Subscriptor
 {
 public:
   /**
index 7e32376cfd510a7e4d64d66b2ddbdfe8cafcc375..ef700e921881814e65f671d717411514db9bee60 100644 (file)
@@ -79,7 +79,7 @@ namespace TrilinosWrappers
  * @author Wolfgang Bangerth, 2000, 2001
  */
 template <class SparsityPatternBase>
-class BlockSparsityPatternBase : public virtual Subscriptor
+class BlockSparsityPatternBase : public Subscriptor
 {
 public:
   /**
index 9ac3a838e30abaeab89a2619425c35bde2acbd6a..a36f8daf8c4a9e98ff1595787c56e4066eb20cc5 100644 (file)
@@ -708,7 +708,7 @@ namespace internal
  * @author Wolfgang Bangerth, Guido Kanschat, 1999, 2000, 2001, 2002, 2004
  */
 template <class VectorType>
-class BlockVectorBase : public virtual Subscriptor
+class BlockVectorBase : public Subscriptor
 {
 public:
   /**
index fba7da6b311ab29f71cf916efcc1541e9acfcfb0..8a41854df8b1bb700fd133c96dba869ecd1400d5 100644 (file)
@@ -43,7 +43,7 @@ template <typename> class ChunkSparseMatrix;
  *
  * @author Wolfgang Bangerth, 2008
  */
-class ChunkSparsityPattern : public virtual Subscriptor
+class ChunkSparsityPattern : public Subscriptor
 {
 public:
 
index c890e06515d192b9598b69ec38770b602529337d..5f23cb011cd8d3ba5d3539e32851e675b594789c 100644 (file)
@@ -103,7 +103,7 @@ template <typename number> class SparseMatrix;
  *
  * @author Oliver Kayser-Herold, 2007
  */
-class CompressedSetSparsityPattern : public virtual Subscriptor
+class CompressedSetSparsityPattern : public Subscriptor
 {
 public:
   /**
index 94b551722b96c952d903f64bb66238412152b5c3..09a9bffa7abbabf6b2b66d532a33f5de1633417b 100644 (file)
@@ -84,7 +84,7 @@ template <typename number> class SparseMatrix;
  *
  * @author Timo Heister, 2008
  */
-class CompressedSimpleSparsityPattern : public virtual Subscriptor
+class CompressedSimpleSparsityPattern : public Subscriptor
 {
 public:
   /**
index 787deea3200193a21f9013edf3feb0f6c41612ce..ffb6333054893c9fa9eba539230affe26e4d53b7 100644 (file)
@@ -85,7 +85,7 @@ template <typename number> class SparseMatrix;
  *
  * @author Wolfgang Bangerth, 2001
  */
-class CompressedSparsityPattern : public virtual Subscriptor
+class CompressedSparsityPattern : public Subscriptor
 {
 public:
   /**
index 38770774075717d575602b7d1f8b878c8e6ba65e..87a4c3c42db320d2753a688809c44beddfc4b984 100644 (file)
@@ -136,7 +136,7 @@ namespace internals
  * @ingroup constraints
  * @author Wolfgang Bangerth, Martin Kronbichler, 1998, 2004, 2008, 2009
  */
-class ConstraintMatrix : public virtual Subscriptor
+class ConstraintMatrix : public Subscriptor
 {
 public:
   /**
index e060c537b3f901177c6711a92f807a91a87efeb7..8a1ee43bf7859c1b6752b07ecee78454f2b6e594 100644 (file)
@@ -201,7 +201,7 @@ template <class VECTOR> class FilteredMatrixBlock;
  * @author Wolfgang Bangerth 2001, Luca Heltai 2006, Guido Kanschat 2007, 2008
  */
 template <class VECTOR>
-class FilteredMatrix : public virtual Subscriptor
+class FilteredMatrix : public Subscriptor
 {
 public:
   class const_iterator;
index acfa815f64654f3079bd7c7454851596c9ce56b2..4104a547a8ed79136be68de1d193f6920bea022b 100644 (file)
@@ -73,7 +73,7 @@ DEAL_II_NAMESPACE_OPEN
  * @date 2010
  */
 template <class VECTOR>
-class IterativeInverse : public virtual Subscriptor
+class IterativeInverse : public Subscriptor
 {
 public:
   /**
index d4c2495261192182379180c85cfda24a9a7e8162..fa6636a912c65163751dc9d40a14308ae586cea3 100644 (file)
@@ -680,7 +680,7 @@ private:
 template <typename number>
 class PreconditionLU
   :
-  public virtual Subscriptor
+  public Subscriptor
 {
 public:
   void initialize(const LAPACKFullMatrix<number> &);
index f0fd7d7eca15ecf42e0453139f10571bf3b02752..e2eb43ef722fa8bdfa2fc85d03beafafb81875fb 100644 (file)
@@ -98,7 +98,7 @@ namespace internal
  */
 template <class MATRIX>
 class MatrixBlock
-  : public virtual Subscriptor
+  : public Subscriptor
 {
 public:
   /**
@@ -482,7 +482,7 @@ public:
  */
 template <class MATRIX>
 class MGMatrixBlockVector
-  : public virtual Subscriptor
+  : public Subscriptor
 {
 public:
   /**
index 782a649a4d022c9f81f3c63ea338fa48e40ff7f9..06b1df2e1a03f4562f8f6335cf5bb1e36c4e78df 100644 (file)
@@ -154,7 +154,7 @@ private:
  * @author Guido Kanschat, 2007
  */
 template<class VECTOR>
-class ScaledMatrix : public virtual Subscriptor
+class ScaledMatrix : public Subscriptor
 {
 public:
   /**
@@ -323,7 +323,7 @@ private:
  *
  * @author Guido Kanschat, 2002, 2003
  */
-class MeanValueFilter : public virtual Subscriptor
+class MeanValueFilter : public Subscriptor
 {
 public:
   /**
@@ -418,7 +418,7 @@ private:
  * @author Guido Kanschat, 2005
  */
 template<class VECTOR>
-class InverseMatrixRichardson : public virtual Subscriptor
+class InverseMatrixRichardson : public Subscriptor
 {
 public:
   /**
index ccbbe1c4399d47fa0692aaae2bcb3042c5fc73a9..e1c53ceb3298a97cb48968af8c15f683a1d713ec 100644 (file)
@@ -81,7 +81,7 @@ namespace parallel
      * @author Katharina Kormann, Martin Kronbichler, 2010, 2011
      */
     template <typename Number>
-    class Vector : public virtual Subscriptor
+    class Vector : public Subscriptor
     {
     public:
       /**
index f6fd66a47dbd4e2b7154cfcf75f7fda8f534460a..634ac7baf0ec7cff9c1fb55ffc7111f2a2f8f9eb 100644 (file)
@@ -284,7 +284,7 @@ namespace PETScWrappers
    * @ingroup Matrix1
    * @author Wolfgang Bangerth, 2004
    */
-  class MatrixBase : public virtual Subscriptor
+  class MatrixBase : public Subscriptor
   {
   public:
     /**
index 3595d68ca6da1a3250f951346cd9bf03598e1a68..25c36dc628735cd0f36a086c9d05e6de0dfbea4c 100644 (file)
@@ -240,7 +240,7 @@ namespace PETScWrappers
    * @ingroup PETScWrappers
    * @author Wolfgang Bangerth, 2004
    */
-  class VectorBase : public virtual Subscriptor
+  class VectorBase : public Subscriptor
   {
   public:
     /**
index f92617b3e55ffe297ee64640d1eaa8e426db3845..0a193b2c7886e06c4d90ce95abac211a848ee418 100644 (file)
@@ -45,7 +45,7 @@ template <typename number> class TridiagonalMatrix;
  * @author Guido Kanschat, 2000, 2001, 2002
  */
 template<class VECTOR>
-class PointerMatrixBase : public virtual Subscriptor
+class PointerMatrixBase : public Subscriptor
 {
 public:
   /**
index a708c75035c6c5f4a5621717a057829584b9c2fc..497a0c153c1fcca993ee7ec3119068221cbe0726 100644 (file)
@@ -52,7 +52,7 @@ template <typename number> class SparseMatrix;
  *
  * @author Guido Kanschat, 1999
  */
-class PreconditionIdentity : public virtual Subscriptor
+class PreconditionIdentity : public Subscriptor
 {
 public:
 
@@ -139,7 +139,7 @@ public:
  *
  * @author Guido Kanschat, 2005
  */
-class PreconditionRichardson : public virtual Subscriptor
+class PreconditionRichardson : public Subscriptor
 {
 public:
   /**
@@ -280,7 +280,7 @@ private:
  * @author Guido Kanschat, Wolfgang Bangerth, 1999
  */
 template<class MATRIX = SparseMatrix<double>, class VECTOR = Vector<double> >
-class PreconditionUseMatrix : public virtual Subscriptor
+class PreconditionUseMatrix : public Subscriptor
 {
 public:
   /**
@@ -333,7 +333,7 @@ private:
  * @author Guido Kanschat, 2000
  */
 template<class MATRIX = SparseMatrix<double> >
-class PreconditionRelaxation : public virtual Subscriptor
+class PreconditionRelaxation : public Subscriptor
 {
 public:
   /**
@@ -761,7 +761,7 @@ private:
  * @author Guido Kanschat, 1999
  */
 template<class SOLVER, class MATRIX = SparseMatrix<double>, class PRECONDITION = PreconditionIdentity>
-class PreconditionLACSolver : public virtual Subscriptor
+class PreconditionLACSolver : public Subscriptor
 {
 public:
   /**
@@ -819,7 +819,7 @@ private:
  * @author Guido Kanschat, 2000
  */
 template<class MATRIX, class PRECOND, class VECTOR>
-class PreconditionedMatrix : public virtual Subscriptor
+class PreconditionedMatrix : public Subscriptor
 {
 public:
   /**
@@ -881,7 +881,7 @@ private:
  * @author Martin Kronbichler, 2009
  */
 template <class MATRIX=SparseMatrix<double>, class VECTOR=Vector<double> >
-class PreconditionChebyshev : public virtual Subscriptor
+class PreconditionChebyshev : public Subscriptor
 {
 public:
   /**
index 4d376e9022d6e9fea65043c5c0f11c5fb1027c70..12d6c4ce056cb6a46a64cc52a8eb34d29328f5bf 100644 (file)
@@ -90,7 +90,7 @@ template <class number> class SparseMatrix;
  */
 template <class MATRIX = SparseMatrix<double>,
          class VECTOR = dealii::Vector<double> >
-class PreconditionSelector : public virtual Subscriptor
+class PreconditionSelector : public Subscriptor
 {
 public:
 
index cc2f40862505fbdc270939c28bceb20ff3f30aa8..6a2d94fc250d04100c426cbf05c64429d3252e8e 100644 (file)
@@ -66,7 +66,7 @@ public:
   /**
    * Parameters for block relaxation methods.
    */
-  class AdditionalData : public virtual Subscriptor
+  class AdditionalData : public Subscriptor
   {
   public:
     /**
index 97ce3c718ed3d11cdc01548be543273722f7ff12..8b59d1576510e767d888d8cc2600b33fbeda1f12 100644 (file)
@@ -90,7 +90,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Guido Kanschat, 2000, 2001, 2002
  */
 template <class MA_inverse, class MB, class MDt, class MC>
-class SchurMatrix : public virtual Subscriptor
+class SchurMatrix : public Subscriptor
 {
 public:
 
index ce643822d0e8ce39fa34e2012d53180db18445fd..ac1c2942e53c80e4f7faae538f029627b7a852e0 100644 (file)
@@ -139,7 +139,7 @@ class SolverControl;
  * @author Wolfgang Bangerth, Guido Kanschat, Ralf Hartmann, 1997-2001, 2005
  */
 template <class VECTOR = Vector<double> >
-class Solver : public virtual Subscriptor
+class Solver : public Subscriptor
 {
 public:
   /**
index 04bb66ca7a986a58d7cb1787ca4eb10fe43e4971..0ad4ac21fc2eba5a75f716e249bc6900e7ac5e92 100644 (file)
@@ -58,7 +58,7 @@ class ParameterHandler;
  *
  * @author Guido Kanschat
  */
-class SolverControl : public virtual Subscriptor
+class SolverControl : public Subscriptor
 {
 public:
 
index afd3e96963762412e9b092781b44e79e6865f0c0..cb9149e6c296326adf3bf1faa203ca86fb5a0f13 100644 (file)
@@ -92,7 +92,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Ralf Hartmann, 1999
  */
 template <class VECTOR = Vector<double> >
-class SolverSelector : public virtual Subscriptor
+class SolverSelector : public Subscriptor
 {
 public:
 
index 78281bc256f6816ecee439542ce7518a0370e397..03b3e1ce078e67a76e269376f6c8dc3ba6d549ca 100644 (file)
@@ -188,7 +188,7 @@ DEAL_II_NAMESPACE_OPEN
  *
  * @author Wolfgang Bangerth, 2000, 2001, 2002
  */
-class SparseDirectMA27 : public virtual Subscriptor
+class SparseDirectMA27 : public Subscriptor
 {
 public:
   /**
@@ -678,7 +678,7 @@ private:
  *
  * @author Wolfgang Bangerth, 2000, 2001
  */
-class SparseDirectMA47 : public virtual Subscriptor
+class SparseDirectMA47 : public Subscriptor
 {
 public:
   /**
@@ -1057,7 +1057,7 @@ private:
  *
  * @author Wolfgang Bangerth, 2004
  */
-class SparseDirectUMFPACK : public virtual Subscriptor
+class SparseDirectUMFPACK : public Subscriptor
 {
 public:
   /**
index 860bc42ccc152b23579712e92b744663bae61c17..08718a1c62bf52226b3c798ffc16e528426d41d5 100644 (file)
@@ -94,7 +94,7 @@ template<typename number> class FullMatrix;
  * @date 2002, 2010
  */
 template <typename number>
-class SparseMatrixEZ : public virtual Subscriptor
+class SparseMatrixEZ : public Subscriptor
 {
 public:
   /**
index c3daaf603d545cb1823abe426343c6f3c43e9aca..5c13c278e0a3e4d85157a750afcafc4e68f608a1 100644 (file)
@@ -254,7 +254,7 @@ namespace SparsityPatternIterators
  *
  * @author Wolfgang Bangerth, Guido Kanschat and others
  */
-class SparsityPattern : public virtual Subscriptor
+class SparsityPattern : public Subscriptor
 {
 public:
   /**
index 7b5fba7b802fb8de902b016c0c757d0955e7f968..4c349b153123744125015750f40acd68bedf76df 100644 (file)
@@ -69,7 +69,7 @@ namespace TrilinosWrappers
    * @ingroup Preconditioners
    * @author Martin Kronbichler, 2008
    */
-  class PreconditionBase : public virtual Subscriptor
+  class PreconditionBase : public Subscriptor
   {
   public:
 
index ce727d10e57bf175593ba196a4d86ae9832a4bca..e522461661a338fb413b128f03014b866febf963 100644 (file)
@@ -302,7 +302,7 @@ namespace TrilinosWrappers
    * @ingroup Matrix1
    * @author Martin Kronbichler, Wolfgang Bangerth, 2008, 2009
    */
-  class SparseMatrix : public virtual Subscriptor
+  class SparseMatrix : public Subscriptor
   {
   public:
     /**
index 355e8987fbd88905c94a1fc1cf595be8de62db74..0967442a6f02f06f2a7466dff70922fe9bdc9398 100644 (file)
@@ -266,7 +266,7 @@ namespace TrilinosWrappers
    * @ingroup Sparsity
    * @author Martin Kronbichler, 2008
    */
-  class SparsityPattern : public virtual Subscriptor
+  class SparsityPattern : public Subscriptor
   {
   public:
 
index 90101eb7533bd7216fadc7d9f3c6fadfd90a27d3..76bee846341d47a6318c303703e14627ecdfdaa0 100644 (file)
@@ -252,7 +252,7 @@ namespace TrilinosWrappers
    * @ingroup Vectors
    * @author Martin Kronbichler, 2008
    */
-  class VectorBase : public virtual Subscriptor
+  class VectorBase : public Subscriptor
   {
   public:
     /**
index a7fe53d4950107832c99c3dfe92f98cc24d5d082..f4a65a839a96a52f010ebf5874965c4ace6fe22d 100644 (file)
@@ -101,7 +101,7 @@ struct VectorOperation
  * @author Guido Kanschat, Franz-Theo Suttmeier, Wolfgang Bangerth
  */
 template <typename Number>
-class Vector : public virtual Subscriptor
+class Vector : public Subscriptor
 {
 public:
   /**
index 203e735d40073dee014797b60a082e3b5d2a8d77..ec8926a42cf016d9fd279b27d6d100b98bf31f4c 100644 (file)
@@ -66,7 +66,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Guido Kanschat, 1998-2003
 */
 template<class VECTOR = dealii::Vector<double> >
-class VectorMemory : public virtual Subscriptor
+class VectorMemory : public Subscriptor
 {
 public:
 
index d192bc70f9a600904ae8d899f2c8a62a43c7303a..c46173eb2127093eb9238f1a22f93dda38968d69 100644 (file)
@@ -40,7 +40,7 @@ namespace MeshWorker
    * @date 2012
    */
   template <int dim, int spacedim=dim, typename number=double>
-  class LocalIntegrator : public virtual Subscriptor
+  class LocalIntegrator : public Subscriptor
   {
   public:
     /**
index cc378e036702611f94cda41a6c8ebcb716b9803b..0edf1df4f64312e98d78029e24a6d8dca623c02a 100644 (file)
@@ -40,7 +40,7 @@ namespace MeshWorker
    * @author Guido Kanschat 2009
    */
   class VectorSelector :
-    public virtual Subscriptor
+    public Subscriptor
   {
   public:
     /**
index a180c7a259a36b56d77fdd0341c725dfb29ff72c..095eae0ed29ec034cf74abb1655b47f9c7c050d8 100644 (file)
@@ -46,7 +46,7 @@ template <typename> class MGLevelObject;
  * @author Guido Kanschat, 2002
  */
 template <class VECTOR>
-class MGMatrixBase : public virtual Subscriptor
+class MGMatrixBase : public Subscriptor
 {
 public:
   /*
@@ -98,7 +98,7 @@ public:
  * @author Guido Kanschat, 2002
  */
 template <class VECTOR>
-class MGCoarseGridBase : public virtual Subscriptor
+class MGCoarseGridBase : public Subscriptor
 {
 public:
   /**
@@ -163,7 +163,7 @@ public:
  * @author Wolfgang Bangerth, Guido Kanschat, 1999, 2002, 2007
  */
 template <class VECTOR>
-class MGTransferBase : public virtual Subscriptor
+class MGTransferBase : public Subscriptor
 {
 public:
   /**
@@ -233,7 +233,7 @@ public:
  * @author Guido Kanschat, 2002
  */
 template <class VECTOR>
-class MGSmootherBase : public virtual Subscriptor
+class MGSmootherBase : public Subscriptor
 {
 public:
   /**
index 34b4946fe17d08b6aa1fc9479c41e4cae782f428..29fcf76ca1b5d0260e8a26f745e45e71f168ab98 100644 (file)
@@ -32,7 +32,7 @@ template <int dim> struct FunctionMap;
  *
  * @ingroup mg
  */
-class MGConstrainedDoFs : public virtual Subscriptor
+class MGConstrainedDoFs : public Subscriptor
 {
 public:
   /**
index 9a6807249feeed3efc0f77dea60c82381c6b4158..cf674c41f25629838809606150593bfb9b9bb7ba 100644 (file)
@@ -60,7 +60,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Guido Kanschat, 1999 - 2005
  */
 template <class VECTOR>
-class Multigrid : public virtual Subscriptor
+class Multigrid : public Subscriptor
 {
 public:
   /**
@@ -503,7 +503,7 @@ private:
  * @author Guido Kanschat, 1999, 2000, 2001, 2002
  */
 template<int dim, class VECTOR, class TRANSFER>
-class PreconditionMG : public virtual Subscriptor
+class PreconditionMG : public Subscriptor
 {
 public:
   /**
index 7a533b96d39dbcb59f9bf9450a95c2397e26d2e3..912b65fc7d58811d32ea66cc6501f0668b3e25fc 100644 (file)
@@ -95,7 +95,7 @@ DEAL_II_NAMESPACE_OPEN
  * @author Tobias Leicht, 2007
  */
 template <int dim>
-class DataPostprocessor: public virtual Subscriptor
+class DataPostprocessor: public Subscriptor
 {
 public:
   /**
index 071e1a2dc08c278af562900b566352227ed56852..d9257fd47094d738da7e3ff8b10172f1765a71cf 100644 (file)
@@ -754,7 +754,7 @@ private:
  *
  * @author Wolfgang Bangerth, 1999
  */
-class TimeStepBase : public virtual Subscriptor
+class TimeStepBase : public Subscriptor
 {
 public:
   /**
index 04e146d73c0a767947c5678aca78606a4b979910..5854d2c3dd18898071a69a50bfc971935f3b84db 100644 (file)
@@ -973,31 +973,39 @@ FESystem<dim,spacedim>::compute_fill (
             }
         }
 
-      // fill_fe_face_values needs argument Quadrature<dim_1> for both
-      // cases dim_1==dim-1 and dim_1=dim. Hence the following workaround
+      // fill_fe_face_values needs
+      // argument Quadrature<dim-1>
+      // for both cases
+      // dim_1==dim-1 and
+      // dim_1=dim. Hence the
+      // following workaround
       const Quadrature<dim>   *cell_quadrature = 0;
       const Quadrature<dim-1> *face_quadrature = 0;
 
-      // static cast to the common base class of quadrature being either
-      // Quadrature<dim> or Quadrature<dim-1>:
+      // static cast to the
+      // common base class of
+      // quadrature being either
+      // Quadrature<dim> or
+      // Quadrature<dim-1>:
+      const Subscriptor *quadrature_base_pointer = &quadrature;
 
       if (face_no==invalid_face_number)
         {
           Assert(dim_1==dim, ExcDimensionMismatch(dim_1,dim));
-          Assert (dynamic_cast<const Quadrature<dim> *>(&quadrature) != 0,
+          Assert (dynamic_cast<const Quadrature<dim> *>(quadrature_base_pointer) != 0,
                   ExcInternalError());
 
           cell_quadrature
-            = reinterpret_cast<const Quadrature<dim> *>(&quadrature);
+            = static_cast<const Quadrature<dim> *>(quadrature_base_pointer);
         }
       else
         {
           Assert(dim_1==dim-1, ExcDimensionMismatch(dim_1,dim-1));
-          Assert (dynamic_cast<const Quadrature<dim-1> *>(&quadrature) != 0,
+          Assert (dynamic_cast<const Quadrature<dim-1> *>(quadrature_base_pointer) != 0,
                   ExcInternalError());
 
           face_quadrature
-            = reinterpret_cast<const Quadrature<dim-1> *>(&quadrature);
+            = static_cast<const Quadrature<dim-1> *>(quadrature_base_pointer);
         }
 
       // let base elements update the

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.