Skip to main content

I’d like to constrain the absolute value of a series of surface curvatures to be less than some value. The only way I see to do this is list each surface with CVVA, use ABSO, and then MAXX and OPLT. Is there an easier strategy?

It would be nice to have a operand that controls multiple surfaces, like MNEA for example, to do this more efficiently and automatically include new surfaces added within the set range...

Thanks for any help or advice.

You could write a macro solve to return a single number from a range of surfaces, but I wouldn’t. Giving the optimizer n (=number of surfaces) inputs will result in smoother optimization than averaging/taking min-max etc to give a single number.

Many years ago we updated the default MF tool to write out terms for each surface rather than use one operand to control multiple surfaces. Optimization results improved in all cases with this change. It makes the MF Editor harder to read as there are more lines, but the increase in optimization speed is well worth it.

  • Mark

@Mark.Nicholson ,

I’m glad you provided that background. I routinely replace the individual boundary value operands with ones that control a range of surfaces, so that it is easier to read. I was unaware that would confound the optimization, although it makes sense that having direct access to each surface would be smoother.

Thanks again for the advice! 


I haven’t found an easier way to do it.  
I agree that an easier way is needed. It gets cumbersome when you have 40 surfaces. 
But I think the best way to do it only requires two operands per surface.  CVVA > -X and CVVA < X. 
 


I think the Merit Function Editor (and all the other editors too) deserve an update so you have group and hide/show subsections of the editor. The MFE can get very long and it would be great to be able to separate out easily yhr individual components of it.


Reply