MFEM  v4.6.0
Finite element discretization library
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
mfem::NURBSPatch Class Reference

#include <nurbs.hpp>

Collaboration diagram for mfem::NURBSPatch:
[legend]

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_)
 
NURBSPatchoperator= (const NURBSPatch &)=delete
 
 ~NURBSPatch ()
 
void Print (std::ostream &out) const
 
void DegreeElevate (int dir, int t)
 
void KnotInsert (int dir, const KnotVector &knot)
 
void KnotInsert (int dir, const Vector &knot)
 
void KnotInsert (Array< Vector *> &knot)
 
void KnotInsert (Array< KnotVector *> &knot)
 
void DegreeElevate (int t)
 
void UniformRefinement ()
 
int GetNC () const
 
int GetNKV () const
 
KnotVectorGetKV (int i)
 
double & operator() (int i, int j)
 
const double & operator() (int i, int j) const
 
double & operator() (int i, int j, int l)
 
const double & operator() (int i, int j, int l) const
 
double & operator() (int i, int j, int k, int l)
 
const double & operator() (int i, int j, int k, int l) const
 
void FlipDirection (int dir)
 
void SwapDirections (int dir1, int dir2)
 
void Rotate (double angle, double normal[]=NULL)
 Rotate the NURBSPatch. More...
 
void Rotate2D (double angle)
 
void Rotate3D (double normal[], double angle)
 
int MakeUniformDegree (int degree=-1)
 

Static Public Member Functions

static void Get2DRotationMatrix (double angle, DenseMatrix &T)
 
static void Get3DRotationMatrix (double n[], double angle, double r, DenseMatrix &T)
 

Protected Member Functions

int SetLoopDirection (int dir)
 
double & slice (int i, int j)
 
const double & 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
 
double * data
 
Array< KnotVector * > kv
 
int nd
 
int ls
 
int sd
 

Friends

NURBSPatchInterpolate (NURBSPatch &p1, NURBSPatch &p2)
 
NURBSPatchRevolve3D (NURBSPatch &patch, double n[], double ang, int times)
 

Detailed Description

Definition at line 101 of file nurbs.hpp.

Constructor & Destructor Documentation

◆ NURBSPatch() [1/6]

mfem::NURBSPatch::NURBSPatch ( NURBSPatch parent,
int  dir,
int  Order,
int  NCP 
)
protected

Definition at line 646 of file nurbs.cpp.

◆ NURBSPatch() [2/6]

mfem::NURBSPatch::NURBSPatch ( const NURBSPatch orig)

Definition at line 560 of file nurbs.cpp.

◆ NURBSPatch() [3/6]

mfem::NURBSPatch::NURBSPatch ( std::istream &  input)

Definition at line 576 of file nurbs.cpp.

◆ NURBSPatch() [4/6]

mfem::NURBSPatch::NURBSPatch ( const KnotVector kv0,
const KnotVector kv1,
int  dim_ 
)

Definition at line 618 of file nurbs.cpp.

◆ NURBSPatch() [5/6]

mfem::NURBSPatch::NURBSPatch ( const KnotVector kv0,
const KnotVector kv1,
const KnotVector kv2,
int  dim_ 
)

Definition at line 626 of file nurbs.cpp.

◆ NURBSPatch() [6/6]

mfem::NURBSPatch::NURBSPatch ( Array< const KnotVector *> &  kv,
int  dim_ 
)

Definition at line 636 of file nurbs.cpp.

◆ ~NURBSPatch()

mfem::NURBSPatch::~NURBSPatch ( )

Definition at line 687 of file nurbs.cpp.

Member Function Documentation

◆ DegreeElevate() [1/2]

void mfem::NURBSPatch::DegreeElevate ( int  dir,
int  t 
)

Definition at line 966 of file nurbs.cpp.

◆ DegreeElevate() [2/2]

void mfem::NURBSPatch::DegreeElevate ( int  t)

Definition at line 957 of file nurbs.cpp.

◆ FlipDirection()

void mfem::NURBSPatch::FlipDirection ( int  dir)

Definition at line 1218 of file nurbs.cpp.

◆ Get2DRotationMatrix()

void mfem::NURBSPatch::Get2DRotationMatrix ( double  angle,
DenseMatrix T 
)
static

Definition at line 1272 of file nurbs.cpp.

◆ Get3DRotationMatrix()

void mfem::NURBSPatch::Get3DRotationMatrix ( double  n[],
double  angle,
double  r,
DenseMatrix T 
)
static

Definition at line 1310 of file nurbs.cpp.

◆ GetKV()

KnotVector* mfem::NURBSPatch::GetKV ( int  i)
inline
Note
The returned object should NOT be deleted by the caller.

Definition at line 155 of file nurbs.hpp.

◆ GetNC()

int mfem::NURBSPatch::GetNC ( ) const
inline

Definition at line 152 of file nurbs.hpp.

◆ GetNKV()

int mfem::NURBSPatch::GetNKV ( ) const
inline

Definition at line 153 of file nurbs.hpp.

◆ init()

void mfem::NURBSPatch::init ( int  dim_)
protected

Definition at line 504 of file nurbs.cpp.

◆ KnotInsert() [1/4]

void mfem::NURBSPatch::KnotInsert ( int  dir,
const KnotVector knot 
)

Definition at line 817 of file nurbs.cpp.

◆ KnotInsert() [2/4]

void mfem::NURBSPatch::KnotInsert ( int  dir,
const Vector knot 
)

Definition at line 852 of file nurbs.cpp.

◆ KnotInsert() [3/4]

void mfem::NURBSPatch::KnotInsert ( Array< Vector *> &  knot)

Definition at line 843 of file nurbs.cpp.

◆ KnotInsert() [4/4]

void mfem::NURBSPatch::KnotInsert ( Array< KnotVector *> &  knot)

Definition at line 809 of file nurbs.cpp.

◆ MakeUniformDegree()

int mfem::NURBSPatch::MakeUniformDegree ( int  degree = -1)

Definition at line 1375 of file nurbs.cpp.

◆ operator()() [1/6]

double & mfem::NURBSPatch::operator() ( int  i,
int  j 
)
inline

Definition at line 609 of file nurbs.hpp.

◆ operator()() [2/6]

const double & mfem::NURBSPatch::operator() ( int  i,
int  j 
) const
inline

Definition at line 622 of file nurbs.hpp.

◆ operator()() [3/6]

double & mfem::NURBSPatch::operator() ( int  i,
int  j,
int  l 
)
inline

Definition at line 635 of file nurbs.hpp.

◆ operator()() [4/6]

const double & mfem::NURBSPatch::operator() ( int  i,
int  j,
int  l 
) const
inline

Definition at line 648 of file nurbs.hpp.

◆ operator()() [5/6]

double & mfem::NURBSPatch::operator() ( int  i,
int  j,
int  k,
int  l 
)
inline

Definition at line 661 of file nurbs.hpp.

◆ operator()() [6/6]

const double & mfem::NURBSPatch::operator() ( int  i,
int  j,
int  k,
int  l 
) const
inline

Definition at line 674 of file nurbs.hpp.

◆ operator=()

NURBSPatch& mfem::NURBSPatch::operator= ( const NURBSPatch )
delete

◆ Print()

void mfem::NURBSPatch::Print ( std::ostream &  out) const

Definition at line 700 of file nurbs.cpp.

◆ Rotate()

void mfem::NURBSPatch::Rotate ( double  angle,
double  normal[] = NULL 
)

Rotate the NURBSPatch.

A rotation of a 2D NURBS-patch requires an angle only. Rotating a 3D NURBS-patch requires a normal as well.

Definition at line 1255 of file nurbs.cpp.

◆ Rotate2D()

void mfem::NURBSPatch::Rotate2D ( double  angle)

Definition at line 1284 of file nurbs.cpp.

◆ Rotate3D()

void mfem::NURBSPatch::Rotate3D ( double  normal[],
double  angle 
)

Definition at line 1349 of file nurbs.cpp.

◆ SetLoopDirection()

int mfem::NURBSPatch::SetLoopDirection ( int  dir)
protected

Definition at line 724 of file nurbs.cpp.

◆ slice() [1/2]

double & mfem::NURBSPatch::slice ( int  i,
int  j 
)
inlineprotected

Definition at line 586 of file nurbs.hpp.

◆ slice() [2/2]

const double & mfem::NURBSPatch::slice ( int  i,
int  j 
) const
inlineprotected

Definition at line 597 of file nurbs.hpp.

◆ swap()

void mfem::NURBSPatch::swap ( NURBSPatch np)
protected

Definition at line 661 of file nurbs.cpp.

◆ SwapDirections()

void mfem::NURBSPatch::SwapDirections ( int  dir1,
int  dir2 
)

Definition at line 1230 of file nurbs.cpp.

◆ UniformRefinement()

void mfem::NURBSPatch::UniformRefinement ( )

Definition at line 799 of file nurbs.cpp.

Friends And Related Function Documentation

◆ Interpolate

NURBSPatch* Interpolate ( NURBSPatch p1,
NURBSPatch p2 
)
friend
Note
The returned object should be deleted by the caller.

Definition at line 1398 of file nurbs.cpp.

◆ Revolve3D

NURBSPatch* Revolve3D ( NURBSPatch patch,
double  n[],
double  ang,
int  times 
)
friend
Note
The returned object should be deleted by the caller.

Definition at line 1445 of file nurbs.cpp.

Member Data Documentation

◆ data

double* mfem::NURBSPatch::data
protected

Definition at line 105 of file nurbs.hpp.

◆ Dim

int mfem::NURBSPatch::Dim
protected

Definition at line 104 of file nurbs.hpp.

◆ kv

Array<KnotVector *> mfem::NURBSPatch::kv
protected

Definition at line 107 of file nurbs.hpp.

◆ ls

int mfem::NURBSPatch::ls
protected

Definition at line 117 of file nurbs.hpp.

◆ nd

int mfem::NURBSPatch::nd
protected

Definition at line 116 of file nurbs.hpp.

◆ ni

int mfem::NURBSPatch::ni
protected

Definition at line 104 of file nurbs.hpp.

◆ nj

int mfem::NURBSPatch::nj
protected

Definition at line 104 of file nurbs.hpp.

◆ nk

int mfem::NURBSPatch::nk
protected

Definition at line 104 of file nurbs.hpp.

◆ sd

int mfem::NURBSPatch::sd
protected

Definition at line 118 of file nurbs.hpp.


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