Abstract base class for B-spline interpolation boundary conditions. More...
#include <mia/core/boundary_conditions.hh>
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 Types inherited from CPropertyFlagHolder | |
typedef std::set< const char * > | Set |
define the type of the set of flags More... | |
Public Member Functions | |
bool | apply (CSplineKernel::VIndex &index, CSplineKernel::VWeight &weights) const |
virtual CSplineBoundaryCondition * | clone () const __attribute__((warn_unused_result))=0 |
CSplineBoundaryCondition () | |
CSplineBoundaryCondition (const CSplineBoundaryCondition &)=delete | |
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 |
CSplineBoundaryCondition & | operator= (const CSplineBoundaryCondition &)=delete |
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... | |
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.
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.
typedef std::unique_ptr<CSplineBoundaryCondition> CSplineBoundaryCondition::Pointer |
pointer type to this boundary condition
Definition at line 69 of file boundary_conditions.hh.
CSplineBoundaryCondition::CSplineBoundaryCondition | ( | ) |
|
delete |
Delete copy operations
CSplineBoundaryCondition::CSplineBoundaryCondition | ( | int | width | ) |
Constructor for the boundary conditions.
width | size of the coefficent domain |
bool CSplineBoundaryCondition::apply | ( | CSplineKernel::VIndex & | index, |
CSplineKernel::VWeight & | weights | ||
) | const |
Apply the boundary conditions
index | - indices into the coeffisicnt domain will be changed to fit domain |
weights | - according weights |
|
pure virtual |
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
T | must 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. |
[in,out] | coeff | vector of function values that will be converted to spline coefficients |
poles | the poles of the B-spline the coefficients are created for |
Definition at line 277 of file boundary_conditions.hh.
Referenced by produce_spline_boundary_condition().
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
[in,out] | coeff | vector of function values that will be converted to spline coefficients |
poles | the poles of the B-spline the coefficients are created for |
|
inline |
Definition at line 104 of file boundary_conditions.hh.
|
delete |
void CSplineBoundaryCondition::set_width | ( | int | width | ) |
(re-)set the width of the supported index range
width | new width |
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.
T | a scalar type. |
[in,out] | coeff | vector of function values that will be converted to spline coefficients |
poles | the poles of the B-spline the coefficients are created for |
Definition at line 285 of file boundary_conditions.hh.
References NS_MIA_END.
Referenced by produce_spline_boundary_condition().
|
static |
data portion of the plugin search path
Definition at line 65 of file boundary_conditions.hh.
|
static |
type portion of the plugin search path
Definition at line 62 of file boundary_conditions.hh.