WEIS constraints scaling

Hello,

I was just wondering whether it’s possible to scale the constraints in WEIS the way the objective is scaled? I was looking for something like a scaler/adder (or ref/ref0) from OpenMDAO in the analysis schema, but it doesn’t seem to be an option, @Daniel.Zalkind ?

Thanks,
Kasia

Hi Kasia,

Good to hear from you and always appreciate your continued interest and use in the WEIS stack of tools. Most of the constraints in WISDEM/WEIS are already scaled to be O(1) as an output variable before being activated by the user, so there is no need for additional numerical scaling. If you are using an available constraint that is scaled poorly, that is a bug so please let us know a bit more details about what you are doing and seeing.

For user-defined constraints, if that is what you are using, yes, it is possible to do what you describe. The code for it is actually in WISDEM here (and is also used to help define the optimization problem in WEIS). So, you could add a “ref” entry in a user-defined constraint that should scale the constraint values before applying any upper/lower bounds. I will add that this feature is likely not well tested or used, so you may encounter bugs and we’d be happy to work with you to resolve them.

Best,

Garrett

Hi Garrett,

Thanks a million for a quick response, and sorry for the delay.

I’m only using the available constraints for now. It’s good to hear these are already well-scaled, thanks for confirming. In the past, I’ve looked into different kinds of scaling, and I’ve often seen convergence issues traced back to it, so when I had trouble converging the WEIS optimisation, my first instinct was to look into scaling (something else turned out to be an issue after all). I was surprised not to see the scalers in the analysis yaml, but now it makes sense, since they live in wisdem. I’ll stick to the standard constraints for now, but will get in touch again if I try adding the ref key to custom constraints at some point.

On a similar topic, is it possible in WEIS to set the initial values of the design variables for optimisation, something like prob.set_val() in OpenMDAO? I’m running a local optimiser and would like to apply a multistart strategy. Is that something that can be easily done in WEIS/WISDEM?

Best,

Kasia

Hi Kasia,

Perhaps the design of experiments example is a good way to demonstrate how to set the initial values in a parametric sense before start a WISDEM run- either at a single point for a DOE or as an initial condition for an optimization?

Hi Garrett,

Think I got the idea, will try to implement it in my workflow, thank you for the hint!

Best,

Kasia