DOLFINx 0.9.0
DOLFINx C++ interface
Loading...
Searching...
No Matches
integral_data< T, U > Struct Template Reference

Represents integral data, containing the integral ID, the kernel, and a list of entities to integrate over. More...

#include <Form.h>

Public Member Functions

template<typename K , typename V , typename W >
requires std::is_convertible_v< std::remove_cvref_t<K>, std::function<void(T*, const T*, const T*, const U*, const int*, const uint8_t*)>> and std::is_convertible_v<std::remove_cvref_t<V>, std::vector<std::int32_t>> and std::is_convertible_v<std::remove_cvref_t<W>, std::vector<int>>
 integral_data (int id, K &&kernel, V &&entities, W &&coeffs)
 Create a structure to hold integral data.
 
template<typename K , typename W >
requires std::is_convertible_v< std::remove_cvref_t<K>, std::function<void(T*, const T*, const T*, const U*, const int*, const uint8_t*)>> and std::is_convertible_v<std::remove_cvref_t<W>, std::vector<int>>
 integral_data (int id, K &&kernel, std::span< const std::int32_t > entities, W &&coeffs)
 Create a structure to hold integral data.
 

Public Attributes

int id
 Integral ID.
 
std::function< void(T *, const T *, const T *, const U *, const int *, const uint8_t *)> kernel
 The integration kernel.
 
std::vector< std::int32_t > entities
 The entities to integrate over.
 
std::vector< int > coeffs
 Indices of coefficients (from the form) that are in this integral.
 

Detailed Description

template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>>
struct dolfinx::fem::integral_data< T, U >

Represents integral data, containing the integral ID, the kernel, and a list of entities to integrate over.

Constructor & Destructor Documentation

◆ integral_data() [1/2]

template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>>
template<typename K , typename V , typename W >
requires std::is_convertible_v< std::remove_cvref_t<K>, std::function<void(T*, const T*, const T*, const U*, const int*, const uint8_t*)>> and std::is_convertible_v<std::remove_cvref_t<V>, std::vector<std::int32_t>> and std::is_convertible_v<std::remove_cvref_t<W>, std::vector<int>>
integral_data ( int id,
K && kernel,
V && entities,
W && coeffs )
inline

Create a structure to hold integral data.

Parameters
[in]idDomain ID.
[in]kernelIntegration kernel.
[in]entitiesIndices of entities to integrate over.
[in]coeffsIndicies of the coefficients are present (active) in kernel.

◆ integral_data() [2/2]

template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>>
template<typename K , typename W >
requires std::is_convertible_v< std::remove_cvref_t<K>, std::function<void(T*, const T*, const T*, const U*, const int*, const uint8_t*)>> and std::is_convertible_v<std::remove_cvref_t<W>, std::vector<int>>
integral_data ( int id,
K && kernel,
std::span< const std::int32_t > entities,
W && coeffs )
inline

Create a structure to hold integral data.

Parameters
[in]idDomain ID.
[in]kernelIntegration kernel.
[in]entitiesIndices of entities to integrate over.
[in]coeffsIndicies of the coefficients that are active in the kernel.
Note
This version allows entities to be passed as a std::span, which is then copied.

The documentation for this struct was generated from the following file: