DOLFINx 0.10.0.0
DOLFINx C++ interface
|
Functions supporting the packing of coefficient data. More...
#include "Constant.h"
#include "DofMap.h"
#include "FiniteElement.h"
#include "Form.h"
#include "Function.h"
#include "FunctionSpace.h"
#include "traits.h"
#include <array>
#include <basix/mdspan.hpp>
#include <concepts>
#include <dolfinx/mesh/Topology.h>
#include <span>
#include <stdexcept>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Namespaces | |
namespace | dolfinx |
Top-level namespace. | |
namespace | dolfinx::fem |
Finite element method functionality. | |
Functions | |
template<int _bs, dolfinx::scalar T> | |
void | pack_impl (std::span< T > coeffs, std::int32_t cell, int bs, std::span< const T > v, std::span< const std::uint32_t > cell_info, const DofMap &dofmap, auto transform) |
Pack a single coefficient for a single cell. | |
template<dolfinx::scalar T, std::floating_point U> | |
void | pack_coefficient_entity (std::span< T > c, int cstride, const Function< T, U > &u, std::span< const std::uint32_t > cell_info, auto cells, std::int32_t offset) |
Pack a single coefficient for a set of active entities. | |
template<dolfinx::scalar T, std::floating_point U> | |
std::pair< std::vector< T >, int > | allocate_coefficient_storage (const Form< T, U > &form, IntegralType integral_type, int id) |
Allocate storage for coefficients of a pair (integral_type, / id) from a Form. | |
template<dolfinx::scalar T, std::floating_point U> | |
std::map< std::pair< IntegralType, int >, std::pair< std::vector< T >, int > > | allocate_coefficient_storage (const Form< T, U > &form) |
Allocate memory for packed coefficients of a Form. | |
template<dolfinx::scalar T, std::floating_point U> | |
void | pack_coefficients (const Form< T, U > &form, std::map< std::pair< IntegralType, int >, std::pair< std::vector< T >, int > > &coeffs) |
Pack coefficients of a Form. | |
template<dolfinx::scalar T, std::floating_point U> | |
void | pack_coefficients (std::vector< std::reference_wrapper< const Function< T, U > > > coeffs, std::span< const int > offsets, fem::MDSpan2 auto entities, std::span< T > c) |
Pack coefficient data over a list of cells or facets. | |
template<typename T> | |
std::vector< T > | pack_constants (std::vector< std::reference_wrapper< const fem::Constant< T > > > c) |
Pack constants of an Expression or Form into a single array ready for assembly. | |
template<typename U> requires std::convertible_to< U, fem::Expression<typename std::decay_t<U>::scalar_type, typename std::decay_t<U>::geometry_type>> or std::convertible_to< U, fem::Form<typename std::decay_t<U>::scalar_type, typename std::decay_t<U>::geometry_type>> | |
std::vector< typename U::scalar_type > | pack_constants (const U &u) |
Pack constants of an Expression or Form into a single array ready for assembly. | |
Functions supporting the packing of coefficient data.
void pack_coefficient_entity | ( | std::span< T > | c, |
int | cstride, | ||
const Function< T, U > & | u, | ||
std::span< const std::uint32_t > | cell_info, | ||
auto | cells, | ||
std::int32_t | offset ) |
Pack a single coefficient for a set of active entities.
[out] | c | Coefficient to be packed. |
[in] | cstride | Total number of coefficient values to pack for each entity. |
[in] | u | Function to extract coefficient data from. |
[in] | cell_info | Array of bytes describing which transformation has to be applied on the cell to map it to the reference element. |
[in] | cells | Set of active cells. |
[in] | offset | The offset for c. |