Doxygen API reference documentation for ideal.II
Loading...
Searching...
No Matches
spacetime_tria.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_DISTRIBUTED_SPACETIME_TRIA_HH_
17#define INCLUDE_IDEAL_II_DISTRIBUTED_SPACETIME_TRIA_HH_
18
19#include <ideal.II/distributed/slab_tria.hh>
20
21#ifdef DEAL_II_WITH_MPI
22# include <deal.II/grid/tria.h>
23
24# include <list>
25# include <memory>
26
28{
37 template <int dim>
39 {
40 public:
46 dealii::types::global_cell_index max_N_intervals_per_slab = 0);
47
56 virtual void
57 generate(std::shared_ptr<dealii::parallel::distributed::Triangulation<dim>>
59 unsigned int M,
60 double t0 = 0.,
61 double T = 1.) = 0;
62
66 unsigned int
67 M();
78 end();
79
85 virtual void
86 refine_global(const unsigned int times_space = 1,
87 const unsigned int times_time = 1) = 0;
88
89 protected:
90 dealii::types::global_cell_index max_N_intervals_per_slab;
91 std::list<slab::parallel::distributed::Triangulation<dim>> trias;
92 };
93} // namespace idealii::spacetime::parallel::distributed
94
95#endif
96#endif /* INCLUDE_IDEAL_II_DISTRIBUTED_SPACETIME_TRIA_HH_ */
The base class for quadrature formulae in space and time.
Definition spacetime_quadrature.hh:35
The spacetime triangulation object with MPI parallel distributed spatial meshes.
Definition spacetime_tria.hh:39
unsigned int M()
Return the number of slabs in the triangulation.
Triangulation(dealii::types::global_cell_index max_N_intervals_per_slab=0)
Constructor that initializes the underlying list object.
slab::parallel::distributed::TriaIterator< dim > begin()
virtual void generate(std::shared_ptr< dealii::parallel::distributed::Triangulation< dim > > space_tria, unsigned int M, double t0=0., double T=1.)=0
Generate a list of M slab triangulations with matching temporal meshes and space_tria.
virtual void refine_global(const unsigned int times_space=1, const unsigned int times_time=1)=0
Do uniform mesh refinement in time and space.
slab::parallel::distributed::TriaIterator< dim > end()
An iterator pointing behind the slab slab::parallel::distributed::Triangulation.
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
Namespace where the processor local triangulations share a common coarse object.
Definition idealii.hh:104