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::BSpline3D Class Reference

#include <BSpline.h>

Inheritance diagram for sierra::nalu::BSpline3D:
sierra::nalu::BSpline

Public Member Functions

 BSpline3D (const int order, const std::vector< double > &x1, const std::vector< double > &x2, const std::vector< double > &x3, const std::vector< double > &phi, const bool allowClipping=true)
 Construct a 3-D BSpline, which is composed of a set of 2-D splines and a 1-D spline. More...
 
 BSpline3D (const bool allowClipping=true)
 Construct a skeletal 3D spline. More...
 
 BSpline3D (const BSpline3D &)
 Copy constructor - performs deep copy. More...
 
BSplineclone () const
 copy this object and return a BSpline pointer More...
 
 ~BSpline3D ()
 
double value (const double *) const
 Obtain the approximation to the dependent variable given the independent variables. 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 BSpline3D &a) const
 
bool operator!= (const BSpline3D &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 > &x1, const std::vector< double > &x2, const std::vector< double > &x3, const std::vector< double > &phi)
 
BSpline3Doperator= (const BSpline3D &)
 

Private Attributes

const int n1_
 
const int n2_
 
const int n3_
 
std::vector< const BSpline2D * > sp2d_
 
BSpline1Dsp1_
 

Additional Inherited Members

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

Detailed Description

Author
James C. Sutherland
Date
December, 2005

3-D B-splines for STRUCTURED data

Constructor & Destructor Documentation

sierra::nalu::BSpline3D::BSpline3D ( const int  order,
const std::vector< double > &  x1,
const std::vector< double > &  x2,
const std::vector< double > &  x3,
const std::vector< double > &  phi,
const bool  allowClipping = true 
)

Construct a 3-D BSpline, which is composed of a set of 2-D splines and a 1-D spline.

Parameters
order: Order of accuracy. Note that for higher order, interpolation times will increase. All dimensions will be splined to this order of accuracy, although in principle each dimension could be splined to a different order...
x1: vertices for the independent variable in the first dimension
x2: vertices for the independent variable in the second dimension
x3: vertices for the independent variable in the thrid dimension
phi: value of the dependent variable at all points on the mesh implied by x1,x2,x3. By convention, phi should be arranged in memory such that it varies fastest in x1 and slowest in x3. The size of phi should be equal to the product of sizes of x1, x2, x3.

References compute_control_pts(), n1_, n2_, and n3_.

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

Construct a skeletal 3D spline.

Useful when loading splined data from disk.

sierra::nalu::BSpline3D::BSpline3D ( const BSpline3D src)

Copy constructor - performs deep copy.

References sp1_, and sp2d_.

sierra::nalu::BSpline3D::~BSpline3D ( )

References sp1_, and sp2d_.

Member Function Documentation

BSpline* sierra::nalu::BSpline3D::clone ( ) const
inlinevirtual
void sierra::nalu::BSpline3D::compute_control_pts ( const std::vector< double > &  x1,
const std::vector< double > &  x2,
const std::vector< double > &  x3,
const std::vector< double > &  phi 
)
private
bool sierra::nalu::BSpline3D::operator!= ( const BSpline3D a) const
inline
BSpline3D& sierra::nalu::BSpline3D::operator= ( const BSpline3D )
private
bool sierra::nalu::BSpline3D::operator== ( const BSpline3D a) const
inline

References sp1_, and sp2d_.

void sierra::nalu::BSpline3D::read_hdf5 ( H5IO io)
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 sierra::nalu::BSpline::enableValueClipping_, sierra::nalu::H5IO::open_group(), sierra::nalu::H5IO::read_attribute(), sierra::nalu::BSpline1D::read_hdf5(), sierra::nalu::BSpline2D::read_hdf5(), sp1_, and sp2d_.

Referenced by sierra::nalu::BSpline4D::read_hdf5().

double sierra::nalu::BSpline3D::value ( const double *  x) const
virtual
void sierra::nalu::BSpline3D::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 sierra::nalu::H5IO::create_group(), sp1_, sp2d_, sierra::nalu::H5IO::write_attribute(), and sierra::nalu::BSpline1D::write_hdf5().

Member Data Documentation

const int sierra::nalu::BSpline3D::n1_
private

Referenced by BSpline3D(), and compute_control_pts().

const int sierra::nalu::BSpline3D::n2_
private

Referenced by BSpline3D(), and compute_control_pts().

const int sierra::nalu::BSpline3D::n3_
private

Referenced by BSpline3D(), and compute_control_pts().

BSpline1D* sierra::nalu::BSpline3D::sp1_
private
std::vector<const BSpline2D*> sierra::nalu::BSpline3D::sp2d_
private

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