ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
discretization.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2020 - 2026 by the ryujin authors
4//
5
6#pragma once
7
8#include <ryujin/base/compile_time_options.h>
14
15#include <deal.II/base/parameter_acceptor.h>
16#include <deal.II/distributed/fully_distributed_tria.h>
17#include <deal.II/distributed/shared_tria.h>
18#include <deal.II/distributed/tria.h>
19
20#include <memory>
21#include <vector>
22
23namespace ryujin
24{
41} // namespace ryujin
42
43#ifndef DOXYGEN
44DECLARE_ENUM(ryujin::MeshType,
45 LIST({ryujin::MeshType::serial, "serial"},
46 {ryujin::MeshType::parallel_shared, "parallel shared"},
48 "parallel distributed"},
50 "parallel fullydistributed"}));
51#endif
52
53namespace ryujin
54{
70 template <int dim>
71 class Discretization final : public Interface::Discretization<dim>
72 {
73 public:
78
82 Discretization(const MPIEnsemble &mpi_ensemble,
83 const std::string &subsection = "/Discretization");
84
89 void prepare(const std::string &base_name) override;
90
98 void update_mapping() override;
99
101
102 private:
107
108 MeshType mesh_type_;
109
110 std::string geometry_;
111
112 bool mesh_writeout_;
113 double mesh_distortion_;
114
116
120
121 const MPIEnsemble &mpi_ensemble_;
122
123 std::vector<std::unique_ptr<Geometry<dim>>> geometry_list_;
124
125 typename Geometry<dim>::HP_Collection collection_type_ =
127
129
133 void create_mapping_cache();
134 };
135} // namespace ryujin
void prepare(const std::string &base_name) override
void update_mapping() override
Discretization(const MPIEnsemble &mpi_ensemble, const std::string &subsection="/Discretization")