Skip to content
Snippets Groups Projects
Commit ac88ada1 authored by Borreguero Calvo, Jose's avatar Borreguero Calvo, Jose
Browse files

Refs #4968 Adding BoundaryConstraint constructor

parent b98fb43d
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,9 @@ namespace Mantid
/// Constructor with boundary arguments
BoundaryConstraint(API::IFitFunction* fun, const std::string paramName, const double lowerBound, const double upperBound);
/// Constructor with lower boundary argument
BoundaryConstraint(API::IFitFunction* fun, const std::string paramName, const double lowerBound);
/// Destructor
virtual ~BoundaryConstraint() {}
......
......@@ -38,6 +38,16 @@ m_upperBound(upperBound)
reset(fun,fun->parameterIndex(paramName));
}
BoundaryConstraint::BoundaryConstraint(API::IFitFunction* fun, const std::string paramName, const double lowerBound) :
m_penaltyFactor(1000.0),
m_parameterName(paramName),
m_hasLowerBound( true),
m_hasUpperBound( false),
m_lowerBound(lowerBound)
{
reset(fun,fun->parameterIndex(paramName));
}
/** Initialize the constraint from an expression.
* @param fun :: The function
* @param expr :: The initializing expression which must look like this:
......
......@@ -113,19 +113,13 @@ InelasticDiffSphere::InelasticDiffSphere() : lmax(24), divZone(0.1) {
declareParameter("Q",1.0, "Momentum transfer");
// Ensure positive values for Intensity, Radius, and Diffusion coefficient
BoundaryConstraint* IntensityConstraint = new BoundaryConstraint("Intensity");
IntensityConstraint->setLower(0);
IntensityConstraint->reset(this,parameterIndex("Intensity"));
BoundaryConstraint* IntensityConstraint = new BoundaryConstraint(this,"Intensity",0);
addConstraint(IntensityConstraint);
BoundaryConstraint* RadiusConstraint = new BoundaryConstraint("Radius");
RadiusConstraint->setLower(0);
RadiusConstraint->reset(this,parameterIndex("Radius"));
BoundaryConstraint* RadiusConstraint = new BoundaryConstraint(this,"Radius",0);
addConstraint(RadiusConstraint);
BoundaryConstraint* DiffusionConstraint = new BoundaryConstraint("Diffusion");
DiffusionConstraint->setLower(0);
DiffusionConstraint->reset(this,parameterIndex("Diffusion"));
BoundaryConstraint* DiffusionConstraint = new BoundaryConstraint(this,"Diffusion",0);
addConstraint(DiffusionConstraint);
initXnlCoeff(); // initialize this->xnl with the list of coefficients xnlist
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment