From 2048959bb49fbe7c21902cf5ef360ae06759ba05 Mon Sep 17 00:00:00 2001 From: Vaggelis Papoutsis <vaggelisp@gmail.com> Date: Thu, 30 Jan 2020 19:22:28 +0200 Subject: [PATCH] ENH: volBSplinesBase: added function returning box ID given a global control point ID --- .../volBSplinesBase/volBSplinesBase.C | 18 ++++++++++++++++++ .../volBSplinesBase/volBSplinesBase.H | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C index 32212570127..4f8a5f94259 100644 --- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C +++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C @@ -187,6 +187,24 @@ labelList volBSplinesBase::getStartCpID() const } +label volBSplinesBase::findBoxID(const label cpI) const +{ + const labelList startCPID(getStartCpID()); + for (label iBox = 0; iBox < startCPID.size() - 1 ; ++iBox) + { + if (cpI >= startCPID[iBox] || cpI < startCPID[iBox + 1]) + { + return iBox; + } + } + + FatalErrorInFunction + << "Invalid control point ID " << cpI << endl + << exit(FatalError); + return -1; +} + + const Foam::labelList& volBSplinesBase::getActiveDesignVariables() const { return activeDesignVariables_; diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H index b880a932ce2..d6fc19d6169 100644 --- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H +++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H @@ -129,6 +129,9 @@ public: //- Get start CP ID for each box labelList getStartCpID() const; + //- Find box of certain control point + label findBoxID(const label cpI) const; + //- Get active design variables const labelList& getActiveDesignVariables() const; -- GitLab