Added: Overloaded project method accepting a Vector as output argument

This commit is contained in:
Knut Morten Okstad 2017-04-20 15:45:40 +02:00
parent a76086e342
commit ebca327675
3 changed files with 21 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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;