MFEM v4.9.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::future::detail Namespace Reference

Functions

template<typename qf_param_ts , typename qfunc_t , std::size_t num_fields>
MFEM_HOST_DEVICE void call_qfunction_derivative (qfunc_t &qfunc, const std::array< DeviceTensor< 2 >, num_fields > &input_shmem, const std::array< DeviceTensor< 2 >, num_fields > &shadow_shmem, DeviceTensor< 2 > &residual_shmem, DeviceTensor< 5 > &qpdc, const DeviceTensor< 1, const real_t > &itod, const int &das_qp, const int &q)
 
template<size_t num_fields>
MFEM_HOST_DEVICE void apply_qpdc (DeviceTensor< 3 > &fhat, const std::array< DeviceTensor< 2 >, num_fields > &shadow_shmem, const DeviceTensor< 5, const real_t > &qpdc, const DeviceTensor< 1, const real_t > &itod, const int &q)
 Apply the quadrature point data cache (qpdc) to a vector (usually a direction) on quadrature point q.
 
template<typename lambda , std::size_t... i>
constexpr void for_constexpr (lambda &&f, std::integral_constant< std::size_t, i >... Is)
 
template<std::size_t... n, typename lambda , typename... arg_types>
constexpr void for_constexpr (lambda &&f, std::integer_sequence< std::size_t, n... >, arg_types... args)
 

Function Documentation

◆ apply_qpdc()

template<size_t num_fields>
MFEM_HOST_DEVICE void mfem::future::detail::apply_qpdc ( DeviceTensor< 3 > & fhat,
const std::array< DeviceTensor< 2 >, num_fields > & shadow_shmem,
const DeviceTensor< 5, const real_t > & qpdc,
const DeviceTensor< 1, const real_t > & itod,
const int & q )
inline

Apply the quadrature point data cache (qpdc) to a vector (usually a direction) on quadrature point q.

The qpdc consists of compatible data to be used for integration with a test operator, e.g. Jacobians of a linearization from a FE operation with a trial function including integration weights and necessesary transformations.

Parameters
fhatthe qpdc applied to a vector in shadow_memory.
shadow_shmemthe shadow shared memory.
qpdcthe quadrature point data cache holding the resulting Jacobians on each quadrature point.
itodinputs trial operator dimension. If input is dependent the value corresponds to the spatial dimension, otherwise a zero indicates non-dependence on the variable.
qthe current quadrature point index.

Definition at line 388 of file qfunction_apply.hpp.

◆ call_qfunction_derivative()

template<typename qf_param_ts , typename qfunc_t , std::size_t num_fields>
MFEM_HOST_DEVICE void mfem::future::detail::call_qfunction_derivative ( qfunc_t & qfunc,
const std::array< DeviceTensor< 2 >, num_fields > & input_shmem,
const std::array< DeviceTensor< 2 >, num_fields > & shadow_shmem,
DeviceTensor< 2 > & residual_shmem,
DeviceTensor< 5 > & qpdc,
const DeviceTensor< 1, const real_t > & itod,
const int & das_qp,
const int & q )
inline

Definition at line 221 of file qfunction_apply.hpp.

◆ for_constexpr() [1/2]

template<std::size_t... n, typename lambda , typename... arg_types>
void mfem::future::detail::for_constexpr ( lambda && f,
std::integer_sequence< std::size_t, n... > ,
arg_types... args )
constexpr

Definition at line 60 of file util.hpp.

◆ for_constexpr() [2/2]

template<typename lambda , std::size_t... i>
void mfem::future::detail::for_constexpr ( lambda && f,
std::integral_constant< std::size_t, i >... Is )
constexpr

Definition at line 52 of file util.hpp.