MFEM  v4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
mfem::NURBSExtension Class Reference

#include <nurbs.hpp>

Inheritance diagram for mfem::NURBSExtension:
[legend]
Collaboration diagram for mfem::NURBSExtension:
[legend]

Public Member Functions

 NURBSExtension (const NURBSExtension &orig)
 Copy constructor: deep copy. More...
 
 NURBSExtension (std::istream &input)
 Read-in a NURBSExtension. More...
 
 NURBSExtension (NURBSExtension *parent, int newOrder)
 Create a NURBSExtension with elevated order by repeating the endpoints of the knot vectors and using uniform weights of 1. More...
 
 NURBSExtension (NURBSExtension *parent, const Array< int > &newOrders)
 Create a NURBSExtension with elevated knot vector orders (by repeating the endpoints of the knot vectors and using uniform weights of 1) as given by the array newOrders. More...
 
 NURBSExtension (Mesh *mesh_array[], int num_pieces)
 Construct a NURBSExtension by merging a partitioned NURBS mesh. More...
 
void ConnectBoundaries (Array< int > &master, Array< int > &slave)
 
const Array< int > & GetMaster () const
 
Array< int > & GetMaster ()
 
const Array< int > & GetSlave () const
 
Array< int > & GetSlave ()
 
void MergeGridFunctions (GridFunction *gf_array[], int num_pieces, GridFunction &merged)
 
virtual ~NURBSExtension ()
 Destroy a NURBSExtension. More...
 
void Print (std::ostream &out) const
 
void PrintCharacteristics (std::ostream &out) const
 
int Dimension () const
 
int GetNP () const
 
int GetNBP () const
 
const Array< int > & GetOrders () const
 Read-only access to the orders of all knot vectors. More...
 
int GetOrder () const
 If all orders are identical, return that number. Otherwise, return NURBSFECollection::VariableOrder. More...
 
int GetNKV () const
 
int GetGNV () const
 
int GetNV () const
 
int GetGNE () const
 
int GetNE () const
 
int GetGNBE () const
 
int GetNBE () const
 
int GetNTotalDof () const
 
int GetNDof () const
 
const KnotVectorGetKnotVector (int i) const
 
void GetElementTopo (Array< Element * > &elements) const
 
void GetBdrElementTopo (Array< Element * > &boundary) const
 
bool HavePatches () const
 
TableGetElementDofTable ()
 
TableGetBdrElementDofTable ()
 
void GetVertexLocalToGlobal (Array< int > &lvert_vert)
 
void GetElementLocalToGlobal (Array< int > &lelem_elem)
 
void LoadFE (int i, const FiniteElement *FE) const
 
void LoadBE (int i, const FiniteElement *BE) const
 
const VectorGetWeights () const
 
VectorGetWeights ()
 
void ConvertToPatches (const Vector &Nodes)
 
void SetKnotsFromPatches ()
 
void SetCoordsFromPatches (Vector &Nodes)
 
void LoadSolution (std::istream &input, GridFunction &sol) const
 
void PrintSolution (const GridFunction &sol, std::ostream &out) const
 
void DegreeElevate (int rel_degree, int degree=16)
 
void UniformRefinement ()
 
void KnotInsert (Array< KnotVector * > &kv)
 

Protected Member Functions

int KnotInd (int edge) const
 
KnotVectorKnotVec (int edge)
 
const KnotVectorKnotVec (int edge) const
 
const KnotVectorKnotVec (int edge, int oedge, int *okv) const
 
void CheckPatches ()
 
void CheckBdrPatches ()
 
void GetPatchKnotVectors (int p, Array< KnotVector * > &kv)
 
void GetPatchKnotVectors (int p, Array< const KnotVector * > &kv) const
 
void GetBdrPatchKnotVectors (int p, Array< KnotVector * > &kv)
 
void GetBdrPatchKnotVectors (int p, Array< const KnotVector * > &kv) const
 
void SetOrderFromOrders ()
 
void SetOrdersFromKnotVectors ()
 
void InitDofMap ()
 
void ConnectBoundaries ()
 
void ConnectBoundaries2D (int bnd0, int bnd1)
 
void ConnectBoundaries3D (int bnd0, int bnd1)
 
int DofMap (int dof) const
 
void GenerateOffsets ()
 
void CountElements ()
 
void CountBdrElements ()
 
void Get2DElementTopo (Array< Element * > &elements) const
 
void Get3DElementTopo (Array< Element * > &elements) const
 
void Get2DBdrElementTopo (Array< Element * > &boundary) const
 
void Get3DBdrElementTopo (Array< Element * > &boundary) const
 
void GenerateElementDofTable ()
 
void Generate2DElementDofTable ()
 
void Generate3DElementDofTable ()
 
void GenerateBdrElementDofTable ()
 
void Generate2DBdrElementDofTable ()
 
void Generate3DBdrElementDofTable ()
 
void GetPatchNets (const Vector &Nodes, int vdim)
 
void Get2DPatchNets (const Vector &Nodes, int vdim)
 
void Get3DPatchNets (const Vector &Nodes, int vdim)
 
void SetSolutionVector (Vector &Nodes, int vdim)
 
void Set2DSolutionVector (Vector &Nodes, int vdim)
 
void Set3DSolutionVector (Vector &Nodes, int vdim)
 
void GenerateActiveVertices ()
 
void GenerateActiveBdrElems ()
 
void MergeWeights (Mesh *mesh_array[], int num_pieces)
 
 NURBSExtension ()
 

Protected Attributes

int mOrder
 
Array< int > mOrders
 
int NumOfKnotVectors
 
int NumOfVertices
 
int NumOfElements
 
int NumOfBdrElements
 
int NumOfDofs
 
int NumOfActiveVertices
 
int NumOfActiveElems
 
int NumOfActiveBdrElems
 
int NumOfActiveDofs
 
Array< int > activeVert
 
Array< bool > activeElem
 
Array< bool > activeBdrElem
 
Array< int > activeDof
 
MeshpatchTopo
 
int own_topo
 
Array< int > edge_to_knot
 
Array< KnotVector * > knotVectors
 
Vector weights
 
Array< int > d_to_d
 
Array< int > master
 
Array< int > slave
 
Array< int > v_meshOffsets
 
Array< int > e_meshOffsets
 
Array< int > f_meshOffsets
 
Array< int > p_meshOffsets
 
Array< int > v_spaceOffsets
 
Array< int > e_spaceOffsets
 
Array< int > f_spaceOffsets
 
Array< int > p_spaceOffsets
 
Tableel_dof
 
Tablebel_dof
 
Array< int > el_to_patch
 
Array< int > bel_to_patch
 
Array2D< int > el_to_IJK
 
Array2D< int > bel_to_IJK
 
Array< NURBSPatch * > patches
 

Friends

class ParNURBSExtension
 
class NURBSPatchMap
 

Detailed Description

Definition at line 157 of file nurbs.hpp.

Constructor & Destructor Documentation

mfem::NURBSExtension::NURBSExtension ( )
inlineprotected

Definition at line 294 of file nurbs.hpp.

mfem::NURBSExtension::NURBSExtension ( const NURBSExtension orig)

Copy constructor: deep copy.

Definition at line 1181 of file nurbs.cpp.

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

Read-in a NURBSExtension.

Definition at line 1233 of file nurbs.cpp.

mfem::NURBSExtension::NURBSExtension ( NURBSExtension parent,
int  newOrder 
)

Create a NURBSExtension with elevated order by repeating the endpoints of the knot vectors and using uniform weights of 1.

If a knot vector in parent already has order greater than or equal to newOrder, it will be used unmodified.

Definition at line 1388 of file nurbs.cpp.

mfem::NURBSExtension::NURBSExtension ( NURBSExtension parent,
const Array< int > &  newOrders 
)

Create a NURBSExtension with elevated knot vector orders (by repeating the endpoints of the knot vectors and using uniform weights of 1) as given by the array newOrders.

If a knot vector in parent already has order greater than or equal to the corresponding entry in newOrder, it will be used unmodified.

Definition at line 1439 of file nurbs.cpp.

mfem::NURBSExtension::NURBSExtension ( Mesh mesh_array[],
int  num_pieces 
)

Construct a NURBSExtension by merging a partitioned NURBS mesh.

Definition at line 1493 of file nurbs.cpp.

mfem::NURBSExtension::~NURBSExtension ( )
virtual

Destroy a NURBSExtension.

Definition at line 1537 of file nurbs.cpp.

Member Function Documentation

void mfem::NURBSExtension::CheckBdrPatches ( )
protected

Definition at line 2031 of file nurbs.cpp.

void mfem::NURBSExtension::CheckPatches ( )
protected

Definition at line 1985 of file nurbs.cpp.

void mfem::NURBSExtension::ConnectBoundaries ( )
protected

Definition at line 1640 of file nurbs.cpp.

void mfem::NURBSExtension::ConnectBoundaries ( Array< int > &  master,
Array< int > &  slave 
)

Definition at line 1633 of file nurbs.cpp.

void mfem::NURBSExtension::ConnectBoundaries2D ( int  bnd0,
int  bnd1 
)
protected

Definition at line 1669 of file nurbs.cpp.

void mfem::NURBSExtension::ConnectBoundaries3D ( int  bnd0,
int  bnd1 
)
protected

Definition at line 1745 of file nurbs.cpp.

void mfem::NURBSExtension::ConvertToPatches ( const Vector Nodes)

Definition at line 2800 of file nurbs.cpp.

void mfem::NURBSExtension::CountBdrElements ( )
protected

Definition at line 2270 of file nurbs.cpp.

void mfem::NURBSExtension::CountElements ( )
protected

Definition at line 2250 of file nurbs.cpp.

void mfem::NURBSExtension::DegreeElevate ( int  rel_degree,
int  degree = 16 
)

Definition at line 2934 of file nurbs.cpp.

int mfem::NURBSExtension::Dimension ( ) const
inline

Definition at line 332 of file nurbs.hpp.

int mfem::NURBSExtension::DofMap ( int  dof) const
inlineprotected

Definition at line 234 of file nurbs.hpp.

void mfem::NURBSExtension::Generate2DBdrElementDofTable ( )
protected

Definition at line 2637 of file nurbs.cpp.

void mfem::NURBSExtension::Generate2DElementDofTable ( )
protected

Definition at line 2498 of file nurbs.cpp.

void mfem::NURBSExtension::Generate3DBdrElementDofTable ( )
protected

Definition at line 2680 of file nurbs.cpp.

void mfem::NURBSExtension::Generate3DElementDofTable ( )
protected

Definition at line 2552 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateActiveBdrElems ( )
protected

Definition at line 1913 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateActiveVertices ( )
protected

Definition at line 1846 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateBdrElementDofTable ( )
protected

Definition at line 2618 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateElementDofTable ( )
protected

Definition at line 2468 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateOffsets ( )
protected

Definition at line 2163 of file nurbs.cpp.

void mfem::NURBSExtension::Get2DBdrElementTopo ( Array< Element * > &  boundary) const
protected

Definition at line 2399 of file nurbs.cpp.

void mfem::NURBSExtension::Get2DElementTopo ( Array< Element * > &  elements) const
protected

Definition at line 2304 of file nurbs.cpp.

void mfem::NURBSExtension::Get2DPatchNets ( const Vector Nodes,
int  vdim 
)
protected

Definition at line 2997 of file nurbs.cpp.

void mfem::NURBSExtension::Get3DBdrElementTopo ( Array< Element * > &  boundary) const
protected

Definition at line 2430 of file nurbs.cpp.

void mfem::NURBSExtension::Get3DElementTopo ( Array< Element * > &  elements) const
protected

Definition at line 2340 of file nurbs.cpp.

void mfem::NURBSExtension::Get3DPatchNets ( const Vector Nodes,
int  vdim 
)
protected

Definition at line 3024 of file nurbs.cpp.

Table* mfem::NURBSExtension::GetBdrElementDofTable ( )
inline

Definition at line 364 of file nurbs.hpp.

void mfem::NURBSExtension::GetBdrElementTopo ( Array< Element * > &  boundary) const

Definition at line 2385 of file nurbs.cpp.

void mfem::NURBSExtension::GetBdrPatchKnotVectors ( int  p,
Array< KnotVector * > &  kv 
)
protected

Definition at line 2100 of file nurbs.cpp.

void mfem::NURBSExtension::GetBdrPatchKnotVectors ( int  p,
Array< const KnotVector * > &  kv 
) const
protected

Definition at line 2119 of file nurbs.cpp.

Table* mfem::NURBSExtension::GetElementDofTable ( )
inline

Definition at line 363 of file nurbs.hpp.

void mfem::NURBSExtension::GetElementLocalToGlobal ( Array< int > &  lelem_elem)

Definition at line 2748 of file nurbs.cpp.

void mfem::NURBSExtension::GetElementTopo ( Array< Element * > &  elements) const

Definition at line 2290 of file nurbs.cpp.

int mfem::NURBSExtension::GetGNBE ( ) const
inline

Definition at line 348 of file nurbs.hpp.

int mfem::NURBSExtension::GetGNE ( ) const
inline

Definition at line 346 of file nurbs.hpp.

int mfem::NURBSExtension::GetGNV ( ) const
inline

Definition at line 344 of file nurbs.hpp.

const KnotVector* mfem::NURBSExtension::GetKnotVector ( int  i) const
inline

Definition at line 355 of file nurbs.hpp.

const Array<int>& mfem::NURBSExtension::GetMaster ( ) const
inline

Definition at line 317 of file nurbs.hpp.

Array<int>& mfem::NURBSExtension::GetMaster ( )
inline

Definition at line 318 of file nurbs.hpp.

int mfem::NURBSExtension::GetNBE ( ) const
inline

Definition at line 349 of file nurbs.hpp.

int mfem::NURBSExtension::GetNBP ( ) const
inline

Definition at line 334 of file nurbs.hpp.

int mfem::NURBSExtension::GetNDof ( ) const
inline

Definition at line 352 of file nurbs.hpp.

int mfem::NURBSExtension::GetNE ( ) const
inline

Definition at line 347 of file nurbs.hpp.

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

Definition at line 342 of file nurbs.hpp.

int mfem::NURBSExtension::GetNP ( ) const
inline

Definition at line 333 of file nurbs.hpp.

int mfem::NURBSExtension::GetNTotalDof ( ) const
inline

Definition at line 351 of file nurbs.hpp.

int mfem::NURBSExtension::GetNV ( ) const
inline

Definition at line 345 of file nurbs.hpp.

int mfem::NURBSExtension::GetOrder ( ) const
inline

If all orders are identical, return that number. Otherwise, return NURBSFECollection::VariableOrder.

Definition at line 340 of file nurbs.hpp.

const Array<int>& mfem::NURBSExtension::GetOrders ( ) const
inline

Read-only access to the orders of all knot vectors.

Definition at line 337 of file nurbs.hpp.

void mfem::NURBSExtension::GetPatchKnotVectors ( int  p,
Array< KnotVector * > &  kv 
)
protected

Definition at line 2059 of file nurbs.cpp.

void mfem::NURBSExtension::GetPatchKnotVectors ( int  p,
Array< const KnotVector * > &  kv 
) const
protected

Definition at line 2079 of file nurbs.cpp.

void mfem::NURBSExtension::GetPatchNets ( const Vector Nodes,
int  vdim 
)
protected

Definition at line 2985 of file nurbs.cpp.

const Array<int>& mfem::NURBSExtension::GetSlave ( ) const
inline

Definition at line 319 of file nurbs.hpp.

Array<int>& mfem::NURBSExtension::GetSlave ( )
inline

Definition at line 320 of file nurbs.hpp.

void mfem::NURBSExtension::GetVertexLocalToGlobal ( Array< int > &  lvert_vert)

Definition at line 2738 of file nurbs.cpp.

const Vector& mfem::NURBSExtension::GetWeights ( ) const
inline

Definition at line 373 of file nurbs.hpp.

Vector& mfem::NURBSExtension::GetWeights ( )
inline

Definition at line 374 of file nurbs.hpp.

bool mfem::NURBSExtension::HavePatches ( ) const
inline

Definition at line 361 of file nurbs.hpp.

void mfem::NURBSExtension::InitDofMap ( )
protected

Definition at line 1626 of file nurbs.cpp.

int mfem::NURBSExtension::KnotInd ( int  edge) const
inlineprotected

Definition at line 537 of file nurbs.hpp.

void mfem::NURBSExtension::KnotInsert ( Array< KnotVector * > &  kv)

Definition at line 2958 of file nurbs.cpp.

KnotVector * mfem::NURBSExtension::KnotVec ( int  edge)
inlineprotected

Definition at line 543 of file nurbs.hpp.

const KnotVector * mfem::NURBSExtension::KnotVec ( int  edge) const
inlineprotected

Definition at line 548 of file nurbs.hpp.

const KnotVector * mfem::NURBSExtension::KnotVec ( int  edge,
int  oedge,
int *  okv 
) const
inlineprotected

Definition at line 553 of file nurbs.hpp.

void mfem::NURBSExtension::LoadBE ( int  i,
const FiniteElement BE 
) const

Definition at line 2779 of file nurbs.cpp.

void mfem::NURBSExtension::LoadFE ( int  i,
const FiniteElement FE 
) const

Definition at line 2758 of file nurbs.cpp.

void mfem::NURBSExtension::LoadSolution ( std::istream &  input,
GridFunction sol 
) const

Definition at line 2859 of file nurbs.cpp.

void mfem::NURBSExtension::MergeGridFunctions ( GridFunction gf_array[],
int  num_pieces,
GridFunction merged 
)

Definition at line 1960 of file nurbs.cpp.

void mfem::NURBSExtension::MergeWeights ( Mesh mesh_array[],
int  num_pieces 
)
protected

Definition at line 1935 of file nurbs.cpp.

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

Definition at line 1561 of file nurbs.cpp.

void mfem::NURBSExtension::PrintCharacteristics ( std::ostream &  out) const

Definition at line 1596 of file nurbs.cpp.

void mfem::NURBSExtension::PrintSolution ( const GridFunction sol,
std::ostream &  out 
) const

Definition at line 2896 of file nurbs.cpp.

void mfem::NURBSExtension::Set2DSolutionVector ( Vector Nodes,
int  vdim 
)
protected

Definition at line 3066 of file nurbs.cpp.

void mfem::NURBSExtension::Set3DSolutionVector ( Vector Nodes,
int  vdim 
)
protected

Definition at line 3094 of file nurbs.cpp.

void mfem::NURBSExtension::SetCoordsFromPatches ( Vector Nodes)

Definition at line 2811 of file nurbs.cpp.

void mfem::NURBSExtension::SetKnotsFromPatches ( )

Definition at line 2819 of file nurbs.cpp.

void mfem::NURBSExtension::SetOrderFromOrders ( )
protected

Definition at line 2139 of file nurbs.cpp.

void mfem::NURBSExtension::SetOrdersFromKnotVectors ( )
protected

Definition at line 2153 of file nurbs.cpp.

void mfem::NURBSExtension::SetSolutionVector ( Vector Nodes,
int  vdim 
)
protected

Definition at line 3054 of file nurbs.cpp.

void mfem::NURBSExtension::UniformRefinement ( )

Definition at line 2950 of file nurbs.cpp.

Friends And Related Function Documentation

friend class NURBSPatchMap
friend

Definition at line 162 of file nurbs.hpp.

friend class ParNURBSExtension
friend

Definition at line 160 of file nurbs.hpp.

Member Data Documentation

Array<bool> mfem::NURBSExtension::activeBdrElem
protected

Definition at line 176 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::activeDof
protected

Definition at line 177 of file nurbs.hpp.

Array<bool> mfem::NURBSExtension::activeElem
protected

Definition at line 175 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::activeVert
protected

Definition at line 174 of file nurbs.hpp.

Table * mfem::NURBSExtension::bel_dof
protected

Definition at line 204 of file nurbs.hpp.

Array2D<int> mfem::NURBSExtension::bel_to_IJK
protected

Definition at line 209 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::bel_to_patch
protected

Definition at line 207 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::d_to_d
protected

Definition at line 188 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::e_meshOffsets
protected

Definition at line 194 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::e_spaceOffsets
protected

Definition at line 200 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::edge_to_knot
protected

Definition at line 181 of file nurbs.hpp.

Table* mfem::NURBSExtension::el_dof
protected

Definition at line 204 of file nurbs.hpp.

Array2D<int> mfem::NURBSExtension::el_to_IJK
protected

Definition at line 208 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::el_to_patch
protected

Definition at line 206 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::f_meshOffsets
protected

Definition at line 195 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::f_spaceOffsets
protected

Definition at line 201 of file nurbs.hpp.

Array<KnotVector *> mfem::NURBSExtension::knotVectors
protected

Definition at line 182 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::master
protected

Definition at line 189 of file nurbs.hpp.

int mfem::NURBSExtension::mOrder
protected

Definition at line 165 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::mOrders
protected

Definition at line 166 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfActiveBdrElems
protected

Definition at line 171 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfActiveDofs
protected

Definition at line 172 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfActiveElems
protected

Definition at line 171 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfActiveVertices
protected

Definition at line 171 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfBdrElements
protected

Definition at line 169 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfDofs
protected

Definition at line 169 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfElements
protected

Definition at line 169 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfKnotVectors
protected

Definition at line 167 of file nurbs.hpp.

int mfem::NURBSExtension::NumOfVertices
protected

Definition at line 169 of file nurbs.hpp.

int mfem::NURBSExtension::own_topo
protected

Definition at line 180 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::p_meshOffsets
protected

Definition at line 196 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::p_spaceOffsets
protected

Definition at line 202 of file nurbs.hpp.

Array<NURBSPatch *> mfem::NURBSExtension::patches
protected

Definition at line 211 of file nurbs.hpp.

Mesh* mfem::NURBSExtension::patchTopo
protected

Definition at line 179 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::slave
protected

Definition at line 190 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::v_meshOffsets
protected

Definition at line 193 of file nurbs.hpp.

Array<int> mfem::NURBSExtension::v_spaceOffsets
protected

Definition at line 199 of file nurbs.hpp.

Vector mfem::NURBSExtension::weights
protected

Definition at line 183 of file nurbs.hpp.


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