MFEM v4.7.0
Finite element discretization library
|
#include <nurbs.hpp>
Public Member Functions | |
NURBSPatch (const NURBSPatch &orig) | |
NURBSPatch (std::istream &input) | |
NURBSPatch (const KnotVector *kv0, const KnotVector *kv1, int dim_) | |
NURBSPatch (const KnotVector *kv0, const KnotVector *kv1, const KnotVector *kv2, int dim_) | |
NURBSPatch (Array< const KnotVector * > &kv, int dim_) | |
NURBSPatch & | operator= (const NURBSPatch &)=delete |
~NURBSPatch () | |
void | Print (std::ostream &os) const |
void | DegreeElevate (int dir, int t) |
void | KnotInsert (int dir, const KnotVector &knot) |
Insert knots from knot determined by Difference, in direction dir. | |
void | KnotInsert (int dir, const Vector &knot) |
Insert knots from knot, in direction dir. | |
void | KnotInsert (Array< Vector * > &knot) |
Insert knots from knot, in each direction. | |
void | KnotInsert (Array< KnotVector * > &knot) |
Insert knots from knot determined by Difference, in each direction. | |
int | KnotRemove (int dir, real_t knot, int ntimes=1, real_t tol=1.0e-12) |
Remove knot with value knot from direction dir. | |
void | KnotRemove (int dir, Vector const &knot, real_t tol=1.0e-12) |
Remove all knots in knot once. | |
void | KnotRemove (Array< Vector * > &knot, real_t tol=1.0e-12) |
Remove all knots in knot once, for each direction. | |
void | DegreeElevate (int t) |
void | UniformRefinement (int rf=2) |
Refine with optional refinement factor rf. Uniform means refinement is done everywhere by the same factor, although nonuniform spacing functions may be used. | |
void | UniformRefinement (Array< int > const &rf) |
void | Coarsen (int cf=2, real_t tol=1.0e-12) |
Coarsen with optional coarsening factor cf which divides the number of elements in each dimension. Nonuniform spacing functions may be used in each direction. | |
void | Coarsen (Array< int > const &cf, real_t tol=1.0e-12) |
void | GetCoarseningFactors (Array< int > &f) const |
Calls KnotVector::GetCoarseningFactor for each direction. | |
void | SetKnotVectorsCoarse (bool c) |
Marks the KnotVector in each dimension as coarse. | |
int | GetNC () const |
int | GetNKV () const |
KnotVector * | GetKV (int i) |
real_t & | operator() (int i, int j) |
const real_t & | operator() (int i, int j) const |
real_t & | operator() (int i, int j, int l) |
const real_t & | operator() (int i, int j, int l) const |
real_t & | operator() (int i, int j, int k, int l) |
const real_t & | operator() (int i, int j, int k, int l) const |
void | FlipDirection (int dir) |
void | SwapDirections (int dir1, int dir2) |
void | Rotate (real_t angle, real_t normal[]=NULL) |
Rotate the NURBSPatch. | |
void | Rotate2D (real_t angle) |
void | Rotate3D (real_t normal[], real_t angle) |
int | MakeUniformDegree (int degree=-1) |
Static Public Member Functions | |
static void | Get2DRotationMatrix (real_t angle, DenseMatrix &T) |
static void | Get3DRotationMatrix (real_t n[], real_t angle, real_t r, DenseMatrix &T) |
Protected Member Functions | |
int | SetLoopDirection (int dir) |
real_t & | slice (int i, int j) |
const real_t & | slice (int i, int j) const |
NURBSPatch (NURBSPatch *parent, int dir, int Order, int NCP) | |
void | swap (NURBSPatch *np) |
void | init (int dim_) |
Protected Attributes | |
int | ni |
int | nj |
int | nk |
int | Dim |
real_t * | data |
Array< KnotVector * > | kv |
int | nd |
int | ls |
int | sd |
Friends | |
NURBSPatch * | Interpolate (NURBSPatch &p1, NURBSPatch &p2) |
NURBSPatch * | Revolve3D (NURBSPatch &patch, real_t n[], real_t ang, int times) |
|
protected |
mfem::NURBSPatch::NURBSPatch | ( | const NURBSPatch & | orig | ) |
mfem::NURBSPatch::NURBSPatch | ( | const KnotVector * | kv0, |
const KnotVector * | kv1, | ||
int | dim_ ) |
mfem::NURBSPatch::NURBSPatch | ( | const KnotVector * | kv0, |
const KnotVector * | kv1, | ||
const KnotVector * | kv2, | ||
int | dim_ ) |
mfem::NURBSPatch::NURBSPatch | ( | Array< const KnotVector * > & | kv, |
int | dim_ ) |
void mfem::NURBSPatch::Coarsen | ( | int | cf = 2, |
real_t | tol = 1.0e-12 ) |
Coarsen with optional coarsening factor cf which divides the number of elements in each dimension. Nonuniform spacing functions may be used in each direction.
[in] | cf | Optional coarsening factor. If scalar, the factor is used for all dimensions. If an array, factors can be specified for each dimension. |
[in] | tol | NURBS geometry deviation tolerance, cf. Algorithm A5.8 of "The NURBS Book", 2nd ed, Piegl and Tiller. |
|
static |
|
static |
void mfem::NURBSPatch::GetCoarseningFactors | ( | Array< int > & | f | ) | const |
Calls KnotVector::GetCoarseningFactor for each direction.
|
inline |
void mfem::NURBSPatch::KnotInsert | ( | Array< KnotVector * > & | knot | ) |
void mfem::NURBSPatch::KnotInsert | ( | int | dir, |
const KnotVector & | knot ) |
void mfem::NURBSPatch::KnotInsert | ( | int | dir, |
const Vector & | knot ) |
Remove knot with value knot from direction dir.
The optional input parameter ntimes specifies the number of times the knot should be removed, default 1. The knot is removed only if the new curve (in direction dir) deviates from the old curve by less than tol.
int mfem::NURBSPatch::MakeUniformDegree | ( | int | degree = -1 | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
delete |
Rotate the NURBSPatch.
A rotation of a 2D NURBS-patch requires an angle only. Rotating a 3D NURBS-patch requires a normal as well.
void mfem::NURBSPatch::SetKnotVectorsCoarse | ( | bool | c | ) |
Marks the KnotVector in each dimension as coarse.
|
protected |
|
inlineprotected |
|
inlineprotected |
|
protected |
void mfem::NURBSPatch::SwapDirections | ( | int | dir1, |
int | dir2 ) |
void mfem::NURBSPatch::UniformRefinement | ( | Array< int > const & | rf | ) |
void mfem::NURBSPatch::UniformRefinement | ( | int | rf = 2 | ) |
Refine with optional refinement factor rf. Uniform means refinement is done everywhere by the same factor, although nonuniform spacing functions may be used.
[in] | rf | Optional refinement factor. If scalar, the factor is used for all dimensions. If an array, factors can be specified for each dimension. |
|
friend |
|
friend |
|
protected |