26 mutable Array <const KnotVector*>
kv;
27 mutable const int *
ijk;
186 mutable Array <const KnotVector*>
kv1;
209 (px + 2)*(py + 1)+(px + 1)*(py + 2),
243 Vector &divshape)
const override;
272 mutable Array <const KnotVector*>
kv1;
298 (px + 2)*(py + 1)*(pz + 1) +
299 (px + 1)*(py + 2)*(pz + 1) +
300 (px + 1)*(py + 1)*(pz + 2),
337 Vector &divshape)
const override;
357 mutable Array <const KnotVector*>
kv1;
380 (px + 1)*(py + 2)+(px + 2)*(py + 1),
440 mutable Array <const KnotVector*>
kv1;
466 (px + 1)*(py + 2)*(pz + 2) +
467 (px + 2)*(py + 1)*(pz + 2) +
468 (px + 2)*(py + 2)*(pz + 1),
Data type dense matrix using column-major storage.
void SetSize(int s)
Change the size of the DenseMatrix to s x s.
int dof
Number of degrees of freedom.
int orders[Geometry::MaxDim]
Anisotropic orders.
int dim
Dimension of reference space.
Describes the function space on each element.
Class for integration point with weight.
An arbitrary order 1D NURBS element on a segment.
void CalcShape(const IntegrationPoint &ip, Vector &shape) const override
Evaluate the values of all shape functions of a scalar finite element in reference space at the given...
NURBS1DFiniteElement(int p)
Construct the NURBS1DFiniteElement of order p.
void SetOrder() const override
void CalcHessian(const IntegrationPoint &ip, DenseMatrix &hessian) const override
Evaluate the Hessians of all shape functions of a scalar finite element in reference space at the giv...
void CalcDShape(const IntegrationPoint &ip, DenseMatrix &dshape) const override
Evaluate the gradients of all shape functions of a scalar finite element in reference space at the gi...
An arbitrary order 2D NURBS element on a square.
void CalcDShape(const IntegrationPoint &ip, DenseMatrix &dshape) const override
Evaluate the gradients of all shape functions of a scalar finite element in reference space at the gi...
void SetOrder() const override
NURBS2DFiniteElement(int px, int py)
Construct the NURBS2DFiniteElement with x-order px and y-order py.
void CalcHessian(const IntegrationPoint &ip, DenseMatrix &hessian) const override
Evaluate the Hessians of all shape functions of a scalar finite element in reference space at the giv...
void CalcShape(const IntegrationPoint &ip, Vector &shape) const override
Evaluate the values of all shape functions of a scalar finite element in reference space at the given...
NURBS2DFiniteElement(int p)
Construct the NURBS2DFiniteElement of order p.
An arbitrary order 3D NURBS element on a cube.
void SetOrder() const override
NURBS3DFiniteElement(int px, int py, int pz)
void CalcDShape(const IntegrationPoint &ip, DenseMatrix &dshape) const override
Evaluate the gradients of all shape functions of a scalar finite element in reference space at the gi...
void CalcHessian(const IntegrationPoint &ip, DenseMatrix &hessian) const override
Evaluate the Hessians of all shape functions of a scalar finite element in reference space at the giv...
void CalcShape(const IntegrationPoint &ip, Vector &shape) const override
Evaluate the values of all shape functions of a scalar finite element in reference space at the given...
NURBS3DFiniteElement(int p)
Construct the NURBS3DFiniteElement of order p.
An arbitrary order and dimension NURBS element.
void Reset() const
Resets the patch and element data stored in the element.
Array< const KnotVector * > kv
Array< const KnotVector * > & KnotVectors() const
Get the KnotVectors.
virtual void SetOrder() const
void SetPatch(int p) const
Set which patch should be evaluated.
Vector & Weights() const
Get the Weights.
int GetPatch() const
Get which patch is currently considered.
NURBSFiniteElement(int dim)
Construct NURBSFiniteElement with given.
void SetElement(int e) const
Get which element is currently considered.
int GetElement() const
Set which element should be evaluated.
const int * GetIJK() const
void SetIJK(const int *IJK) const
Set which IJK in patch should be evaluated.
void CalcCurlShape(const IntegrationPoint &ip, DenseMatrix &curl_shape) const override
Evaluate the curl of all shape functions of a vector finite element in reference space at the given p...
Array< const KnotVector * > kv1
~NURBS_HCurl2DFiniteElement()
NURBS_HCurl2DFiniteElement(int p)
Construct the NURBS_HCurl2DFiniteElement of order p.
void CalcVShape(const IntegrationPoint &ip, DenseMatrix &shape) const override
Evaluate the values of all shape functions of a vector finite element in reference space at the given...
void SetOrder() const override
NURBS_HCurl2DFiniteElement(int px, int py)
Construct the NURBS_HCurl2DFiniteElement with x-order px and y-order py.
~NURBS_HCurl3DFiniteElement()
void CalcVShape(const IntegrationPoint &ip, DenseMatrix &shape) const override
Evaluate the values of all shape functions of a vector finite element in reference space at the given...
NURBS_HCurl3DFiniteElement(int p)
Construct the NURBS_HCurl3DFiniteElement of order p.
void SetOrder() const override
NURBS_HCurl3DFiniteElement(int px, int py, int pz)
Construct the NURBS_HCurl3DFiniteElement with x-order px, y-order py and z-order pz.
void CalcCurlShape(const IntegrationPoint &ip, DenseMatrix &curl_shape) const override
Evaluate the curl of all shape functions of a vector finite element in reference space at the given p...
Array< const KnotVector * > kv1
void CalcVShape(const IntegrationPoint &ip, DenseMatrix &shape) const override
Evaluate the values of all shape functions of a vector finite element in reference space at the given...
~NURBS_HDiv2DFiniteElement()
NURBS_HDiv2DFiniteElement(int p)
Construct the NURBS_HDiv2DFiniteElement of order p.
void CalcDivShape(const IntegrationPoint &ip, Vector &divshape) const override
Evaluate the divergence of all shape functions of a vector finite element in reference space at the g...
void SetOrder() const override
NURBS_HDiv2DFiniteElement(int px, int py)
Construct the NURBS_HDiv2DFiniteElement with x-order px and y-order py.
Array< const KnotVector * > kv1
~NURBS_HDiv3DFiniteElement()
void SetOrder() const override
NURBS_HDiv3DFiniteElement(int px, int py, int pz)
Construct the NURBS_HDiv3DFiniteElement with x-order px, y-order py and z-order pz.
Array< const KnotVector * > kv1
void CalcDivShape(const IntegrationPoint &ip, Vector &divshape) const override
Evaluate the divergence of all shape functions of a vector finite element in reference space at the g...
NURBS_HDiv3DFiniteElement(int p)
Construct the NURBS_HDiv3DFiniteElement of order p.
void CalcVShape(const IntegrationPoint &ip, DenseMatrix &shape) const override
Evaluate the values of all shape functions of a vector finite element in reference space at the given...
Class for finite elements with basis functions that return scalar values.
Intermediate class for finite elements whose basis functions return vector values.
real_t p(const Vector &x, real_t t)