ryujin
2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
include
ryujin
discretization
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>
9
#include <
ryujin/base/convenience_macros.h
>
10
#include <
ryujin/base/mpi_ensemble.h
>
11
#include <
ryujin/base/patterns_conversion.h
>
12
#include <
ryujin/geometries/geometry.h
>
13
#include <
ryujin/interface/discretization.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
23
namespace
ryujin
24
{
31
enum class
MeshType
{
33
serial
,
35
parallel_shared
,
37
parallel_distributed
,
39
parallel_fullydistributed
40
};
41
}
// namespace ryujin
42
43
#ifndef DOXYGEN
44
DECLARE_ENUM(
ryujin::MeshType
,
45
LIST({
ryujin::MeshType::serial
,
"serial"
},
46
{
ryujin::MeshType::parallel_shared
,
"parallel shared"
},
47
{
ryujin::MeshType::parallel_distributed
,
48
"parallel distributed"
},
49
{
ryujin::MeshType::parallel_fullydistributed
,
50
"parallel fullydistributed"
}));
51
#endif
52
53
namespace
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_ =
126
Geometry<dim>::HP_Collection::standard_quadrilaterals
;
127
129
133
void
create_mapping_cache();
134
};
135
}
// namespace ryujin
ryujin::Discretization
Definition
discretization.h:72
ryujin::Discretization::prepare
void prepare(const std::string &base_name) override
ryujin::Discretization::update_mapping
void update_mapping() override
ryujin::Discretization::Discretization
Discretization(const MPIEnsemble &mpi_ensemble, const std::string &subsection="/Discretization")
ryujin::Geometry
Definition
geometry.h:37
ryujin::Geometry::HP_Collection
HP_Collection
Definition
geometry.h:75
ryujin::Interface::Discretization
Definition
discretization.h:211
ryujin::MPIEnsemble
Definition
mpi_ensemble.h:28
convenience_macros.h
geometry.h
ryujin::MeshType
MeshType
Definition
discretization.h:31
ryujin::MeshType::parallel_shared
@ parallel_shared
ryujin::MeshType::parallel_fullydistributed
@ parallel_fullydistributed
ryujin::MeshType::parallel_distributed
@ parallel_distributed
ryujin::MeshType::serial
@ serial
discretization.h
mpi_ensemble.h
ryujin
Definition
computing_timer.h:22
patterns_conversion.h
Generated by
1.9.8