changed: make NURBS basis evaluation methods static and public

for reuse in fields classes
This commit is contained in:
Arne Morten Kvarving
2023-05-23 15:31:24 +02:00
parent be6dd45918
commit 84badbb8c8
2 changed files with 21 additions and 21 deletions

View File

@@ -657,6 +657,23 @@ public:
//! \brief Returns the number of elements on a boundary.
virtual size_t getNoBoundaryElms(char lIndex, char ldim) const;
//! \brief Evaluate NURBS basis functions in a point.
static void computeBasisNurbs(double u, double v,
Go::BasisPtsSf& bas, int iel,
const LR::LRSplineSurface& spline);
//! \brief Evaluate NURBS basis functions and first derivatives in a point.
static void computeBasisNurbs(double u, double v,
Go::BasisDerivsSf& bas, int iel,
const LR::LRSplineSurface& spline);
//! \brief Evaluate NURBS basis functions and two derivatives in a point.
static void computeBasisNurbs(double u, double v,
Go::BasisDerivsSf2& bas, int iel,
const LR::LRSplineSurface& spline);
//! \brief Evaluate NURBS basis functions and three derivatives in a point.
static void computeBasisNurbs(double u, double v,
Go::BasisDerivsSf3& bas, int iel,
const LR::LRSplineSurface& spline);
//! \brief Query whether basis is rational or not.
bool rational() const { return is_rational; }
@@ -705,23 +722,6 @@ private:
bool evaluateBasisNurbs(int iel, FiniteElement& fe,
int derivs) const;
//! \brief Evaluate NURBS basis functions in a point.
void computeBasisNurbs(double u, double v,
Go::BasisPtsSf& bas, int iel,
const LR::LRSplineSurface& spline) const;
//! \brief Evaluate NURBS basis functions and first derivatives in a point.
void computeBasisNurbs(double u, double v,
Go::BasisDerivsSf& bas, int iel,
const LR::LRSplineSurface& spline) const;
//! \brief Evaluate NURBS basis functions and two derivatives in a point.
void computeBasisNurbs(double u, double v,
Go::BasisDerivsSf2& bas, int iel,
const LR::LRSplineSurface& spline) const;
//! \brief Evaluate NURBS basis functions and three derivatives in a point.
void computeBasisNurbs(double u, double v,
Go::BasisDerivsSf3& bas, int iel,
const LR::LRSplineSurface& spline) const;
//! \brief Write NURBS elements as postscript file.
void writePostscriptElementsNurbs (std::shared_ptr<LR::LRSplineSurface> mesh,
std::ostream& out, bool close = true,

View File

@@ -128,7 +128,7 @@ bool ASMu2D::evaluateBasisNurbs (int iel, FiniteElement& fe,
void ASMu2D::computeBasisNurbs (double u, double v,
Go::BasisPtsSf& bas, int iel,
const LR::LRSplineSurface& spline) const
const LR::LRSplineSurface& spline)
{
PROFILE3("ASMu2D::compBasisN(0)");
@@ -150,7 +150,7 @@ void ASMu2D::computeBasisNurbs (double u, double v,
void ASMu2D::computeBasisNurbs (double u, double v,
Go::BasisDerivsSf& bas, int iel,
const LR::LRSplineSurface& spline) const
const LR::LRSplineSurface& spline)
{
PROFILE3("ASMu2D::compBasisN(1)");
@@ -178,7 +178,7 @@ void ASMu2D::computeBasisNurbs (double u, double v,
void ASMu2D::computeBasisNurbs (double u, double v,
Go::BasisDerivsSf2& bas, int iel,
const LR::LRSplineSurface& spline) const
const LR::LRSplineSurface& spline)
{
PROFILE3("ASMu2D::compBasisN(2)");
@@ -220,7 +220,7 @@ void ASMu2D::computeBasisNurbs (double u, double v,
void ASMu2D::computeBasisNurbs (double u, double v,
Go::BasisDerivsSf3& bas, int iel,
const LR::LRSplineSurface& spline) const
const LR::LRSplineSurface& spline)
{
PROFILE3("ASMu2D::compBasisN(3)");