DOLFINx
DOLFINx C++ interface
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
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: