ryujin 2.1.1 revision dbf0e3ba7acdb60b6d558e4257815df4a8f8daf9
geometry_library.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2022 - 2024 by the ryujin authors
4//
5
6#pragma once
7
8#include <compile_time_options.h>
9
10#include "geometry_airfoil.h"
11#include "geometry_annulus.h"
12#include "geometry_cylinder.h"
13#include "geometry_disk.h"
15#include "geometry_reader.h"
17#include "geometry_step.h"
18#include "geometry_tank.h"
19#include "geometry_wall.h"
20
21namespace ryujin
22{
29 namespace Geometries
30 {
37 template <int dim, typename T>
38 void populate_geometry_list(T &geometry_list, const std::string &subsection)
39 {
40 auto add = [&](auto &&object) {
41 geometry_list.emplace(std::move(object));
42 };
43
44 add(std::make_shared<Airfoil<dim>>(subsection));
45 add(std::make_shared<Annulus<dim>>(subsection));
46 add(std::make_shared<Cylinder<dim>>(subsection));
47 add(std::make_shared<Disk<dim>>(subsection));
48 add(std::make_shared<GeoTIFFProfile<dim>>(subsection));
49 add(std::make_shared<Reader<dim>>(subsection));
50 add(std::make_shared<RectangularDomain<dim>>(subsection));
51 add(std::make_shared<Step<dim>>(subsection));
52 add(std::make_shared<Wall<dim>>(subsection));
53 add(std::make_shared<WaveTank<dim>>(subsection));
54 }
55 } /* namespace Geometries */
56} /* namespace ryujin */
void populate_geometry_list(T &geometry_list, const std::string &subsection)
DEAL_II_ALWAYS_INLINE FT add(const FT &flux_left_ij, const FT &flux_right_ij)