Doxygen API reference documentation for ideal.II
spacetime_vector.hh
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2022 - 2023 by the ideal.II authors
4 //
5 // This file is part of the ideal.II library.
6 //
7 // The ideal.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 3.0 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 ideal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef INCLUDE_IDEAL_II_LAC_SPACETIME_VECTOR_HH_
17 #define INCLUDE_IDEAL_II_LAC_SPACETIME_VECTOR_HH_
18 
19 #include <deal.II/lac/vector.h>
20 
21 namespace idealii
22 {
23  namespace slab
24  {
28  template <typename Number>
29  using VectorIterator = typename std::list<dealii::Vector<Number>>::iterator;
30  } // namespace slab
31  namespace spacetime
32  {
33 
40  template <typename Number>
41  class Vector
42  {
43  public:
47  Vector();
48 
52  void
53  reinit(unsigned int M);
54 
58  unsigned int
59  M();
60 
65  begin();
70  end();
71 
72  private:
73  std::list<dealii::Vector<Number>> _vectors;
74  };
75  } // namespace spacetime
76 } // namespace idealii
77 
78 #endif /* INCLUDE_IDEAL_II_LAC_SPACETIME_VECTOR_HH_ */
The spacetime vector object.
Definition: spacetime_vector.hh:42
slab::VectorIterator< Number > begin()
Return an iterator pointing to the first "slab" vector.
slab::VectorIterator< Number > end()
Return an iterator pointing behind the last "slab" vector.
void reinit(unsigned int M)
Clear the list and add M empty vectors.
unsigned int M()
Return the size of the list, i.e. the number of slabs.
Vector()
Construct an empty list of vectors.
typename std::list< dealii::Vector< Number > >::iterator VectorIterator
A shortened type for iterators over a list of shared pointers to dealii::Vectors.
Definition: spacetime_vector.hh:29
The main namespace of the project.
Definition: idealii.hh:21