CreateInitialMesh.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <array>
7 #include <cstddef>
8 #include <vector>
9 
10 #include "Domain/Mesh.hpp"
11 
12 /// \cond
13 template <size_t Dim>
14 struct ElementId;
15 template <size_t Dim>
16 struct OrientationMap;
17 /// \endcond
18 
19 namespace domain {
20 namespace Initialization {
21 /// \ingroup InitializationGroup
22 /// \brief Construct the initial Mesh of an Element.
23 ///
24 /// \details When constructing the Mesh of an Element, pass its id, and use the
25 /// default argument for orientation. When constructing the mesh of a
26 /// neighboring Element (when constructing mortars), pass the id and orientation
27 /// of the neighbor.
28 ///
29 /// \param initial_extents the initial extents of each Block in the Domain
30 /// \param element_id id of an Element or its neighbor
31 /// \param orientation OrientationMap of (neighboring) `element_id`
32 template <size_t Dim>
34  const std::vector<std::array<size_t, Dim>>& initial_extents,
35  const ElementId<Dim>& element_id,
36  const OrientationMap<Dim>& orientation = {}) noexcept;
37 } // namespace Initialization
38 } // namespace domain
Definition: ConservativeSystem.hpp:34
Definition: BlockId.hpp:16
An ElementId uniquely labels an Element. It is constructed from the BlockId of the Block to which the...
Definition: ElementId.hpp:36
Holds the number of grid points, basis, and quadrature in each direction of the computational grid...
Definition: Mesh.hpp:49
Mesh< Dim > create_initial_mesh(const std::vector< std::array< size_t, Dim >> &initial_extents, const ElementId< Dim > &element_id, const OrientationMap< Dim > &orientation) noexcept
Construct the initial Mesh of an Element.
Definition: CreateInitialMesh.cpp:21
Defines the class template Mesh.