--- /dev/null
+Changed: The <code>enum</code> VectorOperation is now declared in its own header instead of the header for Vector.
+<br>
+(David Wells, 2017/10/20)
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/index_set.h>
#include <deal.II/base/array_view.h>
-#include <deal.II/lac/vector.h>
+
#include <deal.II/lac/communication_pattern_base.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <limits>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/matrix_iterator.h>
#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <cmath>
#include <deal.II/base/exceptions.h>
#include <deal.II/lac/block_indices.h>
#include <deal.II/lac/block_vector_base.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_type_traits.h>
#include <cstdio>
#include <deal.II/lac/exceptions.h>
#include <deal.II/lac/block_indices.h>
#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
+
#include <vector>
#include <iterator>
#include <cmath>
#include <deal.II/base/config.h>
#include <deal.II/lac/vector_space_vector.h>
-
+#include <deal.II/lac/vector_operation.h>
#ifdef DEAL_II_WITH_CUDA
#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/lac/block_indices.h>
#include <deal.II/lac/block_vector_base.h>
#include <deal.II/lac/la_parallel_vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_type_traits.h>
-
#include <cstdio>
#include <vector>
#include <deal.II/lac/petsc_parallel_block_vector.h>
#include <deal.II/lac/trilinos_parallel_block_vector.h>
#include <deal.II/lac/lapack_support.h>
+#include <deal.II/lac/vector.h>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/base/numbers.h>
#include <deal.II/base/partitioner.h>
#include <deal.II/base/thread_management.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_space_vector.h>
#include <deal.II/lac/vector_type_traits.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/index_set.h>
#include <deal.II/lac/read_write_vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_space_vector.h>
#include <deal.II/lac/vector_type_traits.h>
#define dealii_la_vector_templates_h
#include <deal.II/lac/la_vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_operations_internal.h>
#include <iostream>
#include <iomanip>
#define dealii_parpack_solver_h
#include <deal.II/base/config.h>
+#include <deal.II/base/index_set.h>
#include <deal.II/base/smartpointer.h>
#include <deal.II/base/memory_consumption.h>
+
#include <deal.II/lac/solver_control.h>
-#include <deal.II/lac/vector.h>
-#include <deal.II/base/index_set.h>
+#include <deal.II/lac/vector_operation.h>
+
#include <cstring>
# include <deal.II/lac/exceptions.h>
# include <deal.II/lac/full_matrix.h>
# include <deal.II/lac/petsc_compatibility.h>
-# include <deal.II/lac/vector.h>
+# include <deal.II/lac/vector_operation.h>
# include <petscmat.h>
# include <deal.II/base/subscriptor.h>
# include <deal.II/lac/exceptions.h>
# include <deal.II/lac/vector.h>
+# include <deal.II/lac/vector_operation.h>
# include <deal.II/lac/petsc_vector_base.h>
# include <deal.II/base/index_set.h>
# include <deal.II/lac/vector_type_traits.h>
# include <deal.II/base/subscriptor.h>
# include <deal.II/lac/exceptions.h>
# include <deal.II/lac/vector.h>
+# include <deal.II/lac/vector_operation.h>
# include <vector>
# include <utility>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/thread_management.h>
#include <deal.II/lac/vector_view.h>
+#include <deal.II/lac/vector_operation.h>
#include <cstring>
#include <iomanip>
#include <deal.II/lac/sparsity_pattern.h>
#include <deal.II/lac/identity_matrix.h>
#include <deal.II/lac/exceptions.h>
-#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <memory>
#include <deal.II/base/index_set.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/lac/trilinos_epetra_communication_pattern.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_space_vector.h>
+#include <deal.II/lac/vector_type_traits.h>
#include <memory>
DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
# include <deal.II/lac/trilinos_epetra_vector.h>
# include <deal.II/lac/vector_view.h>
# include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/vector_operation.h>
# include <type_traits>
# include <vector>
# include <deal.II/base/mpi.h>
# include <deal.II/lac/exceptions.h>
# include <deal.II/lac/vector.h>
+# include <deal.II/lac/vector_operation.h>
# include <deal.II/lac/vector_type_traits.h>
# include <vector>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/index_set.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/vector_type_traits.h>
// boost::serialization::make_array used to be in array.hpp, but was
*@{
*/
-/**
- * This enum keeps track of the current operation in parallel linear algebra
- * objects like Vectors and Matrices.
- *
- * It is used in the various compress() functions. They also exist in serial
- * codes for compatibility and are empty there.
- *
- * See
- * @ref GlossCompress "Compressing distributed objects"
- * for more information.
- */
-struct VectorOperation
-{
- enum values
- {
- /**
- * The current operation is unknown.
- */
- unknown,
- /**
- * The current operation is an insertion.
- */
- insert,
- /**
- * The current operation is an addition.
- */
- add
- };
-};
-
-
/**
* Numerical vector of data. For this class there are different types of
* functions available. The first type of function initializes the vector,
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2017 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+#ifndef dealii_lac_vector_operation_h
+#define dealii_lac_vector_operation_h
+
+#include <deal.II/base/config.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+/*! @addtogroup Vectors
+ *@{
+ */
+
+/**
+ * This enum keeps track of the current operation in parallel linear algebra
+ * objects like Vectors and Matrices.
+ *
+ * It is used in the various compress() functions. They also exist in serial
+ * codes for compatibility and are empty there.
+ *
+ * See
+ * @ref GlossCompress "Compressing distributed objects"
+ * for more information.
+ */
+struct VectorOperation
+{
+ enum values
+ {
+ /**
+ * The current operation is unknown.
+ */
+ unknown,
+ /**
+ * The current operation is an insertion.
+ */
+ insert,
+ /**
+ * The current operation is an addition.
+ */
+ add
+ };
+};
+
+/*@}*/
+
+DEAL_II_NAMESPACE_CLOSE
+
+#endif
#include <deal.II/base/config.h>
#include <deal.II/base/numbers.h>
-#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <memory>
#include <deal.II/matrix_free/tensor_product_kernels.h>
#include <deal.II/matrix_free/evaluation_selector.h>
+#include <deal.II/lac/vector_operation.h>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/fe/fe.h>
#include <deal.II/fe/mapping.h>
#include <deal.II/fe/mapping_q1.h>
-#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_operation.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/block_vector_base.h>
#include <deal.II/lac/constraint_matrix.h>