MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
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.
 
 NURBSExtension (std::istream &input, bool spacing=false)
 Read-in a 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.
 
 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.
 
 NURBSExtension (Mesh *mesh_array[], int num_pieces)
 Construct a NURBSExtension by merging a partitioned NURBS mesh.
 
NURBSExtensionoperator= (const NURBSExtension &)=delete
 Copy assignment not supported.
 
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.
 
void Print (std::ostream &os, const std::string &comments="") const
 
void PrintCharacteristics (std::ostream &os) const
 
void PrintFunctions (const char *filename, int samples=11) 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.
 
int GetOrder () const
 If all orders are identical, return that number. Otherwise, return NURBSFECollection::VariableOrder.
 
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
 
int GetActiveDof (int glob) const
 Returns the local dof number.
 
int DofMap (int dof) const
 Returns the dof index whilst accounting for periodic boundaries.
 
void GetPatchKnotVectors (int p, Array< const KnotVector * > &kv) const
 Returns knotvectors in each dimension for patch p.
 
void GetBdrPatchKnotVectors (int p, Array< const KnotVector * > &kv) 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 SetPatchAttribute (int i, int attr)
 
int GetPatchAttribute (int i) const
 
void SetPatchBdrAttribute (int i, int attr)
 
int GetPatchBdrAttribute (int i) const
 
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 &os) const
 
void DegreeElevate (int rel_degree, int degree=16)
 
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)
 
void Coarsen (Array< int > const &cf, real_t tol=1.0e-12)
 
void KnotInsert (Array< KnotVector * > &kv)
 
void KnotInsert (Array< Vector * > &kv)
 
void KnotRemove (Array< Vector * > &kv, real_t tol=1.0e-12)
 
void GetCoarseningFactors (Array< int > &f) const
 
int GetElementPatch (int elem) const
 Returns the index of the patch containing element elem.
 
void GetElementIJK (int elem, Array< int > &ijk)
 
void GetPatchDofs (const int patch, Array< int > &dofs)
 
const Array< int > & GetPatchElements (int patch)
 
const Array< int > & GetPatchBdrElements (int patch)
 

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 CheckKVDirection (int p, Array< int > &kvdir)
 
void CreateComprehensiveKV ()
 
void UpdateUniqueKV ()
 
bool ConsistentKVSets ()
 
void GetPatchKnotVectors (int p, Array< KnotVector * > &kv)
 
void GetBdrPatchKnotVectors (int p, Array< KnotVector * > &kv)
 
void SetOrderFromOrders ()
 
void SetOrdersFromKnotVectors ()
 
void InitDofMap ()
 
void ConnectBoundaries ()
 
void ConnectBoundaries1D (int bnd0, int bnd1)
 
void ConnectBoundaries2D (int bnd0, int bnd1)
 
void ConnectBoundaries3D (int bnd0, int bnd1)
 
void GenerateOffsets ()
 
void CountElements ()
 
void CountBdrElements ()
 
void Get1DElementTopo (Array< Element * > &elements) const
 
void Get2DElementTopo (Array< Element * > &elements) const
 
void Get3DElementTopo (Array< Element * > &elements) const
 
void Get1DBdrElementTopo (Array< Element * > &boundary) const
 
void Get2DBdrElementTopo (Array< Element * > &boundary) const
 
void Get3DBdrElementTopo (Array< Element * > &boundary) const
 
void GenerateElementDofTable ()
 
void Generate1DElementDofTable ()
 
void Generate2DElementDofTable ()
 
void Generate3DElementDofTable ()
 
void GenerateBdrElementDofTable ()
 
void Generate1DBdrElementDofTable ()
 
void Generate2DBdrElementDofTable ()
 
void Generate3DBdrElementDofTable ()
 
void GetPatchNets (const Vector &Nodes, int vdim)
 
void Get1DPatchNets (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 Set1DSolutionVector (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)
 
void SetPatchToElements ()
 
void SetPatchToBdrElements ()
 
 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
 
Array< KnotVector * > knotVectorsCompr
 
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
 
std::vector< Array< int > > patch_to_el
 
std::vector< Array< int > > patch_to_bel
 
Array< NURBSPatch * > patches
 

Friends

class ParNURBSExtension
 
class NURBSPatchMap
 

Detailed Description

Definition at line 277 of file nurbs.hpp.

Constructor & Destructor Documentation

◆ NURBSExtension() [1/6]

mfem::NURBSExtension::NURBSExtension ( )
inlineprotected

Definition at line 439 of file nurbs.hpp.

◆ NURBSExtension() [2/6]

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

Copy constructor: deep copy.

Definition at line 1917 of file nurbs.cpp.

◆ NURBSExtension() [3/6]

mfem::NURBSExtension::NURBSExtension ( std::istream & input,
bool spacing = false )

Read-in a NURBSExtension.

Definition at line 1971 of file nurbs.cpp.

◆ NURBSExtension() [4/6]

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 2172 of file nurbs.cpp.

◆ NURBSExtension() [5/6]

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 2225 of file nurbs.cpp.

◆ NURBSExtension() [6/6]

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

Construct a NURBSExtension by merging a partitioned NURBS mesh.

Definition at line 2280 of file nurbs.cpp.

◆ ~NURBSExtension()

mfem::NURBSExtension::~NURBSExtension ( )
virtual

Destroy a NURBSExtension.

Definition at line 2325 of file nurbs.cpp.

Member Function Documentation

◆ CheckBdrPatches()

void mfem::NURBSExtension::CheckBdrPatches ( )
protected

Definition at line 2845 of file nurbs.cpp.

◆ CheckKVDirection()

void mfem::NURBSExtension::CheckKVDirection ( int p,
Array< int > & kvdir )
protected

Checks the direction of the knotvectors in the patch based on the patch orientation for patch p returns the direction of the Knotvectors in kvdir.

Definition at line 2873 of file nurbs.cpp.

◆ CheckPatches()

void mfem::NURBSExtension::CheckPatches ( )
protected

Definition at line 2808 of file nurbs.cpp.

◆ Coarsen() [1/2]

void mfem::NURBSExtension::Coarsen ( Array< int > const & cf,
real_t tol = 1.0e-12 )

Definition at line 4255 of file nurbs.cpp.

◆ Coarsen() [2/2]

void mfem::NURBSExtension::Coarsen ( int cf = 2,
real_t tol = 1.0e-12 )

Definition at line 4270 of file nurbs.cpp.

◆ ConnectBoundaries() [1/2]

void mfem::NURBSExtension::ConnectBoundaries ( )
protected

Definition at line 2466 of file nurbs.cpp.

◆ ConnectBoundaries() [2/2]

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

Definition at line 2459 of file nurbs.cpp.

◆ ConnectBoundaries1D()

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

Definition at line 2532 of file nurbs.cpp.

◆ ConnectBoundaries2D()

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

Definition at line 2546 of file nurbs.cpp.

◆ ConnectBoundaries3D()

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

Definition at line 2592 of file nurbs.cpp.

◆ ConsistentKVSets()

bool mfem::NURBSExtension::ConsistentKVSets ( )
protected

Checks if the comprehensive array of KnotVectors agrees with the reduced set of KnotVectors. Returns false if it finds a difference.

Definition at line 3069 of file nurbs.cpp.

◆ ConvertToPatches()

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

Definition at line 4089 of file nurbs.cpp.

◆ CountBdrElements()

void mfem::NURBSExtension::CountBdrElements ( )
protected

Definition at line 3362 of file nurbs.cpp.

◆ CountElements()

void mfem::NURBSExtension::CountElements ( )
protected

Definition at line 3342 of file nurbs.cpp.

◆ CreateComprehensiveKV()

void mfem::NURBSExtension::CreateComprehensiveKV ( )
protected

Creates the comprehensive set of KnotVectors. They are the same for 1D.

Definition at line 2941 of file nurbs.cpp.

◆ DegreeElevate()

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

Definition at line 4224 of file nurbs.cpp.

◆ Dimension()

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

Definition at line 481 of file nurbs.hpp.

◆ DofMap()

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

Returns the dof index whilst accounting for periodic boundaries.

Definition at line 507 of file nurbs.hpp.

◆ Generate1DBdrElementDofTable()

void mfem::NURBSExtension::Generate1DBdrElementDofTable ( )
protected

Definition at line 3894 of file nurbs.cpp.

◆ Generate1DElementDofTable()

void mfem::NURBSExtension::Generate1DElementDofTable ( )
protected

Definition at line 3657 of file nurbs.cpp.

◆ Generate2DBdrElementDofTable()

void mfem::NURBSExtension::Generate2DBdrElementDofTable ( )
protected

Definition at line 3924 of file nurbs.cpp.

◆ Generate2DElementDofTable()

void mfem::NURBSExtension::Generate2DElementDofTable ( )
protected

Definition at line 3700 of file nurbs.cpp.

◆ Generate3DBdrElementDofTable()

void mfem::NURBSExtension::Generate3DBdrElementDofTable ( )
protected

Definition at line 3967 of file nurbs.cpp.

◆ Generate3DElementDofTable()

void mfem::NURBSExtension::Generate3DElementDofTable ( )
protected

Definition at line 3754 of file nurbs.cpp.

◆ GenerateActiveBdrElems()

void mfem::NURBSExtension::GenerateActiveBdrElems ( )
protected

Definition at line 2736 of file nurbs.cpp.

◆ GenerateActiveVertices()

void mfem::NURBSExtension::GenerateActiveVertices ( )
protected

Definition at line 2663 of file nurbs.cpp.

◆ GenerateBdrElementDofTable()

void mfem::NURBSExtension::GenerateBdrElementDofTable ( )
protected

Definition at line 3869 of file nurbs.cpp.

◆ GenerateElementDofTable()

void mfem::NURBSExtension::GenerateElementDofTable ( )
protected

Definition at line 3621 of file nurbs.cpp.

◆ GenerateOffsets()

void mfem::NURBSExtension::GenerateOffsets ( )
protected

Definition at line 3248 of file nurbs.cpp.

◆ Get1DBdrElementTopo()

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

Definition at line 3529 of file nurbs.cpp.

◆ Get1DElementTopo()

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

Definition at line 3400 of file nurbs.cpp.

◆ Get1DPatchNets()

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

Definition at line 4492 of file nurbs.cpp.

◆ Get2DBdrElementTopo()

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

Definition at line 3552 of file nurbs.cpp.

◆ Get2DElementTopo()

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

Definition at line 3430 of file nurbs.cpp.

◆ Get2DPatchNets()

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

Definition at line 4517 of file nurbs.cpp.

◆ Get3DBdrElementTopo()

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

Definition at line 3583 of file nurbs.cpp.

◆ Get3DElementTopo()

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

Definition at line 3466 of file nurbs.cpp.

◆ Get3DPatchNets()

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

Definition at line 4544 of file nurbs.cpp.

◆ GetActiveDof()

int mfem::NURBSExtension::GetActiveDof ( int glob) const
inline

Returns the local dof number.

Definition at line 504 of file nurbs.hpp.

◆ GetBdrElementDofTable()

Table * mfem::NURBSExtension::GetBdrElementDofTable ( )
inline
Note
The returned object should NOT be deleted by the caller.

Definition at line 529 of file nurbs.hpp.

◆ GetBdrElementTopo()

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

Definition at line 3511 of file nurbs.cpp.

◆ GetBdrPatchKnotVectors() [1/2]

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

Definition at line 3203 of file nurbs.cpp.

◆ GetBdrPatchKnotVectors() [2/2]

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

Definition at line 3183 of file nurbs.cpp.

◆ GetCoarseningFactors()

void mfem::NURBSExtension::GetCoarseningFactors ( Array< int > & f) const

Calls GetCoarseningFactors for each patch and finds the minimum factor for each direction that ensures refinement will work in the case of non-nested spacing functions.

Definition at line 4277 of file nurbs.cpp.

◆ GetElementDofTable()

Table * mfem::NURBSExtension::GetElementDofTable ( )
inline
Note
The returned object should NOT be deleted by the caller.

Definition at line 527 of file nurbs.hpp.

◆ GetElementIJK()

void mfem::NURBSExtension::GetElementIJK ( int elem,
Array< int > & ijk )

Returns the Cartesian indices (i,j) in 2D or (i,j,k) in 3D of element elem, in the knot-span tensor product ordering for its patch.

Definition at line 4676 of file nurbs.cpp.

◆ GetElementLocalToGlobal()

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

Definition at line 4035 of file nurbs.cpp.

◆ GetElementPatch()

int mfem::NURBSExtension::GetElementPatch ( int elem) const
inline

Returns the index of the patch containing element elem.

Definition at line 592 of file nurbs.hpp.

◆ GetElementTopo()

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

Definition at line 3382 of file nurbs.cpp.

◆ GetGNBE()

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

Definition at line 497 of file nurbs.hpp.

◆ GetGNE()

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

Definition at line 495 of file nurbs.hpp.

◆ GetGNV()

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

Definition at line 493 of file nurbs.hpp.

◆ GetKnotVector()

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

Definition at line 518 of file nurbs.hpp.

◆ GetMaster() [1/2]

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

Definition at line 466 of file nurbs.hpp.

◆ GetMaster() [2/2]

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

Definition at line 465 of file nurbs.hpp.

◆ GetNBE()

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

Definition at line 498 of file nurbs.hpp.

◆ GetNBP()

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

Definition at line 483 of file nurbs.hpp.

◆ GetNDof()

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

Definition at line 501 of file nurbs.hpp.

◆ GetNE()

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

Definition at line 496 of file nurbs.hpp.

◆ GetNKV()

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

Definition at line 491 of file nurbs.hpp.

◆ GetNP()

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

Definition at line 482 of file nurbs.hpp.

◆ GetNTotalDof()

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

Definition at line 500 of file nurbs.hpp.

◆ GetNV()

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

Definition at line 494 of file nurbs.hpp.

◆ GetOrder()

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

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

Definition at line 489 of file nurbs.hpp.

◆ GetOrders()

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

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

Definition at line 486 of file nurbs.hpp.

◆ GetPatchAttribute()

int mfem::NURBSExtension::GetPatchAttribute ( int i) const
inline

Definition at line 540 of file nurbs.hpp.

◆ GetPatchBdrAttribute()

int mfem::NURBSExtension::GetPatchBdrAttribute ( int i) const
inline

Definition at line 548 of file nurbs.hpp.

◆ GetPatchBdrElements()

const Array< int > & mfem::NURBSExtension::GetPatchBdrElements ( int patch)

Definition at line 4711 of file nurbs.cpp.

◆ GetPatchDofs()

void mfem::NURBSExtension::GetPatchDofs ( const int patch,
Array< int > & dofs )

Definition at line 3820 of file nurbs.cpp.

◆ GetPatchElements()

const Array< int > & mfem::NURBSExtension::GetPatchElements ( int patch)

Definition at line 4704 of file nurbs.cpp.

◆ GetPatchKnotVectors() [1/2]

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

Returns knotvectors in each dimension for patch p.

Definition at line 3159 of file nurbs.cpp.

◆ GetPatchKnotVectors() [2/2]

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

Definition at line 3136 of file nurbs.cpp.

◆ GetPatchNets()

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

Definition at line 4476 of file nurbs.cpp.

◆ GetSlave() [1/2]

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

Definition at line 468 of file nurbs.hpp.

◆ GetSlave() [2/2]

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

Definition at line 467 of file nurbs.hpp.

◆ GetVertexLocalToGlobal()

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

Definition at line 4025 of file nurbs.cpp.

◆ GetWeights() [1/2]

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

Definition at line 556 of file nurbs.hpp.

◆ GetWeights() [2/2]

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

Definition at line 555 of file nurbs.hpp.

◆ HavePatches()

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

Definition at line 524 of file nurbs.hpp.

◆ InitDofMap()

void mfem::NURBSExtension::InitDofMap ( )
protected

Definition at line 2452 of file nurbs.cpp.

◆ KnotInd()

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

Definition at line 788 of file nurbs.hpp.

◆ KnotInsert() [1/2]

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

Definition at line 4304 of file nurbs.cpp.

◆ KnotInsert() [2/2]

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

Definition at line 4354 of file nurbs.cpp.

◆ KnotRemove()

void mfem::NURBSExtension::KnotRemove ( Array< Vector * > & kv,
real_t tol = 1.0e-12 )

Definition at line 4416 of file nurbs.cpp.

◆ KnotVec() [1/3]

KnotVector * mfem::NURBSExtension::KnotVec ( int edge)
inlineprotected
Note
The returned object should NOT be deleted by the caller.

Definition at line 794 of file nurbs.hpp.

◆ KnotVec() [2/3]

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

Definition at line 799 of file nurbs.hpp.

◆ KnotVec() [3/3]

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

Definition at line 804 of file nurbs.hpp.

◆ LoadBE()

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

Definition at line 4066 of file nurbs.cpp.

◆ LoadFE()

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

Definition at line 4045 of file nurbs.cpp.

◆ LoadSolution()

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

Definition at line 4149 of file nurbs.cpp.

◆ MergeGridFunctions()

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

Definition at line 2783 of file nurbs.cpp.

◆ MergeWeights()

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

Definition at line 2758 of file nurbs.cpp.

◆ operator=()

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

Copy assignment not supported.

◆ Print()

void mfem::NURBSExtension::Print ( std::ostream & os,
const std::string & comments = "" ) const

Definition at line 2354 of file nurbs.cpp.

◆ PrintCharacteristics()

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

Definition at line 2409 of file nurbs.cpp.

◆ PrintFunctions()

void mfem::NURBSExtension::PrintFunctions ( const char * filename,
int samples = 11 ) const

Definition at line 2439 of file nurbs.cpp.

◆ PrintSolution()

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

Definition at line 4186 of file nurbs.cpp.

◆ Set1DSolutionVector()

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

Definition at line 4590 of file nurbs.cpp.

◆ Set2DSolutionVector()

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

Definition at line 4617 of file nurbs.cpp.

◆ Set3DSolutionVector()

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

Definition at line 4645 of file nurbs.cpp.

◆ SetCoordsFromPatches()

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

Definition at line 4100 of file nurbs.cpp.

◆ SetKnotsFromPatches()

void mfem::NURBSExtension::SetKnotsFromPatches ( )

Definition at line 4108 of file nurbs.cpp.

◆ SetOrderFromOrders()

void mfem::NURBSExtension::SetOrderFromOrders ( )
protected

Definition at line 3224 of file nurbs.cpp.

◆ SetOrdersFromKnotVectors()

void mfem::NURBSExtension::SetOrdersFromKnotVectors ( )
protected

Definition at line 3238 of file nurbs.cpp.

◆ SetPatchAttribute()

void mfem::NURBSExtension::SetPatchAttribute ( int i,
int attr )
inline

Definition at line 536 of file nurbs.hpp.

◆ SetPatchBdrAttribute()

void mfem::NURBSExtension::SetPatchBdrAttribute ( int i,
int attr )
inline

Definition at line 544 of file nurbs.hpp.

◆ SetPatchToBdrElements()

void mfem::NURBSExtension::SetPatchToBdrElements ( )
protected

Definition at line 4693 of file nurbs.cpp.

◆ SetPatchToElements()

void mfem::NURBSExtension::SetPatchToElements ( )
protected

Definition at line 4682 of file nurbs.cpp.

◆ SetSolutionVector()

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

Definition at line 4574 of file nurbs.cpp.

◆ UniformRefinement() [1/2]

void mfem::NURBSExtension::UniformRefinement ( Array< int > const & rf)

Definition at line 4240 of file nurbs.cpp.

◆ UniformRefinement() [2/2]

void mfem::NURBSExtension::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.

Definition at line 4248 of file nurbs.cpp.

◆ UpdateUniqueKV()

void mfem::NURBSExtension::UpdateUniqueKV ( )
protected

Updates the unique set of KnotVectors

Definition at line 2991 of file nurbs.cpp.

Friends And Related Symbol Documentation

◆ NURBSPatchMap

friend class NURBSPatchMap
friend

Definition at line 282 of file nurbs.hpp.

◆ ParNURBSExtension

friend class ParNURBSExtension
friend

Definition at line 280 of file nurbs.hpp.

Member Data Documentation

◆ activeBdrElem

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

Definition at line 296 of file nurbs.hpp.

◆ activeDof

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

Definition at line 297 of file nurbs.hpp.

◆ activeElem

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

Definition at line 295 of file nurbs.hpp.

◆ activeVert

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

Definition at line 294 of file nurbs.hpp.

◆ bel_dof

Table * mfem::NURBSExtension::bel_dof
protected

Definition at line 328 of file nurbs.hpp.

◆ bel_to_IJK

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

Definition at line 333 of file nurbs.hpp.

◆ bel_to_patch

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

Definition at line 331 of file nurbs.hpp.

◆ d_to_d

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

Definition at line 312 of file nurbs.hpp.

◆ e_meshOffsets

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

Definition at line 318 of file nurbs.hpp.

◆ e_spaceOffsets

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

Definition at line 324 of file nurbs.hpp.

◆ edge_to_knot

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

Definition at line 301 of file nurbs.hpp.

◆ el_dof

Table* mfem::NURBSExtension::el_dof
protected

Definition at line 328 of file nurbs.hpp.

◆ el_to_IJK

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

Definition at line 332 of file nurbs.hpp.

◆ el_to_patch

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

Definition at line 330 of file nurbs.hpp.

◆ f_meshOffsets

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

Definition at line 319 of file nurbs.hpp.

◆ f_spaceOffsets

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

Definition at line 325 of file nurbs.hpp.

◆ knotVectors

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

Set of knotvectors containing unique KnotVectors only

Definition at line 303 of file nurbs.hpp.

◆ knotVectorsCompr

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

Comprehensive set of knotvectors. This set contains a KnotVector for every edge.

Definition at line 306 of file nurbs.hpp.

◆ master

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

Definition at line 313 of file nurbs.hpp.

◆ mOrder

int mfem::NURBSExtension::mOrder
protected

Definition at line 285 of file nurbs.hpp.

◆ mOrders

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

Definition at line 286 of file nurbs.hpp.

◆ NumOfActiveBdrElems

int mfem::NURBSExtension::NumOfActiveBdrElems
protected

Definition at line 291 of file nurbs.hpp.

◆ NumOfActiveDofs

int mfem::NURBSExtension::NumOfActiveDofs
protected

Definition at line 292 of file nurbs.hpp.

◆ NumOfActiveElems

int mfem::NURBSExtension::NumOfActiveElems
protected

Definition at line 291 of file nurbs.hpp.

◆ NumOfActiveVertices

int mfem::NURBSExtension::NumOfActiveVertices
protected

Definition at line 291 of file nurbs.hpp.

◆ NumOfBdrElements

int mfem::NURBSExtension::NumOfBdrElements
protected

Definition at line 289 of file nurbs.hpp.

◆ NumOfDofs

int mfem::NURBSExtension::NumOfDofs
protected

Definition at line 289 of file nurbs.hpp.

◆ NumOfElements

int mfem::NURBSExtension::NumOfElements
protected

Definition at line 289 of file nurbs.hpp.

◆ NumOfKnotVectors

int mfem::NURBSExtension::NumOfKnotVectors
protected

Definition at line 287 of file nurbs.hpp.

◆ NumOfVertices

int mfem::NURBSExtension::NumOfVertices
protected

Definition at line 289 of file nurbs.hpp.

◆ own_topo

int mfem::NURBSExtension::own_topo
protected

Definition at line 300 of file nurbs.hpp.

◆ p_meshOffsets

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

Definition at line 320 of file nurbs.hpp.

◆ p_spaceOffsets

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

Definition at line 326 of file nurbs.hpp.

◆ patch_to_bel

std::vector<Array<int> > mfem::NURBSExtension::patch_to_bel
protected

Definition at line 336 of file nurbs.hpp.

◆ patch_to_el

std::vector<Array<int> > mfem::NURBSExtension::patch_to_el
protected

Definition at line 335 of file nurbs.hpp.

◆ patches

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

Definition at line 338 of file nurbs.hpp.

◆ patchTopo

Mesh* mfem::NURBSExtension::patchTopo
protected

Definition at line 299 of file nurbs.hpp.

◆ slave

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

Definition at line 314 of file nurbs.hpp.

◆ v_meshOffsets

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

Definition at line 317 of file nurbs.hpp.

◆ v_spaceOffsets

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

Definition at line 323 of file nurbs.hpp.

◆ weights

Vector mfem::NURBSExtension::weights
protected

Definition at line 307 of file nurbs.hpp.


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