
# Steel bracing seismic retrofit design Design a **steel br...
Prompt
# Steel bracing seismic retrofit design Design a **steel bracing retrofit system** for an existing five-story Steel Moment Resisting Frame office building so that it performs well across a band of design-basis ground motions. The superstructure (geometry, materials, gravity/lateral loads) is fixed; you choose only the bracing. ## Deliverables Write exactly this file: ```text /tmp/output/retrofit_design.json ``` Do not write the final answer anywhere else. - `retrofit_design.json` must satisfy `/data/retrofit_schema.json`. ## Public files in `/data` - `building_geometry.json` - structure description, valid story range, valid bay range, story height/units, `required_brace_count`, `max_budget`, and the engineering trade-off summary. - `retrofit_schema.json` - required JSON format for the design. - `public_analysis_envelope.json` - disclosed ground-motion band, public representative records, performance targets, budget cap, credit curves, weights, and the final exponent (everything the grader scores). - `graded_case_sampling_policy.json` - discloses the deterministic stress-test envelope, phase-seed convention, and suite-composition rules used to select the private grading records. - `available_sections.json` - allowed steel sections with unit weight and unit cost. - `starter_design.json` - a valid but intentionally poor (under-braced) starter, provided for format reference only. The hidden grading uses the **same** structural model, brace elements, ground-motion generator and phase-seed convention, metric definitions, targets, budget cap, credit curves, weights, and exponent. Only the six fixed private ground-motion tuples and the reference design are withheld; every `(pga_g, tp_sec, duration_sec, phase_seed)` lies inside the disclosed envelope and follows its published suite-composition rules. ## Design variables `retrofit_design.json` contains one object: ```json { "braces": [ { "story": 1, "bay": 2, "brace_type": "X", "section": "HSS 6x6x3/8" }, { "story": 2, "bay": 2, "brace_type": "Chevron", "section": "HSS 8x8x1/2" }, { "story": 3, "bay": 3, "brace_type": "SingleDiagonal", "section": "W10x33" } ] } ``` | Variable | Range | Meaning | | --- | --- | --- | | `story` | integer within the valid story range defined in `building_geometry.json` (1-5 for this building) | story level where the brace is installed | | `bay` | integer within the valid bay range defined in `building_geometry.json` (1-4 for this building) | bay where the brace is installed | | `brace_type` | `"X"`, `"Chevron"`, `"SingleDiagonal"` | bracing configuration | | `section` | any name in `available_sections.json` | brace member section | The object must contain exactly the key `braces`, whose value is a list of exactly `required_brace_count` objects (given in `building_geometry.json`), each containing exactly those four keys. No two entries may share the same `(story, bay)` pair. The braces above are the **under-braced starter** in `/data/starter_design.json`, shown only to illustrate the format: it looks fine on the milder design-basis records but its story drift exceeds the limit at the high-intensity, long-duration corner, so it scores near zero. Replace it with your own design. ## Design guidance Use the public files to reason about the disclosed ground-motion band, response targets, budget cap, and the tradeoff between bracing stiffness/strength and cost/weight. All lengths, loads, and other physical quantities referenced from `building_geometry.json` and related public files use the units stated in those files; brace costs and weights use the units named in the metric keys below (`_usd`, `_kip`, `_in`). A design that only performs well on mild motions may not be robust across the full disclosed envelope. Before stopping, confirm the file exists and parses: ```bash python -m json.tool /tmp/output/retrofit_design.json >/dev/null ``` ## Scoring summary The grader runs the disclosed structural model on six private ground motions inside the band and scores the **worst** case. For each response metric it takes the worst (largest) value over the six records and awards credit by how that value compares to the disclosed target: | Metric | Target | Weight | | --- | --- | --- | | `peak_story_drift_ratio` | 0.020 | 0.28 | | `peak_roof_displacement_in` | 6.8 | 0.20 | | `peak_base_shear_coeff` | 0.310 | 0.18 | | `total_retrofit_cost_usd` | 185000 | 0.17 | | `added_structural_weight_kip` | 42.0 | 0.17 | ```text credit_k = lower_ratio_curve( worst_value_k / target_k ) weighted = 0.28*drift + 0.20*roof_disp + 0.18*base_shear + 0.17*cost + 0.17*weight budget_gate = budget_gate_curve( total_cost / 200000.0 ) score = weighted ** 2.6 * budget_gate ``` The exact credit and gate curves, weights, and `2.6` exponent are in `/data/public_analysis_envelope.json`. A worst-case value at or below its target earns full credit for that metric. Note the cost metric uses **two distinct values**: the target retrofit cost is 185000 USD β designs at or below this earn full credit on the cost metric β while 200000 USD (`max_budget` in `building_geometry.json`) is the separate, higher **maximum allowable budget** enforced by the budget gate. Designs costing between 185000 and 200000 USD receive partial credit on the cost metric via the credit curve, and partial (declining) budget-gate credit as cost approaches the cap. The **budget gate** is a separate hard limit state: once total retrofit cost passes the 200000.0 USD cap, the retrofit is not fundable and the score is driven to zero, regardless of how good the other metrics are. Because the metrics compete - stiffer/stronger bracing lowers drift, roof displacement, and base shear but raises cost and added weight, while lighter bracing does the opposite - a high score requires meeting all five targets at the worst-case ground motion simultaneously. An honest design that cannot satisfy every target should still report its true response; partial credit is awarded continuously. A submission scores `0` if the file is missing, the design is out of range or has wrong keys, braces overlap or fall outside the valid story/bay bounds, the section is not in `available_sections.json`, or the response fails to converge on any design-basis motion. Submit only the required JSON file.
Response not available