OISEAU
A modern DGTD framework
Loading...
Searching...
No Matches
dg_space.hpp
1// Copyright (C) 2025 Tiago V. L. Amorim (@tiagovla)
2//
3// This file is part of oiseau (https://github.com/tiagovla/oiseau)
4//
5// SPDX-License-Identifier: GPL-3.0-or-later
6
7#pragma once
8
9#include <iostream>
10#include <span>
11#include <vector>
12
13#include "oiseau/dg/nodal/element.hpp"
14#include "oiseau/mesh/mesh.hpp"
15
16namespace oiseau::dg {
17
18class DGSpace {
19 public:
20 DGSpace(const DGSpace& V) = delete;
21 DGSpace(const mesh::Mesh& mesh, const std::vector<unsigned>& orders);
22 DGSpace(DGSpace&& V) = default;
23 virtual ~DGSpace() = default;
24 DGSpace& operator=(const DGSpace& V) = delete;
25 DGSpace& operator=(DGSpace&& V) = delete;
26
27 inline const mesh::Mesh& mesh() const { return m_mesh; };
28 std::span<const nodal::Element> elements() const;
29 std::span<const unsigned> orders() const;
30
31 private:
32 const mesh::Mesh& m_mesh;
33 std::vector<nodal::Element> m_elements;
34 const std::vector<unsigned> m_orders;
35};
36
37} // namespace oiseau::dg
Definition mesh.hpp:15