![]() |
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
|
Support for B-Spline of a curve. More...
#include <BSpline.h>
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... | |
| BSpline * | clone () 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... | |
| BSpline1D & | operator= (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_ |
Support for B-Spline of a curve.
See "The NURBS Book" second edition, Chapter 9.
| 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.
| 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 | ) |
Copy constructor.
References basisFun_, controlPts_, knots_, maxIndepVarVal_, minIndepVarVal_, npts_, and sierra::nalu::BSpline::order_.
| sierra::nalu::BSpline1D::~BSpline1D | ( | ) |
|
inlinevirtual |
copy this object and return a BSpline pointer
Implements sierra::nalu::BSpline.
References sierra::nalu::BSpline::value().
|
private |
Compute the control points for this B-spline surface.
This requires solution of a linear system of equations.
References sierra::nalu::LU::back_subs(), sierra::nalu::basis_funs(), basisFun_, controlPts_, sierra::nalu::LU::decompose(), sierra::nalu::find_indx(), knots_, maxIndepVarVal_, minIndepVarVal_, npts_, sierra::nalu::BSpline::order_, sierra::nalu::set_knot_vector(), sierra::nalu::set_uk(), and sort_inputs().
Referenced by BSpline1D().
| void sierra::nalu::BSpline1D::dump | ( | ) |
Dump out information about this bspline.
References controlPts_, knots_, maxIndepVarVal_, minIndepVarVal_, npts_, and sierra::nalu::BSpline::order_.
|
inline |
References sierra::nalu::BSpline::read_hdf5(), and sierra::nalu::BSpline::write_hdf5().
|
inline |
Referenced by sierra::nalu::BSpline2D::compute_control_pts(), sierra::nalu::BSpline3D::compute_control_pts(), sierra::nalu::BSpline4D::compute_control_pts(), sierra::nalu::BSpline5D::compute_control_pts(), sierra::nalu::BSpline2D::value(), sierra::nalu::BSpline3D::value(), sierra::nalu::BSpline4D::value(), and sierra::nalu::BSpline5D::value().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References controlPts_, knots_, maxIndepVarVal_, minIndepVarVal_, and npts_.
|
virtual |
Read a spline from an HDF5 database.
The file should be opened and an hdf5 "group" specified. This spline will be read from the specified group.
Implements sierra::nalu::BSpline.
References basisFun_, controlPts_, sierra::nalu::H5IO::file_version(), knots_, maxIndepVarVal_, minIndepVarVal_, npts_, sierra::nalu::BSpline::order_, sierra::nalu::H5IO::read_attribute(), and sierra::nalu::H5IO::read_dataset().
Referenced by sierra::nalu::BSpline2D::read_hdf5(), sierra::nalu::BSpline3D::read_hdf5(), sierra::nalu::BSpline4D::read_hdf5(), and sierra::nalu::BSpline5D::read_hdf5().
| 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().
|
virtual |
Evaluate the dependent variable via interpolation at the given value of the dependent variable.
Implements sierra::nalu::BSpline.
References sierra::nalu::basis_funs(), basisFun_, controlPts_, sierra::nalu::BSpline::enableValueClipping_, sierra::nalu::find_indx(), sierra::nalu::get_uk(), knots_, maxIndepVarVal_, minIndepVarVal_, npts_, and sierra::nalu::BSpline::order_.
Referenced by sierra::nalu::BSpline2D::value(), sierra::nalu::BSpline3D::value(), sierra::nalu::BSpline4D::value(), and sierra::nalu::BSpline5D::value().
|
inline |
|
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().
|
mutableprivate |
Referenced by BSpline1D(), compute_control_pts(), read_hdf5(), and value().
|
private |
Referenced by BSpline1D(), compute_control_pts(), dump(), operator==(), read_hdf5(), value(), and write_hdf5().
|
private |
Referenced by BSpline1D(), compute_control_pts(), dump(), operator==(), read_hdf5(), value(), and write_hdf5().
|
private |
Referenced by BSpline1D(), compute_control_pts(), dump(), operator==(), read_hdf5(), value(), and write_hdf5().
|
private |
Referenced by BSpline1D(), compute_control_pts(), dump(), operator==(), read_hdf5(), value(), and write_hdf5().
|
private |
Referenced by BSpline1D(), compute_control_pts(), dump(), operator==(), read_hdf5(), and value().
1.8.11