ryujin 2.1.1 revision a15074459a388761bd8df6bd4ef7e6abe9d8077b
geometry.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2020 - 2023 by the ryujin authors
4//
5
6#pragma once
7
8#include <compile_time_options.h>
9
10#include "convenience_macros.h"
11
12#include <deal.II/base/parameter_acceptor.h>
13
14#include <string>
15
16namespace ryujin
17{
18#ifndef DOXYGEN
19 /* forward declaration */
20 template <int dim>
21 class Discretization;
22#endif
23
30 template <int dim>
31 class Geometry : public dealii::ParameterAcceptor
32 {
33 public:
39
45 Geometry(const std::string &name, const std::string &subsection)
46 : ParameterAcceptor(subsection + "/" + name)
47 , name_(name)
48 {
49 }
50
55 virtual void create_triangulation(Triangulation &triangulation) = 0;
56
61
62 private:
63 const std::string name_;
64 };
65
66} /* namespace ryujin */
typename Proxy< dim >::Triangulation Triangulation
Geometry(const std::string &name, const std::string &subsection)
Definition: geometry.h:45
typename Discretization< dim >::Triangulation Triangulation
Definition: geometry.h:38
auto & name() const
Definition: geometry.h:60
virtual void create_triangulation(Triangulation &triangulation)=0
#define ACCESSOR_READ_ONLY(member)