1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2017 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_lac_vector_operation_h
17 #define dealii_lac_vector_operation_h
18 
19 #include <deal.II/base/config.h>
20 
21 DEAL_II_NAMESPACE_OPEN
22 
23 /*! @addtogroup Vectors
24  *@{
25  */
26 
27 /**
28  * This enum keeps track of the current operation in parallel linear algebra
29  * objects like Vectors and Matrices.
30  *
31  * It is used in the various compress() functions. They also exist in serial
32  * codes for compatibility and are empty there.
33  *
34  * See
35  * @ref GlossCompress "Compressing distributed objects"
36  * for more information.
37  */
38 struct VectorOperation
39 {
40   enum values
41   {
42     /**
43      * The current operation is unknown.
44      */
45     unknown,
46     /**
47      * The current operation is an insertion.
48      */
49     insert,
50     /**
51      * The current operation is an addition.
52      */
53     add,
54     /**
55      * The current operation is a minimization.
56      */
57     min,
58     /**
59      * The current operation is a maximization.
60      */
61     max
62   };
63 };
64 
65 /*@}*/
66 
67 DEAL_II_NAMESPACE_CLOSE
68 
69 #endif
70