otko/examples/rc_frame_gravity.osmodel
smill f361fee969 feat: named case-result load combinations with full GUI support
Snapshots the current development tree, headlined by proper load
combinations (user request): a reusable LoadCombination entity of
weighted completed static-case results (e.g. 1.2xDead + 1.6xLive).

- core: LoadCombination/LoadCombinationItem entities, Project
  integration (lookup, unique ids, reference validation)
- services: combinations.py (linear superposition + envelope),
  exported via services __init__
- commands: undoable Add/Delete/Update for combinations
- GUI: Load Combinations manager dialog, Run-dialog evaluation,
  envelope display in Results panel, Combinations tab in Table dock
- tests: unit coverage (validation, math, error paths) + integration
  superposition check vs a single factored run
2026-09-11 13:19:59 -04:00

422 lines
No EOL
7.6 KiB
Text

{
"schema_version": 1,
"meta": {
"name": "RC Frame Gravity (OpenSees Ex 3)",
"description": "1-bay 1-storey portal frame, nonlinear fibre columns + elastic beam, 10-step LoadControl gravity pushdown.",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
"coord_systems": [
{
"name": "Global",
"coord": {
"origin": [
0.0,
0.0,
0.0
],
"rotation_deg": [
0.0,
0.0,
0.0
]
},
"grid": {
"x_grid_lines": [
{
"id": "X1",
"ordinate": 0.0,
"line_type": "Primary",
"visible": true,
"bubble_loc": "End",
"color": "#808080"
},
{
"id": "X2",
"ordinate": 360.0,
"line_type": "Primary",
"visible": true,
"bubble_loc": "End",
"color": "#808080"
}
],
"y_grid_lines": [
{
"id": "Y1",
"ordinate": 0.0,
"line_type": "Primary",
"visible": true,
"bubble_loc": "End",
"color": "#808080"
},
{
"id": "Y2",
"ordinate": 144.0,
"line_type": "Primary",
"visible": true,
"bubble_loc": "End",
"color": "#808080"
}
],
"z_grid_lines": [
{
"id": "Z1",
"ordinate": 0.0,
"line_type": "Primary",
"visible": true,
"bubble_loc": "End",
"color": "#808080"
}
],
"visible": true,
"is_general": false,
"hide_all": false,
"glue_to_grid": false,
"bubble_size": 20
}
}
],
"nodes": [
{
"id": 1,
"name": "Base-L",
"coords": [
0.0,
0.0,
0.0
],
"mass": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"restraint": [
true,
true,
false,
false,
false,
true
]
},
{
"id": 2,
"name": "Base-R",
"coords": [
360.0,
0.0,
0.0
],
"mass": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"restraint": [
true,
true,
false,
false,
false,
true
]
},
{
"id": 3,
"name": "Top-L",
"coords": [
0.0,
144.0,
0.0
],
"mass": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"restraint": [
false,
false,
false,
false,
false,
false
]
},
{
"id": 4,
"name": "Top-R",
"coords": [
360.0,
144.0,
0.0
],
"mass": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"restraint": [
false,
false,
false,
false,
false,
false
]
}
],
"materials": [
{
"id": 1,
"name": "Core-Conc",
"type": "Concrete01",
"fpc": -6.0,
"epsc0": -0.004,
"fpcu": -5.0,
"epsU": -0.014
},
{
"id": 2,
"name": "Cover-Conc",
"type": "Concrete01",
"fpc": -5.0,
"epsc0": -0.002,
"fpcu": 0.0,
"epsU": -0.006
},
{
"id": 3,
"name": "Steel-60",
"type": "Steel01",
"Fy": 60.0,
"E0": 30000.0,
"b": 0.01,
"a1": null,
"a2": null,
"a3": null,
"a4": null
}
],
"sections": [
{
"id": 1,
"name": "RC-Col",
"type": "FiberSection",
"GJ": null,
"patches": [
{
"kind": "rect",
"material_id": 1,
"n_fib_y": 10,
"n_fib_z": 1,
"y_i": -10.5,
"z_i": -6.0,
"y_j": 10.5,
"z_j": 6.0
},
{
"kind": "rect",
"material_id": 2,
"n_fib_y": 10,
"n_fib_z": 1,
"y_i": -12.0,
"z_i": 6.0,
"y_j": 12.0,
"z_j": 7.5
},
{
"kind": "rect",
"material_id": 2,
"n_fib_y": 10,
"n_fib_z": 1,
"y_i": -12.0,
"z_i": -7.5,
"y_j": 12.0,
"z_j": -6.0
},
{
"kind": "rect",
"material_id": 2,
"n_fib_y": 2,
"n_fib_z": 1,
"y_i": -12.0,
"z_i": -6.0,
"y_j": -10.5,
"z_j": 6.0
},
{
"kind": "rect",
"material_id": 2,
"n_fib_y": 2,
"n_fib_z": 1,
"y_i": 10.5,
"z_i": -6.0,
"y_j": 12.0,
"z_j": 6.0
}
],
"layers": [
{
"kind": "straight",
"material_id": 3,
"n_bars": 3,
"bar_area": 0.6,
"y_start": 10.5,
"z_start": 6.0,
"y_end": 10.5,
"z_end": -6.0
},
{
"kind": "straight",
"material_id": 3,
"n_bars": 2,
"bar_area": 0.6,
"y_start": 0.0,
"z_start": 6.0,
"y_end": 0.0,
"z_end": -6.0
},
{
"kind": "straight",
"material_id": 3,
"n_bars": 3,
"bar_area": 0.6,
"y_start": -10.5,
"z_start": 6.0,
"y_end": -10.5,
"z_end": -6.0
}
],
"fibres": []
},
{
"id": 2,
"name": "Beam",
"type": "ElasticSection",
"E": 4030.0,
"A": 360.0,
"Iz": 8640.0,
"Iy": 8640.0,
"G": 1500.0,
"J": 1.0
}
],
"elements": [
{
"id": 1,
"name": "Col-L",
"type": "ForceBeamColumn",
"nodes": [
1,
3
],
"section_id": 1,
"integration_points": 5,
"geom_transf": "Linear",
"max_iter": 10,
"tolerance": 1e-12
},
{
"id": 2,
"name": "Col-R",
"type": "ForceBeamColumn",
"nodes": [
2,
4
],
"section_id": 1,
"integration_points": 5,
"geom_transf": "Linear",
"max_iter": 10,
"tolerance": 1e-12
},
{
"id": 3,
"name": "Beam",
"type": "ElasticBeamColumn",
"nodes": [
3,
4
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
}
],
"time_series": [
{
"id": 1,
"name": "Gravity",
"type": "Linear",
"factor": 1.0
}
],
"load_patterns": [
{
"id": 1,
"name": "Gravity",
"type": "Plain",
"time_series_id": 1,
"nodal_loads": [
{
"node_id": 3,
"forces": [
0.0,
-180.0,
0.0,
0.0,
0.0,
0.0
]
},
{
"node_id": 4,
"forces": [
0.0,
-180.0,
0.0,
0.0,
0.0,
0.0
]
}
],
"element_loads": []
}
],
"spectra": [],
"analyses": [
{
"id": 1,
"name": "Gravity",
"type": "Static",
"pattern_ids": [
1
],
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
"constraints": "Transformation",
"integrator": "LoadControl",
"algorithm": "Newton",
"test": "NormDispIncr",
"tolerance": 1e-12,
"max_iter": 10
}
]
}