Add a Strategy¶
Strategies should expose:
They should return a DesignResult.
from flowdesign.core import DesignResult
class MyStrategy:
def run(self, problem, model=None, sampler=None, **kwargs):
samples = problem.geometry.sample_prior(64)
outputs = problem.evaluate(samples)
losses = problem.loss(samples, outputs)
feasible = problem.is_feasible(samples, outputs)
return DesignResult(samples, outputs, losses, feasible)
Keep strategies independent from domain details. They should not assume that outputs are aerodynamic unless they explicitly implement an aerodynamic method.