Changed: Make SIMoptions::parseProjectionMethod public.

Added: Argument iComp to return the projection of only a specified component.
This commit is contained in:
Knut Morten Okstad
2018-01-03 05:41:27 +01:00
parent 93f97edebf
commit ade049db47
3 changed files with 9 additions and 4 deletions

View File

@@ -1763,13 +1763,17 @@ bool SIMbase::extractPatchSolution (IntegrandBase* problem,
bool SIMbase::project (Vector& ssol, const Vector& psol,
SIMoptions::ProjectionMethod pMethod) const
SIMoptions::ProjectionMethod pMethod, size_t iComp) const
{
Matrix stmp;
if (!this->project(stmp,psol,pMethod))
return false;
ssol = stmp;
if (iComp > 0)
ssol = stmp.getRow(iComp);
else
ssol = stmp;
return true;
}

View File

@@ -445,10 +445,12 @@ public:
//! \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
//! \param[in] iComp One-based index of the component to return (0 = all)
//!
//! \details Convenience overload, for stationary problems only.
bool project(Vector& ssol, const Vector& psol,
SIMoptions::ProjectionMethod pMethod = SIMoptions::GLOBAL) const;
SIMoptions::ProjectionMethod pMethod = SIMoptions::GLOBAL,
size_t iComp = 0) const;
//! \brief Projects the analytical secondary solution, if any.
//! \param[out] ssol Vector of control point values of the secondary solution

View File

@@ -65,7 +65,6 @@ public:
//! \brief Prints out the simulation options to the given stream.
utl::LogStream& print(utl::LogStream& os, bool addBlankLine = false) const;
private:
//! \brief Parses a projection method XML-tag.
bool parseProjectionMethod(const char* ptype, int version = 1);