LIVEdataset aec-bench@releasetasks 552models 18last submission · built
civilwith-tool

Solar Array Wind Load

Calculates wind loads on ground-mounted photovoltaic arrays by combining AS/NZS 1170.2 dynamic pressure with SEAOC PV2-2017 net pressure coefficients. Interpolates GCrn values for tilt angle and row position to determine uplift suction, downward pressure, per-module uplift force, and horizontal drag force per metre of array width. Applicable to fixed-tilt utility and commercial solar installations in Australian wind regions.

with-tool: The model is given an executable Python calculator script.

How this task is generated

One template produces many comparable benchmark tasks while keeping the scoring contract fixed.

  1. 01

    Template

    The reusable contract shown on this page.

  2. 02

    Scenario

    An archetype and site context are sampled.

  3. 03

    Difficulty tier

    Inputs may be hidden at harder tiers.

  4. 04

    Task prompt

    The model responds with the declared outputs.

Parameters

Inputs the model receives, and the outputs it is scored on.

Inputs

8 inputs

Always given

Included directly in every task prompt.

5
  • Design wind speed m per s

    design_wind_speed_m_per_s

    Site design wind speed V_des,theta (after terrain, topographic, shielding, and direction multipliers)

    20 – 70 m/s
  • Array height

    array_height_m

    Hub height of array above ground level

    0.3 – 3 m
  • Module width

    module_width_m

    Width of a single PV module (along the slope)

    0.8 – 1.4 m
  • Module length

    module_length_m

    Length of a single PV module (along the row)

    1.5 – 2.4 m
  • Num modules wide

    num_modules_wide

    Number of modules arranged in the slope direction per row

    1 – 4

Derived from scenario

Sampled from the scenario and inferable from its description.

2
  • Tilt angle deg

    tilt_angle_deg

    Array tilt angle from horizontal

    Derived from the archetype scenario. Hidden at hard difficulty.

    5 – 45 degrees
  • Row position

    row_position

    Row position in the array field affecting wind exposure

    Derived from the archetype scenario. Hidden at hard difficulty.

    exposedinterior

Optional

Used only when the sampled task needs this part of the contract.

1
  • Air density kg per m3

    air_density_kg_per_m3

    Air density rho (standard atmosphere default 1.2)

    Optional input.

    1 – 1.4 kg/m3

Scored outputs

5 outputs

Dynamic pressure

dynamic_pressure_kpa

Base velocity pressure q (kPa)

Scores if within ±3% of the reference value.

Uplift pressure

uplift_pressure_kpa

Net uplift (suction) pressure on the array surface (kPa)

Scores if within ±3% of the reference value.

Downforce pressure

downforce_pressure_kpa

Net downward pressure on the array surface (kPa)

Scores if within ±3% of the reference value.

Uplift force per module kn

uplift_force_per_module_kn

Uplift force acting on a single PV module (kN)

Scores if within ±3% of the reference value.

Drag force per m kn

drag_force_per_m_kn

Horizontal drag force per metre of array row length (kN/m)

Scores if within ±3% of the reference value.

Difficulty

Each template is sampled at three tiers. Harder tiers may hide inputs, forcing the model to infer them from the scenario description.

easy

All inputs given

Low wind speed, exposed row, all parameters given — straightforward pressure and force calculation

Design wind speed m per s restricted to: {'min': 25, 'max': 40}

medium

All inputs given

Higher wind speeds and steeper tilts with all parameters given

Design wind speed m per s restricted to: {'min': 35, 'max': 55}

hard

Some inputs hidden

Tilt angle and row position hidden — agent must infer from site description and array configuration

Hidden inputs

  • Tilt angle degtilt_angle_deg
  • Row positionrow_position

Prompt replacement text

The array is a {{ archetype.description }} ({{ archetype.site_context }})

Design wind speed m per s restricted to: {'min': 40, 'max': 60}

Task bundle

The exact instruction and parameter contract used to generate this task, pinned to the published library source.

/workspace

  • instruction.md
  • solar-array-wind-load_calc.py

Teal lines show Jinja input conditions, not task visibility policy. A line renders only when that input or tool is visible.

1You are a senior civil/structural engineer specializing in wind loading for renewable energy structures.2 3## Problem4 5Calculate the wind loads on a ground-mounted solar PV array, including uplift pressure, downward pressure, per-module uplift force, and horizontal drag force.6 7## Given8 9| Parameter | Value | Unit |10|-----------|-------|------|11| Design wind speed (V_des,θ) | {{ design_wind_speed_m_per_s }} | m/s |12{% if tilt_angle_deg is defined %}13| Array tilt angle | {{ tilt_angle_deg }} | degrees |14{% endif %}15| Hub height above ground | {{ array_height_m }} | m |16| Module width (slope direction) | {{ module_width_m }} | m |17| Module length (row direction) | {{ module_length_m }} | m |18| Modules wide (slope direction) | {{ num_modules_wide }} | - |19{% if row_position is defined %}20| Row position | {{ row_position }} | - |21{% endif %}22{% if air_density_kg_per_m3 is defined %}23| Air density (ρ) | {{ air_density_kg_per_m3 }} | kg/m³ |24{% endif %}25{% if archetype_description is defined %}26 27### Site Description28 29{{ archetype_description }}30{% endif %}31 32{% if tool_available %}33## Available Tool34 35A wind load calculation tool is available at `/workspace/{{ meta.name }}_calc.py`. Run it with:36 37```bash38python3 /workspace/{{ meta.name }}_calc.py --help39```40 41You may use this tool to verify your calculations or compute values directly.42{% endif %}43 44## Required45 46Calculate the following:47 481. Dynamic (velocity) pressure q in kPa492. Net uplift (suction) pressure on the array in kPa503. Net downward pressure on the array in kPa514. Uplift force per module in kN525. Horizontal drag force per metre of array row in kN/m53 54## Applicable Standards55 56- AS/NZS 1170.2 — Structural design actions, Part 2: Wind actions57- SEAOC PV2-2017 — Wind Design for Solar Arrays (net pressure coefficients)58- ASCE 7-22 Chapter 29 — Wind loads on other structures (ground-mounted PV)59 60## Methodology61 62- **Dynamic pressure** (AS/NZS 1170.2): q = 0.5 × ρ × V_des² (Pa), convert to kPa by dividing by 100063- **Net pressure coefficients** (SEAOC PV2-2017): Use GCrn values that depend on tilt angle and row position (exposed end rows vs sheltered interior rows). Interior rows use approximately 60% of the exposed-row coefficients.64- **Approximate GCrn values for exposed panels:**65 66 | Tilt (°) | GCrn uplift | GCrn downforce |67 |----------|-------------|----------------|68 | 5 | 0.8 | 0.3 |69 | 10 | 1.0 | 0.5 |70 | 15 | 1.2 | 0.7 |71 | 20 | 1.4 | 0.9 |72 | 25 | 1.5 | 1.0 |73 | 30 | 1.6 | 1.1 |74 | 35 | 1.7 | 1.1 |75 | 45 | 1.8 | 1.2 |76 77 Interpolate linearly for intermediate tilt angles.78 79- **Uplift pressure**: p_uplift = q × GCrn_uplift80- **Downforce pressure**: p_down = q × GCrn_downforce81- **Uplift force per module**: F_uplift = p_uplift × module_width × module_length82- **Drag force per metre**: F_drag = q × C_drag × (num_modules_wide × module_width × sin(tilt)), where C_drag ≈ 1.383 84## Constraints85 86- No internet access is available. Work from engineering knowledge and the provided tool.87- The design wind speed provided is the site wind speed after all AS/NZS 1170.2 multipliers have been applied.88- Use standard air density of 1.2 kg/m³ unless otherwise specified.89- All forces and pressures should be reported as positive magnitudes.90 91## Output Format92 93Show your step-by-step working in Markdown. At the end of your solution, include a JSON block with your final answers in exactly this format:94 95```json96{97 "dynamic_pressure_kpa": <numeric_value>,98 "uplift_pressure_kpa": <numeric_value>,99 "downforce_pressure_kpa": <numeric_value>,100 "uplift_force_per_module_kn": <numeric_value>,101 "drag_force_per_m_kn": <numeric_value>102}103```104 105Write your complete solution to `/workspace/output.md`.106

Scenario archetypes

Each generated task is drawn from one of these realistic scenario bands.

Site contexts ground each scenario in a real locale the model can use to infer hidden values.

Utility scale flat

utility_scale_flat

Utility-scale solar farm on flat open terrain with low tilt fixed-tilt racking

western-nsw-solar-farmnorth-queensland-solar-parkmildura-solar-precinct
Parameter ranges
tilt_angle_deg
10 – 20
row_position
exposed

Utility scale steep

utility_scale_steep

Utility-scale solar farm with steeper tilt for higher-latitude sites

gippsland-solar-farmtasmanian-highlands-solarsouthern-sa-solar-plant
Parameter ranges
tilt_angle_deg
25 – 35
row_position
exposed

Commercial rooftop ground

commercial_rooftop_ground

Commercial ground-mounted array behind a warehouse or industrial building

sydney-industrial-parkmelbourne-logistics-precinctbrisbane-trade-coast
Parameter ranges
tilt_angle_deg
10 – 25
row_position
interior

Remote community

remote_community

Remote community or mine-site solar installation on exposed terrain

alice-springs-solarmount-isa-mining-camppilbara-remote-solar
Parameter ranges
tilt_angle_deg
15 – 30
row_position
exposed

Coastal exposed

coastal_exposed

Coastal solar farm subject to high cyclonic wind speeds

townsville-coastal-solardarwin-industrial-solargeraldton-wind-farm-solar
Parameter ranges
tilt_angle_deg
10 – 20
row_position
exposed

Example task

gippsland-solar-farm-utility-scale-steep-previewhard difficulty, some inputs hidden.

Utility-scale solar farm with steeper tilt for higher-latitude sites. gippsland-solar-farm. Required outputs: dynamic_pressure_kpa, uplift_pressure_kpa, downforce_pressure_kpa, uplift_force_per_module_kn, drag_force_per_m_kn

The model sees

Scenario context and visible inputs.

design_wind_speed_m_per_s
{'min': 40, 'max': 60} m/s
array_height_m
0.3 to 3 m
module_width_m
0.8 to 1.4 m
module_length_m
1.5 to 2.4 m
num_modules_wide
1 to 4 -
air_density_kg_per_m3
1.2 kg/m3

Executable tool: solar-array-wind-load_calc.py

The model must infer

Inputs withheld at this difficulty.

  • Row position

    row_position

  • Tilt angle deg

    tilt_angle_deg

Stand-in text in the prompt

The array is a {{ archetype.description }} ({{ archetype.site_context }})

The model must produce

The scored JSON answer schema.

{
  "dynamic_pressure_kpa": <number>,
  "uplift_pressure_kpa": <number>,
  "downforce_pressure_kpa": <number>,
  "uplift_force_per_module_kn": <number>,
  "drag_force_per_m_kn": <number>
}
  • dynamic_pressure_kpa · scored within ±3%
  • uplift_pressure_kpa · scored within ±3%
  • downforce_pressure_kpa · scored within ±3%
  • uplift_force_per_module_kn · scored within ±3%
  • drag_force_per_m_kn · scored within ±3%