Public Types | Public Member Functions | Static Public Attributes
CSplineBoundaryCondition Class Referenceabstract

Abstract base class for B-spline interpolation boundary conditions. More...

#include <mia/core/boundary_conditions.hh>

Inheritance diagram for CSplineBoundaryCondition:
CProductBase CPropertyFlagHolder

Public Types

typedef CSplineBoundaryCondition plugin_data
 helper typedef for plug-in handling More...
 
typedef CSplineBoundaryCondition plugin_type
 helper typedef for plug-in handling More...
 
typedef std::unique_ptr
< CSplineBoundaryCondition
Pointer
 pointer type to this boundary condition More...
 

Public Member Functions

bool apply (CSplineKernel::VIndex &index, CSplineKernel::VWeight &weights) const
 
virtual CSplineBoundaryConditionclone () const __attribute__((warn_unused_result))=0
 
 CSplineBoundaryCondition ()
 
 CSplineBoundaryCondition (const CSplineBoundaryCondition &)=default
 
 CSplineBoundaryCondition (int width)
 
template<typename T >
void filter_line (std::vector< T > &coeff, const std::vector< double > &poles) const
 
void filter_line (std::vector< double > &coeff, const std::vector< double > &poles) const
 
int get_width () const
 
void set_width (int width)
 
template<typename T >
void template_filter_line (std::vector< T > &coeff, const std::vector< double > &poles) const
 
- Public Member Functions inherited from CProductBase
const char * get_init_string () const
 
void set_init_string (const char *init)
 
void set_module (PPluginModule module)
 
- Public Member Functions inherited from CPropertyFlagHolder
void add (const char *property)
 
Set get_missing_properties (const CPropertyFlagHolder &testset) const
 
bool has (const char *property) const
 
bool has_all_in (const CPropertyFlagHolder &testset) const
 
virtual ~CPropertyFlagHolder ()
 

Static Public Attributes

static const char *const data_descr
 data portion of the plugin search path More...
 
static const char *const type_descr
 type portion of the plugin search path More...
 

Detailed Description

Abstract base class for B-spline interpolation boundary conditions.

This class is the abstract base class for B-spline interpolation boundary conditions.

The actual boundary conditions are implemented as plug-ins and instances are created by calling produce_spline_boundary_condition.

Definition at line 52 of file boundary_conditions.hh.

Member Typedef Documentation

helper typedef for plug-in handling

Definition at line 56 of file boundary_conditions.hh.

helper typedef for plug-in handling

Definition at line 59 of file boundary_conditions.hh.

pointer type to this boundary condition

Definition at line 69 of file boundary_conditions.hh.

Constructor & Destructor Documentation

CSplineBoundaryCondition::CSplineBoundaryCondition ( )
CSplineBoundaryCondition::CSplineBoundaryCondition ( const CSplineBoundaryCondition )
default

Default copy constructor

CSplineBoundaryCondition::CSplineBoundaryCondition ( int  width)

Constructor for the boundary conditions.

Parameters
widthsize of the coefficent domain

Member Function Documentation

bool CSplineBoundaryCondition::apply ( CSplineKernel::VIndex index,
CSplineKernel::VWeight weights 
) const

Apply the boundary conditions

Parameters
index- indices into the coeffisicnt domain will be changed to fit domain
weights- according weights
Returns
true if the index set was in the coefficient domain
virtual CSplineBoundaryCondition* CSplineBoundaryCondition::clone ( ) const
pure virtual
Returns
a copy of the (derived) instance of this boundary condition
template<typename T >
void CSplineBoundaryCondition::filter_line ( std::vector< T > &  coeff,
const std::vector< double > &  poles 
) const

Prefiltering function to convert a vector of input data to spline coefficients

Template Parameters
Tmust either be a scalar type or an array of scalar data types whose elements can be accessed by using the operator[]. This restriction is currently necessary to allow a dynamic polymorphic implementation of the pre-filtering step needed for different boundary condition models.
Parameters
[in,out]coeffvector of function values that will be converted to spline coefficients
polesthe poles of the B-spline the coefficients are created for

Definition at line 273 of file boundary_conditions.hh.

void CSplineBoundaryCondition::filter_line ( std::vector< double > &  coeff,
const std::vector< double > &  poles 
) const

Prefiltering function to convert a vector of double valued input data to spline coefficients This is the actual work routine that will be called by the other filter_line functions after type conversion and decomposition has been executed

Parameters
[in,out]coeffvector of function values that will be converted to spline coefficients
polesthe poles of the B-spline the coefficients are created for
int CSplineBoundaryCondition::get_width ( ) const
inline
Returns
the width of the coefficient domain

Definition at line 102 of file boundary_conditions.hh.

void CSplineBoundaryCondition::set_width ( int  width)

(re-)set the width of the supported index range

Parameters
widthnew width
template<typename T >
void CSplineBoundaryCondition::template_filter_line ( std::vector< T > &  coeff,
const std::vector< double > &  poles 
) const

Prefiltering function to convert a vector of scalar valued input data to spline coefficients.

Template Parameters
Ta scalar type.
Parameters
[in,out]coeffvector of function values that will be converted to spline coefficients
polesthe poles of the B-spline the coefficients are created for

Definition at line 281 of file boundary_conditions.hh.

Field Documentation

const char* const CSplineBoundaryCondition::data_descr
static

data portion of the plugin search path

Definition at line 65 of file boundary_conditions.hh.

const char* const CSplineBoundaryCondition::type_descr
static

type portion of the plugin search path

Definition at line 62 of file boundary_conditions.hh.


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