Basix 0.5.0

Home     Installation     Demos     C++ docs     Python docs

lattice.h
1 // Copyright (c) 2020-2022 Chris Richardson and Garth N. Wells
2 // FEniCS Project
3 // SPDX-License-Identifier: MIT
4 
5 #pragma once
6 
7 #include "cell.h"
8 #include <array>
9 #include <utility>
10 #include <vector>
11 
13 namespace basix::lattice
14 {
15 
20 enum class type
21 {
22  equispaced = 0,
23  gll = 1,
24  chebyshev = 2,
25  gl = 4,
27  = 10,
29  = 11,
30 };
31 
33 enum class simplex_method
34 {
35  none = 0,
37  warp = 1,
39  isaac = 2,
42  centroid = 3,
46 };
47 
70 std::pair<std::vector<double>, std::array<std::size_t, 2>>
71 create(cell::type celltype, int n, lattice::type type, bool exterior,
73 
74 } // namespace basix::lattice
basix::lattice::simplex_method::centroid
@ centroid
basix::lattice::type
type
The type of point spacing to be used in a lattice.
Definition: lattice.h:20
basix::lattice::type::gll
@ gll
basix::lattice::simplex_method::warp
@ warp
basix::lattice
Lattices of points.
Definition: lattice.h:13
basix::cell::type
type
Cell type.
Definition: cell.h:19
basix::lattice::simplex_method::none
@ none
basix::lattice::type::chebyshev_plus_endpoints
@ chebyshev_plus_endpoints
basix::lattice::type::gl_plus_endpoints
@ gl_plus_endpoints
basix::lattice::simplex_method
simplex_method
The method used to generate points inside simplices.
Definition: lattice.h:33
basix::lattice::create
std::pair< std::vector< double >, std::array< std::size_t, 2 > > create(cell::type celltype, int n, lattice::type type, bool exterior, lattice::simplex_method simplex_method=lattice::simplex_method::none)
Create a lattice of points on a reference cell optionally including the outer surface points.
Definition: lattice.cpp:900
basix::lattice::type::equispaced
@ equispaced
basix::lattice::type::chebyshev
@ chebyshev
basix::lattice::type::gl
@ gl
basix::lattice::simplex_method::isaac
@ isaac