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