MFEM  v4.5.2
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, 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 Rotate3D (double normal[], double angle)
 
int MakeUniformDegree (int degree=-1)
 

Static Public Member Functions

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

Protected Member Functions

void swap (NURBSPatch *np)
 
int SetLoopDirection (int dir)
 
double & operator() (int i, int j)
 
const double & operator() (int i, int j) const
 
void init (int dim_)
 
 NURBSPatch (NURBSPatch *parent, int dir, int Order, int NCP)
 

Protected Attributes

int ni
 
int nj
 
int nk
 
int Dim
 
double * data
 
Array< KnotVector * > kv
 
int sd
 
int nd
 

Friends

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

Detailed Description

Definition at line 90 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 534 of file nurbs.cpp.

◆ NURBSPatch() [2/6]

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

Definition at line 448 of file nurbs.cpp.

◆ NURBSPatch() [3/6]

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

Definition at line 464 of file nurbs.cpp.

◆ NURBSPatch() [4/6]

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

Definition at line 506 of file nurbs.cpp.

◆ NURBSPatch() [5/6]

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

Definition at line 514 of file nurbs.cpp.

◆ NURBSPatch() [6/6]

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

Definition at line 524 of file nurbs.cpp.

◆ ~NURBSPatch()

mfem::NURBSPatch::~NURBSPatch ( )

Definition at line 575 of file nurbs.cpp.

Member Function Documentation

◆ DegreeElevate() [1/2]

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

Definition at line 837 of file nurbs.cpp.

◆ DegreeElevate() [2/2]

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

Definition at line 828 of file nurbs.cpp.

◆ FlipDirection()

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

Definition at line 1088 of file nurbs.cpp.

◆ Get3DRotationMatrix()

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

Definition at line 1125 of file nurbs.cpp.

◆ GetKV()

KnotVector* mfem::NURBSPatch::GetKV ( int  i)
inline

Definition at line 138 of file nurbs.hpp.

◆ GetNC()

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

Definition at line 136 of file nurbs.hpp.

◆ GetNKV()

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

Definition at line 137 of file nurbs.hpp.

◆ init()

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

Definition at line 407 of file nurbs.cpp.

◆ KnotInsert() [1/4]

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

Definition at line 689 of file nurbs.cpp.

◆ KnotInsert() [2/4]

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

Definition at line 724 of file nurbs.cpp.

◆ KnotInsert() [3/4]

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

Definition at line 715 of file nurbs.cpp.

◆ KnotInsert() [4/4]

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

Definition at line 681 of file nurbs.cpp.

◆ MakeUniformDegree()

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

Definition at line 1190 of file nurbs.cpp.

◆ operator()() [1/6]

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

Definition at line 488 of file nurbs.hpp.

◆ operator()() [2/6]

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

Definition at line 493 of file nurbs.hpp.

◆ operator()() [3/6]

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

Definition at line 498 of file nurbs.hpp.

◆ operator()() [4/6]

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

Definition at line 511 of file nurbs.hpp.

◆ operator()() [5/6]

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

Definition at line 524 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 537 of file nurbs.hpp.

◆ operator=()

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

◆ Print()

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

Definition at line 588 of file nurbs.cpp.

◆ Rotate3D()

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

Definition at line 1164 of file nurbs.cpp.

◆ SetLoopDirection()

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

Definition at line 612 of file nurbs.cpp.

◆ swap()

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

Definition at line 549 of file nurbs.cpp.

◆ SwapDirections()

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

Definition at line 1100 of file nurbs.cpp.

◆ UniformRefinement()

void mfem::NURBSPatch::UniformRefinement ( )

Definition at line 671 of file nurbs.cpp.

Friends And Related Function Documentation

◆ Interpolate

NURBSPatch* Interpolate ( NURBSPatch p1,
NURBSPatch p2 
)
friend

Definition at line 1213 of file nurbs.cpp.

◆ Revolve3D

NURBSPatch* Revolve3D ( NURBSPatch patch,
double  n[],
double  ang,
int  times 
)
friend

Definition at line 1260 of file nurbs.cpp.

Member Data Documentation

◆ data

double* mfem::NURBSPatch::data
protected

Definition at line 94 of file nurbs.hpp.

◆ Dim

int mfem::NURBSPatch::Dim
protected

Definition at line 93 of file nurbs.hpp.

◆ kv

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

Definition at line 96 of file nurbs.hpp.

◆ nd

int mfem::NURBSPatch::nd
protected

Definition at line 98 of file nurbs.hpp.

◆ ni

int mfem::NURBSPatch::ni
protected

Definition at line 93 of file nurbs.hpp.

◆ nj

int mfem::NURBSPatch::nj
protected

Definition at line 93 of file nurbs.hpp.

◆ nk

int mfem::NURBSPatch::nk
protected

Definition at line 93 of file nurbs.hpp.

◆ sd

int mfem::NURBSPatch::sd
protected

Definition at line 98 of file nurbs.hpp.


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