Basix 0.8.0

Home     Installation     Demos     C++ docs     Python docs

Loading...
Searching...
No Matches
moments.h
1// Copyright (c) 2020 Chris Richardson & Matthew Scroggs
2// FEniCS Project
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include "cell.h"
8#include "polyset.h"
9#include <array>
10#include <concepts>
11#include <tuple>
12#include <utility>
13#include <vector>
14
15namespace basix
16{
17template <std::floating_point T>
18class FiniteElement;
19
21namespace moments
22{
23
45template <std::floating_point T>
46std::tuple<std::vector<std::vector<T>>, std::array<std::size_t, 2>,
47 std::vector<std::vector<T>>, std::array<std::size_t, 4>>
48make_integral_moments(const FiniteElement<T>& moment_space, cell::type celltype,
49 polyset::type ptype, std::size_t value_size, int q_deg);
50
75template <std::floating_point T>
76std::tuple<std::vector<std::vector<T>>, std::array<std::size_t, 2>,
77 std::vector<std::vector<T>>, std::array<std::size_t, 4>>
79 polyset::type ptype, std::size_t value_size,
80 int q_deg);
81
101template <std::floating_point T>
102std::tuple<std::vector<std::vector<T>>, std::array<std::size_t, 2>,
103 std::vector<std::vector<T>>, std::array<std::size_t, 4>>
105 polyset::type ptype, std::size_t value_size,
106 int q_deg);
107
126template <std::floating_point T>
127std::tuple<std::vector<std::vector<T>>, std::array<std::size_t, 2>,
128 std::vector<std::vector<T>>, std::array<std::size_t, 4>>
130 polyset::type ptype, std::size_t value_size,
131 int q_deg);
132
133} // namespace moments
134} // namespace basix
A finite element.
Definition: finite-element.h:139
type
Cell type.
Definition: cell.h:21
std::tuple< std::vector< std::vector< T > >, std::array< std::size_t, 2 >, std::vector< std::vector< T > >, std::array< std::size_t, 4 > > make_dot_integral_moments(const FiniteElement< T > &V, cell::type celltype, polyset::type ptype, std::size_t value_size, int q_deg)
Make interpolation points and weights for dot product integral moments.
Definition: moments.cpp:198
std::tuple< std::vector< std::vector< T > >, std::array< std::size_t, 2 >, std::vector< std::vector< T > >, std::array< std::size_t, 4 > > make_normal_integral_moments(const FiniteElement< T > &V, cell::type celltype, polyset::type ptype, std::size_t value_size, int q_deg)
Compute interpolation points and weights for normal integral moments.
Definition: moments.cpp:350
std::tuple< std::vector< std::vector< T > >, std::array< std::size_t, 2 >, std::vector< std::vector< T > >, std::array< std::size_t, 4 > > make_tangent_integral_moments(const FiniteElement< T > &V, cell::type celltype, polyset::type ptype, std::size_t value_size, int q_deg)
Make interpolation points and weights for tangent integral moments.
Definition: moments.cpp:275
std::tuple< std::vector< std::vector< T > >, std::array< std::size_t, 2 >, std::vector< std::vector< T > >, std::array< std::size_t, 4 > > make_integral_moments(const FiniteElement< T > &moment_space, cell::type celltype, polyset::type ptype, std::size_t value_size, int q_deg)
Make interpolation points and weights for simple integral moments.
Definition: moments.cpp:106
type
Cell type.
Definition: polyset.h:136
Basix: FEniCS runtime basis evaluation library.
Definition: cell.h:17