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

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

#include <double_integral.hpp>

Classes

struct  eval_singular_on_accelerator
 evaluate collocational singular integral with selected singular accelerator More...
 
struct  eval_singular_on_accelerator< invalid_singular_accelerator, dummy >
 evaluate collocational singular integral with the invalid accelerator More...
 

Public Types

enum  { kernel_rows = num_rows<kernel_result_t>::value, kernel_cols = num_cols<kernel_result_t>::value }
 
typedef std::true_type WITH_SINGULARITY_CHECK
 
typedef std::false_type WITHOUT_SINGULARITY_CHECK
 
typedef TrialField::elem_t trial_elem_t
 type of the trial element
 
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 kernel_traits< Kernel >::result_t kernel_result_t
 result type of kernel
 
typedef weighted_input< trial_input_t, trial_elem_t >::type w_trial_input_t
 weighted trial input type
 
typedef kernel_traits< Kernel >::quadrature_family_t quadrature_family_t
 the quadrature family the kernel requires
 
typedef TestField::nset_t test_nset_t
 N-set of the test field.
 
typedef TrialField::nset_t trial_nset_t
 N-set of the trial field.
 
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 collocational 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 first, dual_iterator_t last)
 evaluate regular collocational integral with selected trial field accelerator 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 single 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 single 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::collocational >

specialisation of NiHu::double_integral for the collocational formalism

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

Definition at line 395 of file double_integral.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<class Kernel , class TestField , class TrialField >
anonymous enum
Enumerator
kernel_rows 

number of rows of the kernel result

kernel_cols 

number of columns of the kernel result

Definition at line 427 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::collocational >::eval ( kernel_base< Kernel > const &  kernel,
field_base< TestField > const &  test_field,
field_base< TrialField > const &  trial_field,
OnSameMesh   
)
inlinestatic

evaluate collocational integral on given fields

Template Parameters
OnSameMeshindicates that the two fields are defined over the same mesh and singularity check may be needed
Parameters
[in]kernelthe kernel to integrate
[in]test_fieldthe test field defining the collocation points
[in]trial_fieldthe trial field to integrate on
Returns
the integration result by value

Definition at line 660 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::collocational >::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 single 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 defining the collocation points
[in]trial_fieldreference to the trial field to integrate on
Returns
reference to the stored result

Definition at line 608 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::collocational >::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 single 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 defining the collocation points
[in]trial_fieldreference to the trial field to integrate on
Returns
reference to the stored result

Definition at line 552 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::collocational >::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  first,
dual_iterator_t  last 
)
inlinestaticprotected

evaluate regular collocational integral with selected trial field accelerator

Template Parameters
dual_iteratorthe iterator type of the field accelerator
Parameters
[out]resultreference to the integration result matrix
[in]kernelthe kernel to integrate
[in]test_fielddefining the collocation points
[in]trial_fieldthe trial field to integrate on
[in]firstthe begin iterator of the accelerator
[in]lastthe end iterator of the accelerator
Returns
reference to the integration result

Definition at line 446 of file double_integral.hpp.


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