MFEM v2.0
|
#include <nurbs.hpp>
Public Member Functions | |
KnotVector () | |
Create KnotVector. | |
KnotVector (istream &input) | |
KnotVector (int Order_, int NCP) | |
KnotVector (const KnotVector &kv) | |
KnotVector & | operator= (const KnotVector &kv) |
int | GetNE () const |
int | GetNKS () const |
int | GetNCP () const |
int | GetOrder () const |
int | Size () const |
void | GetElements () |
Count the number of elements. | |
bool | isElement (int i) const |
double | getKnotLocation (double xi, int ni) const |
int | findKnotSpan (double u) const |
void | CalcShape (Vector &shape, int i, double xi) |
void | CalcDShape (Vector &grad, int i, double xi) |
void | Difference (const KnotVector &kv, Vector &diff) const |
void | UniformRefinement (Vector &newknots) const |
KnotVector * | DegreeElevate (int t) const |
void | Flip () |
void | Print (ostream &out) const |
~KnotVector () | |
Destroys KnotVector. | |
double & | operator[] (int i) |
const double & | operator[] (int i) const |
Protected Attributes | |
Vector | knot |
int | Order |
int | NumOfControlPoints |
int | NumOfElements |
Static Protected Attributes | |
static const int | MaxOrder = 10 |
KnotVector::KnotVector | ( | ) | [inline] |
KnotVector::KnotVector | ( | istream & | input | ) |
Definition at line 17 of file nurbs.cpp.
References GetElements(), knot, Vector::Load(), NumOfControlPoints, and Order.
KnotVector::KnotVector | ( | int | Order_, |
int | NCP | ||
) |
Definition at line 24 of file nurbs.cpp.
References knot, NumOfControlPoints, Order, and Vector::SetSize().
KnotVector::KnotVector | ( | const KnotVector & | kv | ) | [inline] |
KnotVector::~KnotVector | ( | ) | [inline] |
Destroys KnotVector.
void KnotVector::CalcDShape | ( | Vector & | grad, |
int | i, | ||
double | xi | ||
) |
Definition at line 147 of file nurbs.cpp.
References getKnotLocation(), knot, MaxOrder, mfem_error(), and Order.
void KnotVector::CalcShape | ( | Vector & | shape, |
int | i, | ||
double | xi | ||
) |
Definition at line 118 of file nurbs.cpp.
References getKnotLocation(), knot, MaxOrder, mfem_error(), and Order.
KnotVector * KnotVector::DegreeElevate | ( | int | t | ) | const |
Return a new KnotVector with elevated degree by repeating the endpoints of the knot vector.
Definition at line 45 of file nurbs.cpp.
References GetElements(), GetNCP(), knot, KnotVector(), mfem_error(), Order, and Vector::Size().
Referenced by NURBSExtension::NURBSExtension().
void KnotVector::Difference | ( | const KnotVector & | kv, |
Vector & | diff | ||
) | const |
Definition at line 226 of file nurbs.cpp.
References Difference(), GetOrder(), knot, mfem_error(), Order, Vector::SetSize(), and Size().
Referenced by Difference(), and NURBSPatch::KnotInsert().
int KnotVector::findKnotSpan | ( | double | u | ) | const |
Definition at line 197 of file nurbs.cpp.
References knot, NumOfControlPoints, and Order.
Referenced by NURBSPatch::KnotInsert().
void KnotVector::Flip | ( | ) |
Definition at line 98 of file nurbs.cpp.
References knot, NumOfControlPoints, Order, and Vector::Size().
void KnotVector::GetElements | ( | ) |
Count the number of elements.
Definition at line 86 of file nurbs.cpp.
References knot, NumOfControlPoints, NumOfElements, and Order.
Referenced by NURBSPatch::DegreeElevate(), DegreeElevate(), Interpolate(), NURBSPatch::KnotInsert(), KnotVector(), and Revolve3D().
double KnotVector::getKnotLocation | ( | double | xi, |
int | ni | ||
) | const [inline] |
Definition at line 43 of file nurbs.hpp.
References knot.
Referenced by CalcDShape(), and CalcShape().
int KnotVector::GetNCP | ( | ) | const [inline] |
Definition at line 34 of file nurbs.hpp.
References NumOfControlPoints.
Referenced by NURBSPatch::DegreeElevate(), DegreeElevate(), NURBSExtension::GenerateOffsets(), NURBSPatch::KnotInsert(), NURBSPatchMap::SetBdrPatchDofMap(), and NURBSPatchMap::SetPatchDofMap().
int KnotVector::GetNE | ( | ) | const [inline] |
Definition at line 32 of file nurbs.hpp.
References NumOfElements.
Referenced by NURBSPatch::DegreeElevate(), NURBSExtension::GenerateOffsets(), NURBSPatchMap::SetBdrPatchVertexMap(), and NURBSPatchMap::SetPatchVertexMap().
int KnotVector::GetNKS | ( | ) | const [inline] |
Definition at line 33 of file nurbs.hpp.
References NumOfControlPoints, and Order.
Referenced by NURBSExtension::Generate2DBdrElementDofTable(), NURBSExtension::Generate2DElementDofTable(), NURBSExtension::Generate3DBdrElementDofTable(), and NURBSExtension::Generate3DElementDofTable().
int KnotVector::GetOrder | ( | ) | const [inline] |
Definition at line 35 of file nurbs.hpp.
References Order.
Referenced by NURBSPatch::DegreeElevate(), Difference(), and NURBSPatch::KnotInsert().
bool KnotVector::isElement | ( | int | i | ) | const [inline] |
KnotVector & KnotVector::operator= | ( | const KnotVector & | kv | ) |
Definition at line 33 of file nurbs.cpp.
References knot, NumOfControlPoints, NumOfElements, and Order.
const double& KnotVector::operator[] | ( | int | i | ) | const [inline] |
double& KnotVector::operator[] | ( | int | i | ) | [inline] |
void KnotVector::Print | ( | ostream & | out | ) | const |
Definition at line 111 of file nurbs.cpp.
References knot, NumOfControlPoints, Order, Vector::Print(), and Vector::Size().
int KnotVector::Size | ( | ) | const [inline] |
Definition at line 36 of file nurbs.hpp.
References knot, and Vector::Size().
Referenced by Difference().
void KnotVector::UniformRefinement | ( | Vector & | newknots | ) | const |
Definition at line 72 of file nurbs.cpp.
References knot, NumOfElements, Vector::SetSize(), and Vector::Size().
Vector KnotVector::knot [protected] |
Definition at line 20 of file nurbs.hpp.
Referenced by CalcDShape(), CalcShape(), DegreeElevate(), Difference(), findKnotSpan(), Flip(), GetElements(), getKnotLocation(), isElement(), KnotVector(), operator=(), operator[](), Print(), Size(), and UniformRefinement().
const int KnotVector::MaxOrder = 10 [static, protected] |
Definition at line 18 of file nurbs.hpp.
Referenced by CalcDShape(), and CalcShape().
int KnotVector::NumOfControlPoints [protected] |
Definition at line 21 of file nurbs.hpp.
Referenced by findKnotSpan(), Flip(), GetElements(), GetNCP(), GetNKS(), KnotVector(), operator=(), and Print().
int KnotVector::NumOfElements [protected] |
Definition at line 21 of file nurbs.hpp.
Referenced by GetElements(), GetNE(), operator=(), and UniformRefinement().
int KnotVector::Order [protected] |
Definition at line 21 of file nurbs.hpp.
Referenced by CalcDShape(), CalcShape(), DegreeElevate(), Difference(), findKnotSpan(), Flip(), GetElements(), GetNKS(), GetOrder(), isElement(), KnotVector(), operator=(), and Print().