-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Proposal] Native DOE Integration for FAST-OAD #576
Comments
I add here a sample of what would the configuration file looks like:
|
A few things that would be nice to have:
|
Thanks for this detailed proposal. I globally agree with the proposal, with a few details to rework IMHO (and that's why it's good to
Is it really needed to allow multiple DoE definitions in the same configuration file? As you know, we only allow one definition for optimization, and I think it should be the same for DoE. I don't feel like it's that bad to ask users to have a configuration file for each DoE they want, even with the same model assembly.
Not sure that I understand
To me, usage of percentage is justified only if
Just detail: Ok for the feature, but the name should be changed. For the joke, I will tell that the correct writing would probably be
Here you do not respect YAML syntax, because Luckily, if we give up the idea of having several definitions of DoE, we will only have Finally, a word on naming: I guess you did not focus on this aspect for now, but I would not want |
To sum up my remarks, here is the configuration file as I would currently see it: # Input and output files
input_file: ./problem_inputs.xml
output_file: ./problem_outputs.xml
# Definition of problem driver assuming the OpenMDAO convention "import openmdao.api as om"
driver: om.ScipyOptimizeDriver(tol=1e-2, optimizer='COBYLA')
model:
nonlinear_solver: om.NonlinearBlockGS(maxiter=100, atol=1e-2)
linear_solver: om.DirectSolver()
geometry:
# An OpenMDAO component is identified by its "id"
id: fastoad.geometry.legacy
# ....
performance:
id: fastoad.performances.mission
propulsion_id: fastoad.wrapper.propulsion.rubber_engine
mission_file_path: ::sizing_mission
out_file: ./flight_points.csv
adjust_fuel: true
is_sizing: true
design_of_experiments:
# Description of the variables and the bounds used to create the DOE
- name: data:geometry:wing:aspect_ratio
lower: 9.0
upper: 18.0
- name: data:geometry:wing:sweep_25
lower: 20.0
upper: 26.0
# Common settings (for all the DOEs in the file)
sampling:
algorithm: NestedLHS
n_samples: 150
seed_val: 12
options:
- nlevel=2
computing:
max_CPUs: 8
output_folder: ./DOE |
For that, I guess you would want to provide all the input values of the DoE, not to let these values being computed by LHS or something else (unless all the values in your array are expected to be independent, but then they would just be a bunch of scalars).
What you really want is discrete variables. Even about model option. If you want it as DoE inputs, then there would be a way to have it implemented using discrete variables instead of model options. We should probably add this feature to FAST-OAD before allowing it to be controlled from a DoE.
I have no opinion about that. It would fit easily in the configuration file, but what is really the need: would it be nice to have, or very useful? |
Design of Experiments (DOE) is a valuable tool in aeronautical engineering, enabling rapid exploration of an aircraft's design space. DOE allows engineers to compare design choices, assess the impact of new technologies, and evaluate sensitivity to various parameters. For these reasons, I believe it would be highly beneficial for FAST-OAD to support native DOE execution, both from configuration files and command-line interfaces, similarly to the current capabilities for MDA and MDO.
Main Features:
Nice-to-Have Features:
Future Developments:
surrogate models, visualize contour plots, filter out configurations based on resutls, and conduct advanced sensitivity analyses with Sobol indices.
Expected User Inputs:
-Number of samples
The text was updated successfully, but these errors were encountered: