ryujin 2.1.1 revision 350e54cc11f3d21282bddcf3e6517944dbc508bf
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#include <deal.II/grid/tria.h>
14
15#include <string>
16
17namespace ryujin
18{
19#ifndef DOXYGEN
20 /* forward declaration */
21 template <int dim>
22 class Discretization;
23#endif
24
31 template <int dim>
32 class Geometry : public dealii::ParameterAcceptor
33 {
34 public:
40 Geometry(const std::string &name, const std::string &subsection)
41 : ParameterAcceptor(subsection + "/" + name)
42 , name_(name)
43 {
44 }
45
50 virtual void
51 create_triangulation(dealii::Triangulation<dim> &triangulation) = 0;
52
57
58 private:
59 const std::string name_;
60 };
61
62} /* namespace ryujin */
Geometry(const std::string &name, const std::string &subsection)
Definition: geometry.h:40
virtual void create_triangulation(dealii::Triangulation< dim > &triangulation)=0
#define ACCESSOR_READ_ONLY(member)