MFEM  v3.4
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 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 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 > 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 277 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 1230 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 1371 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 1416 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 1465 of file nurbs.cpp.

mfem::NURBSExtension::~NURBSExtension ( )
virtual

Destroy a NURBSExtension.

Definition at line 1508 of file nurbs.cpp.

Member Function Documentation

void mfem::NURBSExtension::CheckBdrPatches ( )
protected

Definition at line 1782 of file nurbs.cpp.

void mfem::NURBSExtension::CheckPatches ( )
protected

Definition at line 1736 of file nurbs.cpp.

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

Definition at line 2551 of file nurbs.cpp.

void mfem::NURBSExtension::CountBdrElements ( )
protected

Definition at line 2021 of file nurbs.cpp.

void mfem::NURBSExtension::CountElements ( )
protected

Definition at line 2001 of file nurbs.cpp.

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

Definition at line 2680 of file nurbs.cpp.

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

Definition at line 309 of file nurbs.hpp.

void mfem::NURBSExtension::Generate2DBdrElementDofTable ( )
protected

Definition at line 2388 of file nurbs.cpp.

void mfem::NURBSExtension::Generate2DElementDofTable ( )
protected

Definition at line 2249 of file nurbs.cpp.

void mfem::NURBSExtension::Generate3DBdrElementDofTable ( )
protected

Definition at line 2431 of file nurbs.cpp.

void mfem::NURBSExtension::Generate3DElementDofTable ( )
protected

Definition at line 2303 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateActiveBdrElems ( )
protected

Definition at line 1664 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateActiveVertices ( )
protected

Definition at line 1597 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateBdrElementDofTable ( )
protected

Definition at line 2369 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateElementDofTable ( )
protected

Definition at line 2219 of file nurbs.cpp.

void mfem::NURBSExtension::GenerateOffsets ( )
protected

Definition at line 1914 of file nurbs.cpp.

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

Definition at line 2150 of file nurbs.cpp.

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

Definition at line 2055 of file nurbs.cpp.

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

Definition at line 2743 of file nurbs.cpp.

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

Definition at line 2181 of file nurbs.cpp.

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

Definition at line 2091 of file nurbs.cpp.

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

Definition at line 2770 of file nurbs.cpp.

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

Definition at line 341 of file nurbs.hpp.

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

Definition at line 2136 of file nurbs.cpp.

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

Definition at line 1851 of file nurbs.cpp.

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

Definition at line 1870 of file nurbs.cpp.

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

Definition at line 340 of file nurbs.hpp.

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

Definition at line 2499 of file nurbs.cpp.

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

Definition at line 2041 of file nurbs.cpp.

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

Definition at line 325 of file nurbs.hpp.

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

Definition at line 323 of file nurbs.hpp.

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

Definition at line 321 of file nurbs.hpp.

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

Definition at line 332 of file nurbs.hpp.

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

Definition at line 326 of file nurbs.hpp.

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

Definition at line 311 of file nurbs.hpp.

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

Definition at line 329 of file nurbs.hpp.

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

Definition at line 324 of file nurbs.hpp.

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

Definition at line 319 of file nurbs.hpp.

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

Definition at line 310 of file nurbs.hpp.

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

Definition at line 328 of file nurbs.hpp.

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

Definition at line 322 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 317 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 314 of file nurbs.hpp.

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

Definition at line 1810 of file nurbs.cpp.

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

Definition at line 1830 of file nurbs.cpp.

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

Definition at line 2731 of file nurbs.cpp.

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

Definition at line 2489 of file nurbs.cpp.

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

Definition at line 350 of file nurbs.hpp.

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

Definition at line 351 of file nurbs.hpp.

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

Definition at line 338 of file nurbs.hpp.

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

Definition at line 514 of file nurbs.hpp.

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

Definition at line 2704 of file nurbs.cpp.

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

Definition at line 520 of file nurbs.hpp.

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

Definition at line 525 of file nurbs.hpp.

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

Definition at line 530 of file nurbs.hpp.

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

Definition at line 2530 of file nurbs.cpp.

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

Definition at line 2509 of file nurbs.cpp.

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

Definition at line 2607 of file nurbs.cpp.

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

Definition at line 1711 of file nurbs.cpp.

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

Definition at line 1686 of file nurbs.cpp.

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

Definition at line 1532 of file nurbs.cpp.

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

Definition at line 1567 of file nurbs.cpp.

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

Definition at line 2643 of file nurbs.cpp.

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

Definition at line 2812 of file nurbs.cpp.

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

Definition at line 2840 of file nurbs.cpp.

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

Definition at line 2562 of file nurbs.cpp.

void mfem::NURBSExtension::SetKnotsFromPatches ( )

Definition at line 2570 of file nurbs.cpp.

void mfem::NURBSExtension::SetOrderFromOrders ( )
protected

Definition at line 1890 of file nurbs.cpp.

void mfem::NURBSExtension::SetOrdersFromKnotVectors ( )
protected

Definition at line 1904 of file nurbs.cpp.

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

Definition at line 2800 of file nurbs.cpp.

void mfem::NURBSExtension::UniformRefinement ( )

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

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

Definition at line 202 of file nurbs.hpp.

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

Definition at line 200 of file nurbs.hpp.

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

Definition at line 187 of file nurbs.hpp.

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

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

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

Definition at line 201 of file nurbs.hpp.

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

Definition at line 199 of file nurbs.hpp.

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

Definition at line 188 of file nurbs.hpp.

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

Definition at line 194 of file nurbs.hpp.

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

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

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

Definition at line 195 of file nurbs.hpp.

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

Definition at line 204 of file nurbs.hpp.

Mesh* mfem::NURBSExtension::patchTopo
protected

Definition at line 179 of file nurbs.hpp.

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

Definition at line 186 of file nurbs.hpp.

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

Definition at line 192 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: