Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Public Member Functions | Private Member Functions | Private Attributes | List of all members
sierra::nalu::BSpline1D Class Reference

Support for B-Spline of a curve. More...

#include <BSpline.h>

Inheritance diagram for sierra::nalu::BSpline1D:
sierra::nalu::BSpline

Public Member Functions

 BSpline1D (const int order, const std::vector< double > &indepVars, const std::vector< double > &depVars, const bool allowClipping=true)
 Construct a 1-D bspline curve of the desired order by fitting to a set of data points. More...
 
 BSpline1D (const bool allowClipping=true)
 Construct a skeletal 1D spline. More...
 
 BSpline1D (const BSpline1D &)
 Copy constructor. More...
 
BSplineclone () const
 copy this object and return a BSpline pointer More...
 
 ~BSpline1D ()
 
double value (const double *indepVar) const
 Evaluate the dependent variable via interpolation at the given value of the dependent variable. More...
 
double value (const double &x) const
 
const std::vector< double > & get_control_pts () const
 
std::vector< double > & get_control_pts ()
 
const std::vector< double > & get_knot_vector () const
 
int get_npts () const
 
double get_maxval () const
 
double get_minval () const
 
const std::vector< double > & get_basisfun () const
 
void sort_inputs (const std::vector< double > &indepVars, const std::vector< double > &depVars, std::vector< double > &sortedIndepVars, std::vector< double > &sortedDepVars) const
 
void dump ()
 Dump out information about this bspline. More...
 
void write_hdf5 (H5IO &io) const
 Write a spline to an HDF5 database. More...
 
void read_hdf5 (H5IO &io)
 Read a spline from an HDF5 database. More...
 
bool operator== (const BSpline1D &a) const
 
bool operator!= (const BSpline1D &a) const
 
- Public Member Functions inherited from sierra::nalu::BSpline
 BSpline (const int order, const int dimension, const bool enableValueClipping=true)
 
virtual ~BSpline ()
 
int get_order () const
 Query the order of accuracy for this spline. More...
 
int get_dimension () const
 Query the dimensionality of this spline (number of independent variables) More...
 
double value (std::vector< double > &x) const
 

Private Member Functions

void compute_control_pts (const std::vector< double > &indepVars, const std::vector< double > &depVars)
 Compute the control points for this B-spline surface. More...
 
BSpline1Doperator= (const BSpline1D &)
 

Private Attributes

int npts_
 
double maxIndepVarVal_
 
double minIndepVarVal_
 
std::vector< double > knots_
 
std::vector< double > controlPts_
 
std::vector< double > basisFun_
 

Additional Inherited Members

- Protected Attributes inherited from sierra::nalu::BSpline
int order_
 
const int dim_
 
const bool enableValueClipping_
 

Detailed Description

Support for B-Spline of a curve.

Author
James C. Sutherland
Date
November, 2005

See "The NURBS Book" second edition, Chapter 9.

Constructor & Destructor Documentation

sierra::nalu::BSpline1D::BSpline1D ( const int  order,
const std::vector< double > &  indepVars,
const std::vector< double > &  depVars,
const bool  allowClipping = true 
)

Construct a 1-D bspline curve of the desired order by fitting to a set of data points.

Parameters
order: Order of accuracy for interpolant, gives (order-1 continuous derivatives)
indepVars1: std::vector of independent variables
depVars: std::vector of dependent variables

References basisFun_, compute_control_pts(), and sierra::nalu::BSpline::order_.

sierra::nalu::BSpline1D::BSpline1D ( const bool  allowClipping = true)

Construct a skeletal 1D spline.

Useful when loading splined data from disk.

sierra::nalu::BSpline1D::BSpline1D ( const BSpline1D src)
sierra::nalu::BSpline1D::~BSpline1D ( )

Member Function Documentation

BSpline* sierra::nalu::BSpline1D::clone ( ) const
inlinevirtual

copy this object and return a BSpline pointer

Implements sierra::nalu::BSpline.

References sierra::nalu::BSpline::value().

void sierra::nalu::BSpline1D::compute_control_pts ( const std::vector< double > &  indepVars,
const std::vector< double > &  depVars 
)
private
void sierra::nalu::BSpline1D::dump ( )

Dump out information about this bspline.

References controlPts_, knots_, maxIndepVarVal_, minIndepVarVal_, npts_, and sierra::nalu::BSpline::order_.

const std::vector<double>& sierra::nalu::BSpline1D::get_basisfun ( ) const
inline
const std::vector<double>& sierra::nalu::BSpline1D::get_control_pts ( ) const
inline
std::vector<double>& sierra::nalu::BSpline1D::get_control_pts ( )
inline
const std::vector<double>& sierra::nalu::BSpline1D::get_knot_vector ( ) const
inline
double sierra::nalu::BSpline1D::get_maxval ( ) const
inline
double sierra::nalu::BSpline1D::get_minval ( ) const
inline
int sierra::nalu::BSpline1D::get_npts ( ) const
inline
bool sierra::nalu::BSpline1D::operator!= ( const BSpline1D a) const
inline
BSpline1D& sierra::nalu::BSpline1D::operator= ( const BSpline1D )
private
bool sierra::nalu::BSpline1D::operator== ( const BSpline1D a) const
inline
void sierra::nalu::BSpline1D::read_hdf5 ( H5IO io)
virtual
void sierra::nalu::BSpline1D::sort_inputs ( const std::vector< double > &  indepVars,
const std::vector< double > &  depVars,
std::vector< double > &  sortedIndepVars,
std::vector< double > &  sortedDepVars 
) const

Referenced by compute_control_pts().

double sierra::nalu::BSpline1D::value ( const double *  indepVar) const
virtual
double sierra::nalu::BSpline1D::value ( const double &  x) const
inline

References value().

Referenced by value().

void sierra::nalu::BSpline1D::write_hdf5 ( H5IO io) const
virtual

Write a spline to an HDF5 database.

The file should be opened and an hdf5 "group" created. This spline will be written to the specified group.

Implements sierra::nalu::BSpline.

References controlPts_, knots_, maxIndepVarVal_, minIndepVarVal_, sierra::nalu::BSpline::order_, and sierra::nalu::H5IO::write_attribute().

Referenced by sierra::nalu::BSpline2D::write_hdf5(), sierra::nalu::BSpline3D::write_hdf5(), sierra::nalu::BSpline4D::write_hdf5(), and sierra::nalu::BSpline5D::write_hdf5().

Member Data Documentation

std::vector<double> sierra::nalu::BSpline1D::basisFun_
mutableprivate
std::vector<double> sierra::nalu::BSpline1D::controlPts_
private
std::vector<double> sierra::nalu::BSpline1D::knots_
private
double sierra::nalu::BSpline1D::maxIndepVarVal_
private
double sierra::nalu::BSpline1D::minIndepVarVal_
private
int sierra::nalu::BSpline1D::npts_
private

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