Replies: 2 comments 1 reply
-
I really like this idea. Although setting up a default with an empty configuration ( |
Beta Was this translation helpful? Give feedback.
-
Another consideration here is that this might lead to an unclear state of FLORIS if users are not required to look at an input file. On one hand, it's on you if you don't read the docs to see what options are available in the inputs and what are their defaults. On the other hand, you don't know what you don't know when you're getting started. Considering this, it could be helpful to add an option to print both a condensed form of the current configuration options and a long form with all configuration options. fmodel = FlorisModel("defaults")
fmodel.configs_short()
> Python version: 3.10
> FLORIS version: 4.2
> Configuration summary:
> solver:
> type: turbine_grid
> turbine_grid_points: 3
>
> farm:
> turbine_count: 3
> turbine_type:
> - nrel_5MW
>
> flow_field:
> findex_count: 20
>
> wake:
> model_strings:
> combination_model: sosfs
> deflection_model: gauss
> turbulence_model: crespo_hernandez
> velocity_model: gauss
>
> enable_secondary_steering: true
> enable_yaw_added_recovery: true
> enable_active_wake_mixing: false
> enable_transverse_velocities: true
fmodel.configs_full()
> Python version: 3.10
> FLORIS version: 4.2
> Date: 25 Nov 2024
> Time: 10:00 AM
> Configuration:
> name: GCH
> description: Three turbines using Gauss Curl Hybrid model
> floris_version: v4
>
> logging:
> console:
> enable: true
> level: WARNING
> file:
> enable: false
> level: WARNING
>
> solver:
> type: turbine_grid
> turbine_grid_points: 3
>
> farm:
> layout_x:
> - 0.0
> - 630.0
> - 1260.0
> layout_y:
> - 0.0
> - 0.0
> - 0.0
> turbine_type:
> - nrel_5MW
>
> flow_field:
> air_density: 1.225
> reference_wind_height: -1
> turbulence_intensities:
> - 0.06
> wind_directions:
> - 270.0
> wind_shear: 0.12
> wind_speeds:
> - 8.0
>
> wake:
> model_strings:
> combination_model: sosfs
> deflection_model: gauss
> turbulence_model: crespo_hernandez
> velocity_model: gauss
>
> enable_secondary_steering: true
> enable_yaw_added_recovery: true
> enable_active_wake_mixing: false
> enable_transverse_velocities: true
>
> wake_deflection_parameters:
> gauss:
> ad: 0.0
> alpha: 0.58
> bd: 0.0
> beta: 0.077
> dm: 1.0
> ka: 0.38
> kb: 0.004
> wake_velocity_parameters:
> gauss:
> alpha: 0.58
> beta: 0.077
> ka: 0.38
> kb: 0.004
> wake_turbulence_parameters:
> crespo_hernandez:
> initial: 0.1
> constant: 0.5
> ai: 0.8
> downstream: -0.32 |
Beta Was this translation helpful? Give feedback.
-
When using FLORIS, we generally get an input file from somewhere (probably the examples/ directory in the repository) and modify it to fit our needs. We use the new input file to initialize
FlorisModel
, and then we generally start changing the inputs programmatically. For example, for anything but a trivial study, we'll always change the layout and wind conditions. Consider the characteristic workflow from Example 10:Therefore, we could classify the inputs to FLORIS as:
Where FLORIS is used within another software, the FLORIS inputs have to be copied, supplied by the user, or somehow retrieved in order for FLORIS to function as a library (see flasc1, flasc2, WAVES). Instead, I propose to provide a method for using FLORIS as a library within a calling code with a logical set of default inputs (i.e. one of the existing example input files + NREL 5 MW turbine). Possible solutions for this are:
FlorisModel
to load a predefined input file if selected:FlorisModel(configuration="defaults")
ModifySee Provide an option to initialize FLORIS with preset defaults and no input files #1037 (comment)FlorisModel
to use a predefined input set if no configuration is given:FlorisModel()
Beta Was this translation helpful? Give feedback.
All reactions