NiHu  2.0
NiHu::double_integral< Kernel, TestField, TrialField, formalism::general > Class Template Reference

specialisation of NiHu::double_integral for the general formalism More...

#include <double_integral.hpp>

Classes

struct  eval_singular_on_accelerator
 evaluate double singular integral with selected singular accelerator More...
 
struct  eval_singular_on_accelerator< invalid_singular_accelerator, dummy >
 specialisation of eval_singular_on_accelerator to the invalid accelerator More...
 

Public Types

typedef std::true_type WITH_SINGULARITY_CHECK
 
typedef std::false_type WITHOUT_SINGULARITY_CHECK
 
typedef TestField::elem_t test_elem_t
 the test elem type
 
typedef TrialField::elem_t trial_elem_t
 the trial elem type
 
typedef kernel_traits< Kernel >::test_input_t test_input_t
 test input type of kernel
 
typedef kernel_traits< Kernel >::trial_input_t trial_input_t
 trial input type of kernel
 
typedef weighted_input< test_input_t, test_elem_t >::type w_test_input_t
 weighted test input type of kernel
 
typedef weighted_input< trial_input_t, trial_elem_t >::type w_trial_input_t
 weighted trial input type of kernel
 
typedef kernel_traits< Kernel >::quadrature_family_t quadrature_family_t
 the quadrature family the kernel requires
 
typedef traits_t::result_t result_t
 result type of the weighted residual
 

Static Public Member Functions

template<class OnSameMesh >
static result_t eval (kernel_base< Kernel > const &kernel, field_base< TestField > const &test_field, field_base< TrialField > const &trial_field, OnSameMesh)
 evaluate double integral on given fields More...
 

Static Protected Member Functions

template<class dual_iterator_t >
static result_teval_on_accelerator (result_t &result, kernel_base< Kernel > const &kernel, field_base< TestField > const &test_field, field_base< TrialField > const &trial_field, dual_iterator_t it, dual_iterator_t end)
 evaluate regular double integral with selected accelerators More...
 
static result_teval (WITHOUT_SINGULARITY_CHECK, result_t &result, kernel_base< Kernel > const &kernel, field_base< TestField > const &test_field, field_base< TrialField > const &trial_field)
 evaluate double integral of a kernel on specific fields without singularity check More...
 
static result_teval (WITH_SINGULARITY_CHECK, result_t &result, kernel_base< Kernel > const &kernel, field_base< TestField > const &test_field, field_base< TrialField > const &trial_field)
 evaluate double integral of a kernel on specific fields with singularity check More...
 

Detailed Description

template<class Kernel, class TestField, class TrialField>
class NiHu::double_integral< Kernel, TestField, TrialField, formalism::general >

specialisation of NiHu::double_integral for the general formalism

Template Parameters
Kerneltype of the kernel to integrate
TestFieldtype of the test field
TrialFieldtype of the trial field

Definition at line 143 of file double_integral.hpp.

Member Function Documentation

◆ eval() [1/3]

template<class Kernel , class TestField , class TrialField >
template<class OnSameMesh >
static result_t NiHu::double_integral< Kernel, TestField, TrialField, formalism::general >::eval ( kernel_base< Kernel > const &  kernel,
field_base< TestField > const &  test_field,
field_base< TrialField > const &  trial_field,
OnSameMesh   
)
inlinestatic

evaluate double integral on given fields

Parameters
[in]kernelthe kernel to integrate
[in]test_fieldthe test field to integrate on
[in]trial_fieldthe trial field to integrate on
Returns
the integration result by value

Definition at line 368 of file double_integral.hpp.

◆ eval() [2/3]

template<class Kernel , class TestField , class TrialField >
static result_t& NiHu::double_integral< Kernel, TestField, TrialField, formalism::general >::eval ( WITH_SINGULARITY_CHECK  ,
result_t result,
kernel_base< Kernel > const &  kernel,
field_base< TestField > const &  test_field,
field_base< TrialField > const &  trial_field 
)
inlinestaticprotected

evaluate double integral of a kernel on specific fields with singularity check

Parameters
[out]resultreference to the integration result matrix
[in]kernelthe kernel to integrate
[in]test_fieldreference to the test field
[in]trial_fieldreference to the trial field
Returns
reference to the stored result

Definition at line 329 of file double_integral.hpp.

◆ eval() [3/3]

template<class Kernel , class TestField , class TrialField >
static result_t& NiHu::double_integral< Kernel, TestField, TrialField, formalism::general >::eval ( WITHOUT_SINGULARITY_CHECK  ,
result_t result,
kernel_base< Kernel > const &  kernel,
field_base< TestField > const &  test_field,
field_base< TrialField > const &  trial_field 
)
inlinestaticprotected

evaluate double integral of a kernel on specific fields without singularity check

Parameters
[out]resultreference to the integration result matrix
[in]kernelthe kernel to integrate
[in]test_fieldreference to the test field
[in]trial_fieldreference to the trial field
Returns
reference to the stored result

Definition at line 282 of file double_integral.hpp.

◆ eval_on_accelerator()

template<class Kernel , class TestField , class TrialField >
template<class dual_iterator_t >
static result_t& NiHu::double_integral< Kernel, TestField, TrialField, formalism::general >::eval_on_accelerator ( result_t result,
kernel_base< Kernel > const &  kernel,
field_base< TestField > const &  test_field,
field_base< TrialField > const &  trial_field,
dual_iterator_t  it,
dual_iterator_t  end 
)
inlinestaticprotected

evaluate regular double integral with selected accelerators

Parameters
[out]resultreference to the integration result matrix
[in]kernelthe kernel to integrate
[in]test_fieldthe test field to integrate on
[in]trial_fieldthe trial field to integrate on
[in]itbegin iterator of the accelerator
[in]endend iterator of the accelerator
Returns
reference to the integration result

Definition at line 181 of file double_integral.hpp.


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