Doxygen API reference documentation for ideal.II
Loading...
Searching...
No Matches
time_iterator.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_BASE_TIME_ITERATOR_HH_
17#define INCLUDE_IDEAL_II_BASE_TIME_ITERATOR_HH_
18
19#include <ideal.II/distributed/spacetime_tria.hh>
20
21#include <ideal.II/dofs/spacetime_dof_handler.hh>
22
23#include <ideal.II/grid/spacetime_tria.hh>
24
25#include <ideal.II/lac/spacetime_trilinos_vector.hh>
26#include <ideal.II/lac/spacetime_vector.hh>
27
28#include <list>
29#include <memory>
30#include <vector>
31namespace idealii
32{
33
45 template <int dim>
47 {
48 public:
63 void
66
67#ifdef DEAL_II_WITH_MPI
75 void
79#endif
87 void
89 spacetime::DoFHandler<dim> *collection);
90
98 void
100 spacetime::Vector<double> *collection);
101
102#ifdef DEAL_II_WITH_TRILINOS
103# ifdef DEAL_II_WITH_MPI
111 void
113 spacetime::TrilinosVector *collection);
114# endif
115#endif
119 void
124 void
131 bool
138 bool
140
141 private:
142 struct
143 {
144 std::vector<slab::TriaIterator<dim> *> it_collection;
145 std::vector<spacetime::Triangulation<dim> *> obj_collection;
146 } tria;
147
148#ifdef DEAL_II_WITH_MPI
149 struct
150 {
151 std::vector<slab::parallel::distributed::TriaIterator<dim> *>
152 it_collection;
153 std::vector<spacetime::parallel::distributed::Triangulation<dim> *>
154 obj_collection;
155 } par_dist_tria;
156#endif
157 struct
158 {
159 std::vector<slab::DoFHandlerIterator<dim> *> it_collection;
160 std::vector<spacetime::DoFHandler<dim> *> obj_collection;
161 } dof;
162 struct
163 {
164 std::vector<slab::VectorIterator<double> *> it_collection;
165 std::vector<spacetime::Vector<double> *> obj_collection;
166 } vector_double;
167
168#ifdef DEAL_II_WITH_TRILINOS
169# ifdef DEAL_II_WITH_MPI
170 struct
171 {
172 std::vector<slab::TrilinosVectorIterator *> it_collection;
173 std::vector<spacetime::TrilinosVector *> obj_collection;
174 } trilinos_vector;
175# endif
176#endif
177 };
178
179} // namespace idealii
180
181#endif /* INCLUDE_IDEAL_II_BASE_TIME_ITERATOR_HH_ */
A collection of slab iterators to simplify time marching.
Definition time_iterator.hh:47
void add_iterator(slab::DoFHandlerIterator< dim > *it, spacetime::DoFHandler< dim > *collection)
Add a slab::DoFHandlerIterator<dim> iterator.
void add_iterator(slab::VectorIterator< double > *it, spacetime::Vector< double > *collection)
Add a slab::VectorIterator<dim> iterator.
void add_iterator(slab::TriaIterator< dim > *it, spacetime::Triangulation< dim > *collection)
Add a slab::TriaIterator<dim> iterator.
void add_iterator(slab::TrilinosVectorIterator *it, spacetime::TrilinosVector *collection)
Add a slab::TrilinosVectorIterator<dim> iterator.
void add_iterator(slab::parallel::distributed::TriaIterator< dim > *it, spacetime::parallel::distributed::Triangulation< dim > *collection)
Add a parallel::distributed::slab::TriaIterator<dim> iterator.
TimeIteratorCollection()
Default constructor.
The base class for quadrature formulae in space and time.
Definition spacetime_quadrature.hh:35
The spacetime Trilinos vector object.
Definition spacetime_trilinos_vector.hh:45
The spacetime triangulation object with MPI parallel distributed spatial meshes.
Definition spacetime_tria.hh:39
typename std::list< Triangulation< dim > >::iterator TriaIterator
A shortened type for Iterators over a list of shared pointers to Triangulation<dim> objects.
Definition slab_tria.hh:134
typename std::list< Triangulation< dim > >::iterator TriaIterator
A shortened type for Iterators over a list of shared pointers to Triangulation<dim> objects.
Definition slab_tria.hh:125
typename std::list< dealii::TrilinosWrappers::MPI::Vector >::iterator TrilinosVectorIterator
A shortened type for iterators over a list of shared pointers to dealii::TrilinosWrappers::MPI::Vecto...
Definition spacetime_trilinos_vector.hh:32
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
typename std::list< DoFHandler< dim > >::iterator DoFHandlerIterator
A shortened type for iterators over a list of shared pointers to DoFHandler objects.
Definition slab_dof_handler.hh:166
The main namespace of the project.
Definition idealii.hh:21