Note: this is documentation for an old release. View the latest documentation at docs.fenicsproject.org/basix/v0.9.0/cpp/lattice_8h_source.html

Basix 0.7.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 <concepts>
10 #include <utility>
11 #include <vector>
12 
14 namespace basix::lattice
15 {
16 
21 enum class type
22 {
23  equispaced = 0,
24  gll = 1,
25  chebyshev = 2,
26  gl = 4,
28  = 10,
30  = 11,
31 };
32 
34 enum class simplex_method
35 {
36  none = 0,
38  warp = 1,
40  isaac = 2,
43  centroid = 3,
47 };
48 
71 template <std::floating_point T>
72 std::pair<std::vector<T>, std::array<std::size_t, 2>>
73 create(cell::type celltype, int n, lattice::type type, bool exterior,
75 
76 } // namespace basix::lattice
type
Cell type.
Definition: cell.h:21
Lattices of points.
Definition: lattice.h:15
type
The type of point spacing to be used in a lattice.
Definition: lattice.h:22
simplex_method
The method used to generate points inside simplices.
Definition: lattice.h:35
std::pair< std::vector< T >, 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:819