NiHu  2.0
NiHu::guiggiani< TrialField, Kernel, RadialOrder, TangentialOrder, typename std::enable_if< !element_traits::is_surface_element< typename TrialField::elem_t >::value >::type > Class Template Reference

specialisation of Guiggiani's method for volume elements and collocation More...

#include <guiggiani_1992.hpp>

Public Types

enum  { radial_order = RadialOrder, tangential_order = TangentialOrder }
 quadrature orders stored as internal constants More...
 
enum  { laurent_order = singular_kernel_traits<kernel_t>::singularity_type_t::value - 1 }
 
typedef TrialField trial_field_t
 the trial field type
 
typedef trial_field_t::elem_t elem_t
 the element type
 
typedef elem_t::domain_t domain_t
 the original reference domain type
 
typedef domain_t::xi_t xi_t
 the reference coordinate vector type
 
typedef elem_t::scalar_t scalar_t
 the geometrical scalar type
 
typedef Eigen::Matrix< scalar_t, domain_t::dimension, domain_t::dimension > trans_t
 the Rong's transformation matrix type
 
typedef elem_t::x_t x_t
 the physical coordinate vector type
 
typedef trial_field_t::nset_t trial_nset_t
 shape function set type
 
typedef trial_nset_t::shape_t trial_n_shape_t
 the shape function vector type
 
typedef Kernel kernel_t
 the kernel type
 
typedef kernel_traits< kernel_t >::test_input_t test_input_t
 the kernel's test input type
 
typedef kernel_traits< kernel_t >::trial_input_t trial_input_t
 the kernel's trial input type
 
typedef weighted_input< trial_input_t, elem_t >::type w_trial_input_t
 the kernel's weighted trial input type
 
typedef singular_kernel_traits< kernel_t >::singular_core_t singular_core_t
 the singular core type
 
typedef polar_laurent_coeffs< singular_core_tlaurent_t
 the Laurent coefficients computing class
 
typedef semi_block_product_result_type< typename singular_core_t::result_t, trial_n_shape_t >::type laurent_coeff_t
 value type of the Laurent coefficients
 
typedef semi_block_product_result_type< typename kernel_t::result_t, trial_n_shape_t >::type total_result_t
 value type of the integral result
 

Public Member Functions

 guiggiani (elem_t const &elem, kernel_base< kernel_t > const &kernel)
 constructor More...
 
template<class result_t >
void integrate (result_t &&I, xi_t const &xi0)
 the entry point of integration More...
 
template<class T , T order>
const x_tget_rvec_series (std::integral_constant< T, order >) const
 return Taylor coefficient of the distance measured from the collocation point
 
template<class T , T order>
double get_J_series (std::integral_constant< T, order >) const
 return Taylor coefficient of the Jacobian vector around the collocation point
 
template<class T , T order>
const trial_n_shape_tget_shape_series (std::integral_constant< T, order >) const
 return Taylor coefficient of the shape set around the collocation point
 
template<class T , T order>
laurent_coeff_tget_laurent_coeff (std::integral_constant< T, order >)
 return a Laurent coefficient
 
template<class T , T order>
void set_laurent_coeff (std::integral_constant< T, order >, laurent_coeff_t const &v)
 set a Laurent coefficient
 
const kernel_tget_kernel (void) const
 

Detailed Description

template<class TrialField, class Kernel, unsigned RadialOrder, unsigned TangentialOrder>
class NiHu::guiggiani< TrialField, Kernel, RadialOrder, TangentialOrder, typename std::enable_if< !element_traits::is_surface_element< typename TrialField::elem_t >::value >::type >

specialisation of Guiggiani's method for volume elements and collocation

Template Parameters
TrialFieldthe trial field's type
Kernelthe kernel type
RadialOrderthe order of radial integration
TangentialOrderthe order of tangential integration

Definition at line 454 of file guiggiani_1992.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<class TrialField , class Kernel , unsigned RadialOrder, unsigned TangentialOrder>
anonymous enum

quadrature orders stored as internal constants

Enumerator
radial_order 

quadrature order in radial direction

tangential_order 

quadrature order in tangential direction

Definition at line 460 of file guiggiani_1992.hpp.

◆ anonymous enum

template<class TrialField , class Kernel , unsigned RadialOrder, unsigned TangentialOrder>
anonymous enum
Todo:
these calculations are only valid for the 2D volume case
Enumerator
laurent_order 

the required Laurent expansion order

Definition at line 514 of file guiggiani_1992.hpp.

Constructor & Destructor Documentation

◆ guiggiani()

template<class TrialField , class Kernel , unsigned RadialOrder, unsigned TangentialOrder>
NiHu::guiggiani< TrialField, Kernel, RadialOrder, TangentialOrder, typename std::enable_if< !element_traits::is_surface_element< typename TrialField::elem_t >::value >::type >::guiggiani ( elem_t const &  elem,
kernel_base< kernel_t > const &  kernel 
)
inline

constructor

Parameters
[in]elemthe element
[in]kernelthe kernel

Definition at line 523 of file guiggiani_1992.hpp.

Member Function Documentation

◆ integrate()

template<class TrialField , class Kernel , unsigned RadialOrder, unsigned TangentialOrder>
template<class result_t >
void NiHu::guiggiani< TrialField, Kernel, RadialOrder, TangentialOrder, typename std::enable_if< !element_traits::is_surface_element< typename TrialField::elem_t >::value >::type >::integrate ( result_t &&  I,
xi_t const &  xi0 
)
inline

the entry point of integration

Template Parameters
result_tthe result type where the integral is assembled
Parameters
[in]xi0the singular point in intrinsic coordinates
[in]normalthe normal vector in the singular point
[out]Ithe result matrix where the data is assembled

Definition at line 631 of file guiggiani_1992.hpp.


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