diff --git a/src/SIM/SIMbase.C b/src/SIM/SIMbase.C index 994ce581..63d9d607 100644 --- a/src/SIM/SIMbase.C +++ b/src/SIM/SIMbase.C @@ -1663,6 +1663,18 @@ bool SIMbase::extractPatchSolution (IntegrandBase* problem, } +bool SIMbase::project (Vector& ssol, const Vector& psol, + SIMoptions::ProjectionMethod pMethod) const +{ + Matrix stmp; + if (!this->project(stmp,psol,pMethod)) + return false; + + ssol = stmp; + return true; +} + + size_t SIMbase::extractPatchSolution (const Vector& sol, Vector& vec, int pindx, unsigned char nndof, unsigned char basis) const diff --git a/src/SIM/SIMbase.h b/src/SIM/SIMbase.h index f398a469..cf9c1c52 100644 --- a/src/SIM/SIMbase.h +++ b/src/SIM/SIMbase.h @@ -28,7 +28,6 @@ class AnaSol; class SAM; class AlgEqSystem; class LinSolParams; -class TimeStep; class SystemVector; class Vec4; @@ -411,6 +410,14 @@ public: bool project(Matrix& ssol, const Vector& psol, SIMoptions::ProjectionMethod pMethod = SIMoptions::GLOBAL, const TimeDomain& time = TimeDomain()) const; + //! \brief Projects the secondary solution associated with a primary solution. + //! \param[out] ssol Vector of control point values of the secondary solution + //! \param[in] psol Vector of control point values of the primary solution + //! \param[in] pMethod Projection method to use + //! + //! \details Convenience overload, for stationary problems only. + bool project(Vector& ssol, const Vector& psol, + SIMoptions::ProjectionMethod pMethod = SIMoptions::GLOBAL) const; //! \brief Projects a scalar function onto the specified basis. //! \param[out] values Resulting control point values diff --git a/src/SIM/SIMgeneric.h b/src/SIM/SIMgeneric.h index 47f2588e..a933e583 100644 --- a/src/SIM/SIMgeneric.h +++ b/src/SIM/SIMgeneric.h @@ -51,6 +51,7 @@ public: //! \param[out] X The Cartesian coordinates of the point //! \param[out] param The parameters of the point in the knot-span domain //! \param[in] patch 1-based patch index containing the evaluation point + //! \param[in] global If \e true, return global number, otherwise patch-local //! \return Patch-local or global node number of node that matches the point int evalPoint(const double* xi, Vec3& X, double* param = nullptr, int patch = 1, bool global = false) const;