feat: consolidate units to Metric/Imperial with unit-aware dialogs
Some checks failed
CI / lint (push) Has been cancelled
CI / test (macos-latest, 3.10) (push) Has been cancelled
CI / test (macos-latest, 3.11) (push) Has been cancelled
CI / test (macos-latest, 3.12) (push) Has been cancelled
CI / test (ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (windows-latest, 3.10) (push) Has been cancelled
CI / test (windows-latest, 3.11) (push) Has been cancelled
CI / test (windows-latest, 3.12) (push) Has been cancelled

- core/units: two dominant systems (Metric m/kN, Imperial ft/kip) with
  display conversion helpers, legacy 4-system migration in ProjectMeta
- dialogs/docks: unit-aware material, section, case, load, grid and
  results labels; diagram renderer unit labels; render controls update
- docs: add consistent_units.md; regen examples/*.osmodel artifacts
- tests: update persistence/phase8/project/unit-labels for new systems
This commit is contained in:
smillmorel 2026-09-08 16:33:30 -04:00
commit d01a5957b7
99 changed files with 3143 additions and 976 deletions

View file

@ -304,7 +304,7 @@ def build_ex4_portal2d_elastic_element() -> Project:
name=ELASTIC_VARIANT.name,
author="OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
description=ELASTIC_VARIANT.description,
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,
@ -333,7 +333,7 @@ def build_ex4_portal2d_inelastic_section() -> Project:
name=INELASTIC_SECTION_VARIANT.name,
author="OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
description=INELASTIC_SECTION_VARIANT.description,
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,
@ -383,7 +383,7 @@ def build_ex4_portal2d_inelastic_fiber_section() -> Project:
name=FIBER_VARIANT.name,
author="OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
description=FIBER_VARIANT.description,
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "Basic Truss",
"description": "3-bar asymmetric planar truss, linear static analysis.",
"author": "OpenSees Examples Manual - Example 1",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 2,
"ndf": 2,
@ -245,6 +245,7 @@
"rho": 0.0
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -284,6 +285,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",

View file

@ -95,7 +95,7 @@ def build_basic_truss() -> Project:
name="Basic Truss",
author="OpenSees Examples Manual - Example 1",
description="3-bar asymmetric planar truss, linear static analysis.",
units=UnitSystem.SI_M_N,
units=UnitSystem.METRIC,
),
ndm=2, ndf=2,
coord_systems=[

View file

@ -4,7 +4,7 @@
"name": "Simply Supported Beam — Quad Elements (OpenSees Ex 6.4)",
"description": "16×4 plane-stress quad mesh of a 40×10 deep beam with two midspan point loads, LoadControl 0→10 in 10 steps.",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 2,
@ -3391,6 +3391,7 @@
"b2": 0.0
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -3441,6 +3442,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 1.0,
"system": "ProfileSPD",
@ -3456,6 +3458,7 @@
"name": "FreeVibration",
"type": "Transient",
"pattern_ids": [],
"pattern_factors": {},
"dt": 0.5,
"n_steps": 1500,
"system": "BandGeneral",
@ -3471,6 +3474,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -132,7 +132,7 @@ def build_beam_quad_2d() -> Project:
f"{NX}×{NY} plane-stress quad mesh of a {L:.0f}×{H:.0f} deep "
"beam with two midspan point loads, LoadControl 0→10 in 10 steps."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2, ndf=2,
nodes=nodes,

View file

@ -4,7 +4,7 @@
"name": "Cantilever",
"description": "",
"author": "Ozan",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 3,
"ndf": 6,
@ -198,7 +198,8 @@
"Iz": 0.0002,
"Iy": 4.5e-05,
"G": 80000000000.0,
"J": 8.5e-07
"J": 8.5e-07,
"shape": null
}
],
"elements": [
@ -212,7 +213,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -224,7 +226,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -236,7 +239,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 4,
@ -248,7 +252,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 5,
@ -260,9 +265,11 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -341,6 +348,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",
@ -358,6 +366,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",

View file

@ -58,7 +58,7 @@ def build_cantilever() -> Project:
]
return Project(
meta=ProjectMeta(name="Cantilever", author="Ozan", units=UnitSystem.SI_M_N),
meta=ProjectMeta(name="Cantilever", author="Ozan", units=UnitSystem.METRIC),
ndm=3, ndf=6,
nodes=nodes,
sections=[

View file

@ -4,7 +4,7 @@
"name": "Concrete04 Cantilever",
"description": "Single RC column cantilever using Concrete04 (Popovics) fiber section. Demonstrates the Concrete04 material end-to-end: schema → model → runner → results.",
"author": "",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 2,
"ndf": 3,
@ -237,6 +237,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -254,6 +255,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 0.15000000000000002,

View file

@ -85,7 +85,7 @@ def build_concrete04_cantilever() -> Project:
"fiber section. Demonstrates the Concrete04 material "
"end-to-end: schema → model → runner → results."
),
units=UnitSystem.SI_M_N,
units=UnitSystem.METRIC,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "Eigen - Two-Storey One-Bay Frame",
"description": "Two-storey one-bay elastic frame with two-mode eigenvalue analysis.",
"author": "OpenSees Wiki / Chopra Example 10.5",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -198,7 +198,8 @@
"Iz": 640.0,
"Iy": null,
"G": null,
"J": null
"J": null,
"shape": null
},
{
"id": 2,
@ -209,7 +210,8 @@
"Iz": 320.0,
"Iy": null,
"G": null,
"J": null
"J": null,
"shape": null
}
],
"elements": [
@ -223,7 +225,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -235,7 +238,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -247,7 +251,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 4,
@ -259,7 +264,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 5,
@ -271,7 +277,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 6,
@ -283,7 +290,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],

View file

@ -56,7 +56,7 @@ def build_eigen_two_storey_one_bay_frame() -> Project:
description=(
"Two-storey one-bay elastic frame with two-mode eigenvalue analysis."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "Eigen - Two-Storey Shear Frame",
"description": "Two-storey shear frame with equalDOF floor constraints and two-mode eigenvalue analysis.",
"author": "OpenSees Wiki / Chopra Example 10.4",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -198,7 +198,8 @@
"Iz": 640.0,
"Iy": null,
"G": null,
"J": null
"J": null,
"shape": null
},
{
"id": 2,
@ -209,7 +210,8 @@
"Iz": 320.0,
"Iy": null,
"G": null,
"J": null
"J": null,
"shape": null
},
{
"id": 3,
@ -220,7 +222,8 @@
"Iz": 10000000000000.0,
"Iy": null,
"G": null,
"J": null
"J": null,
"shape": null
}
],
"elements": [
@ -234,7 +237,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -246,7 +250,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -258,7 +263,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 4,
@ -270,7 +276,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 5,
@ -282,7 +289,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 6,
@ -294,7 +302,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [

View file

@ -62,7 +62,7 @@ def build_eigen_two_storey_shear_frame() -> Project:
"Two-storey shear frame with equalDOF floor constraints and "
"two-mode eigenvalue analysis."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "Elastic Frame (OpenSees Ex 4)",
"description": "3-story 3-bay 2D elastic frame, AISC W-shape sections, gravity (distributed) + lateral (point) + 5-mode eigen.",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -523,7 +523,8 @@
"Iz": 3400.0,
"Iy": 3400.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 2,
@ -534,7 +535,8 @@
"Iz": 4330.0,
"Iy": 4330.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 3,
@ -545,7 +547,8 @@
"Iz": 5900.0,
"Iy": 5900.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 4,
@ -556,7 +559,8 @@
"Iz": 4930.0,
"Iy": 4930.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 5,
@ -567,7 +571,8 @@
"Iz": 1830.0,
"Iy": 1830.0,
"G": 11200.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -581,7 +586,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -593,7 +599,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -605,7 +612,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 4,
@ -617,7 +625,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 5,
@ -629,7 +638,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 6,
@ -641,7 +651,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 7,
@ -653,7 +664,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 8,
@ -665,7 +677,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 9,
@ -677,7 +690,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 10,
@ -689,7 +703,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 11,
@ -701,7 +716,8 @@
],
"section_id": 2,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 12,
@ -713,7 +729,8 @@
],
"section_id": 1,
"geom_transf": "PDelta",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 13,
@ -725,7 +742,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 14,
@ -737,7 +755,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 15,
@ -749,7 +768,8 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 16,
@ -761,7 +781,8 @@
],
"section_id": 4,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 17,
@ -773,7 +794,8 @@
],
"section_id": 4,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 18,
@ -785,7 +807,8 @@
],
"section_id": 4,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 19,
@ -797,7 +820,8 @@
],
"section_id": 5,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 20,
@ -809,7 +833,8 @@
],
"section_id": 5,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 21,
@ -821,9 +846,11 @@
],
"section_id": 5,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -954,6 +981,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",
@ -972,6 +1000,7 @@
1,
2
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",

View file

@ -227,7 +227,7 @@ def build_elastic_frame() -> Project:
"3-story 3-bay 2D elastic frame, AISC W-shape sections, "
"gravity (distributed) + lateral (point) + 5-mode eigen."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2, ndf=3,
coord_systems=[

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 1a - 2D Elastic Cantilever Column",
"description": "Original Ex 1a elastic cantilever column with shared gravity preload, static pushover, and BM68elc base-excitation cases.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -98,7 +98,8 @@
"Iz": 1080000.0,
"Iy": 1080000.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -112,7 +113,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
@ -4138,7 +4140,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4202,6 +4205,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4219,6 +4223,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 100.0,
@ -4243,6 +4248,7 @@
"pattern_ids": [
3
],
"pattern_factors": {},
"dt": 0.02,
"n_steps": 1000,
"system": "BandGeneral",
@ -4258,6 +4264,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -84,7 +84,7 @@ def build_ex1a_canti2d() -> Project:
"Original Ex 1a elastic cantilever column with shared gravity "
"preload, static pushover, and BM68elc base-excitation cases."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "2D Elastic Cantilever EQ (OpenSees Ex 1a)",
"description": "Elastic 2D cantilever with gravity preload + horizontal UniformExcitation time history from the A10000 record.",
"author": "OpenSees Wiki / Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -98,7 +98,8 @@
"Iz": 1080000.0,
"Iy": 1080000.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -112,9 +113,11 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -8121,7 +8124,8 @@
-0.000147416,
-0.000147326
],
"file_path": "A10000.txt"
"file_path": "A10000.txt",
"use_last": false
}
],
"load_patterns": [
@ -8165,6 +8169,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -8182,6 +8187,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 3995,
"system": "BandGeneral",
@ -8197,6 +8203,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -81,7 +81,7 @@ def build_ex1a_canti2d_eq() -> Project:
"Elastic 2D cantilever with gravity preload + horizontal "
"UniformExcitation time history from the A10000 record."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 1b - Elastic Portal Frame",
"description": "Original Ex 1b elastic portal frame with shared gravity preload, static pushover, and BM68elc earthquake cases.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -148,7 +148,8 @@
"Iz": 1080000.0,
"Iy": 1080000.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 2,
@ -159,7 +160,8 @@
"Iz": 4423680.0,
"Iy": 4423680.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -173,7 +175,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -185,7 +188,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -197,7 +201,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
@ -4223,7 +4228,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4293,6 +4299,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4310,6 +4317,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"control_node": 3,
"control_dof": 1,
"target_disp": 10.0,
@ -4335,6 +4343,7 @@
"pattern_ids": [
3
],
"pattern_factors": {},
"dt": 0.02,
"n_steps": 1000,
"system": "BandGeneral",
@ -4350,6 +4359,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -88,7 +88,7 @@ def build_ex1b_portal2d() -> Project:
"Original Ex 1b elastic portal frame with shared gravity "
"preload, static pushover, and BM68elc earthquake cases."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 2a - Elastic Cantilever Column with Variables",
"description": "Variable-driven elastic cantilever model with derived mass, section, pushover, and earthquake analysis parameters.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -98,7 +98,8 @@
"Iz": 1080000.0,
"Iy": 1080000.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -112,7 +113,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
@ -4138,7 +4140,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4202,6 +4205,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4219,6 +4223,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 4.32,
@ -4243,6 +4248,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "SparseGeneral",
@ -4258,6 +4264,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -99,7 +99,7 @@ def build_ex2a_canti2d_elastic_element() -> Project:
"Variable-driven elastic cantilever model with derived mass, "
"section, pushover, and earthquake analysis parameters."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 2b - Nonlinear Cantilever Column",
"description": "Nonlinear cantilever with an aggregated uniaxial section: elastic axial P plus bilinear inelastic Mz in one force-based element.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -4166,7 +4166,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4230,6 +4231,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4247,6 +4249,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 21.6,
@ -4271,6 +4274,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "SparseGeneral",
@ -4286,6 +4290,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -108,7 +108,7 @@ def build_ex2b_canti2d_inelastic_section() -> Project:
"Nonlinear cantilever with an aggregated uniaxial section: "
"elastic axial P plus bilinear inelastic Mz in one force-based element."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 2c - Inelastic Fiber-Section Cantilever",
"description": "Nonlinear cantilever with a fiber section built from Concrete02 and Steel02 uniaxial materials.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -4194,7 +4194,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4258,6 +4259,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4275,6 +4277,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 4.32,
@ -4299,6 +4302,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "SparseGeneral",
@ -4314,6 +4318,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -120,7 +120,7 @@ def build_ex2c_canti2d_inelastic_fiber_section() -> Project:
"Nonlinear cantilever with a fiber section built from "
"Concrete02 and Steel02 uniaxial materials."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 3 - Cantilever (Elastic Build)",
"description": "Example 3 elastic cantilever build with unit-scaled geometry and shared push / uniform-EQ analysis files.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -98,7 +98,8 @@
"Iz": 1080000.0,
"Iy": 1080000.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -112,7 +113,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
@ -4138,7 +4140,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4202,6 +4205,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4219,6 +4223,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 21.6,
@ -4243,6 +4248,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "SparseGeneral",
@ -4258,6 +4264,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -87,7 +87,7 @@ def build_ex3_canti2d_elastic_element() -> Project:
"Example 3 elastic cantilever build with unit-scaled geometry "
"and shared push / uniform-EQ analysis files."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2,
ndf=3,

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 3 - Cantilever (Fiber Section Build)",
"description": "Example 3 cantilever with inelastic fiber section and shared analysis files.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -4194,7 +4194,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4258,6 +4259,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4275,6 +4277,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 21.6,
@ -4299,6 +4302,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "SparseGeneral",
@ -4314,6 +4318,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -107,7 +107,7 @@ def build_ex3_canti2d_inelastic_fiber_section() -> Project:
name="OpenSees Ex 3 - Cantilever (Fiber Section Build)",
author="OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
description="Example 3 cantilever with inelastic fiber section and shared analysis files.",
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2, ndf=3,
nodes=[

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 3 - Cantilever (Inelastic Section Build)",
"description": "Example 3 cantilever with aggregated uniaxial inelastic section and shared analysis files.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -4166,7 +4166,8 @@
0.0006658006,
0.0006636009
],
"file_path": "BM68elc.acc"
"file_path": "BM68elc.acc",
"use_last": false
}
],
"load_patterns": [
@ -4230,6 +4231,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -4247,6 +4249,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 21.6,
@ -4271,6 +4274,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "SparseGeneral",
@ -4286,6 +4290,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -88,7 +88,7 @@ def build_ex3_canti2d_inelastic_section() -> Project:
name="OpenSees Ex 3 - Cantilever (Inelastic Section Build)",
author="OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
description="Example 3 cantilever with aggregated uniaxial inelastic section and shared analysis files.",
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2, ndf=3,
nodes=[

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 4 - Portal Frame (Elastic Build)",
"description": "Example 4 elastic portal frame with shared gravity, push, and sine-wave support motion.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -148,7 +148,8 @@
"Iz": 864000.0,
"Iy": 864000.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
},
{
"id": 2,
@ -159,7 +160,8 @@
"Iz": 4423680.0,
"Iy": 4423680.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -173,7 +175,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -185,7 +188,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -197,7 +201,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
@ -335,7 +340,7 @@
-83.82633839751217,
-99.09214039482102,
-113.56011074290575,
-127.11376185155243,
-127.11376185155244,
-139.643967691452,
-151.04984241282355,
-161.23955261895566,
@ -428,7 +433,7 @@
-113.56011074290593,
-99.0921403948212,
-83.82633839751236,
-67.88561601251554,
-67.88561601251556,
-51.398318563481766,
-34.49719207509674,
-17.318314480143496,
@ -511,7 +516,7 @@
99.0921403948209,
113.56011074290566,
127.11376185155234,
139.64396769145193,
139.6439676914519,
151.04984241282366,
161.23955261895557,
170.1310567547217,
@ -540,12 +545,12 @@
2.129415854357418e-13,
-17.31831448014314,
-34.49719207509707,
-51.398318563481425,
-51.39831856348143,
-67.88561601251521,
-83.82633839751205,
-99.09214039482087,
-113.5601107429062,
-127.11376185155231,
-127.11376185155234,
-139.6439676914519,
-151.04984241282324,
-161.23955261895594,
@ -578,7 +583,7 @@
51.3983185634814,
67.88561601251583,
83.82633839751202,
99.09214039482086,
99.09214039482087,
113.56011074290619,
127.11376185155231,
139.64396769145142,
@ -635,7 +640,7 @@
-151.04984241282355,
-139.6439676914518,
-127.1137618515527,
-113.56011074290548,
-113.5601107429055,
-99.09214039482131,
-83.82633839751311,
-67.88561601251568,
@ -654,7 +659,7 @@
139.64396769145233,
151.0498424128232,
161.2395526189559,
170.13105675472167,
170.13105675472164,
177.6527656569399,
183.7441189482236,
188.3560726335284,
@ -668,7 +673,7 @@
170.1310567547216,
161.23955261895586,
151.04984241282312,
139.64396769145227,
139.64396769145225,
127.11376185155324,
113.56011074290606,
99.09214039482075,
@ -805,14 +810,14 @@
188.35607263352813,
183.7441189482236,
177.65276565694043,
170.13105675472167,
170.13105675472164,
161.2395526189559,
151.0498424128232,
139.64396769145233,
127.11376185155329,
113.56011074290502,
99.09214039482083,
83.82633839751259,
83.8263383975126,
67.88561601251514,
51.39831856348202,
34.49719207509632,
@ -824,7 +829,8 @@
-67.88561601251568,
-83.82633839751188
],
"file_path": "generated:sine-wave"
"file_path": "generated:sine-wave",
"use_last": false
},
{
"id": 401,
@ -860,7 +866,7 @@
5.09980167540335,
5.928784854272076,
6.7100329435632435,
7.437255793028317,
7.437255793028318,
8.104598231883518,
8.70668721120218,
9.238675064545419,
@ -911,7 +917,7 @@
-10.075813279025667,
-9.696278538521907,
-9.238675064545415,
-8.706687211202178,
-8.706687211202176,
-8.10459823188352,
-7.437255793028321,
-6.710032943563246,
@ -941,7 +947,7 @@
10.718732373371513,
10.762057251873964,
10.718732373371514,
10.58910656431125,
10.589106564311248,
10.37422349548898,
10.075813279025667,
9.696278538521907,
@ -1017,7 +1023,7 @@
9.696278538521907,
9.238675064545422,
8.706687211202185,
8.104598231883523,
8.104598231883521,
7.437255793028323,
6.71003294356325,
5.928784854272083,
@ -1158,8 +1164,8 @@
9.238675064545424,
8.706687211202166,
8.104598231883525,
7.437255793028327,
6.710032943563254,
7.437255793028328,
6.710032943563253,
5.928784854272055,
5.099801675403362,
4.229757892079114,
@ -1193,7 +1199,7 @@
-9.238675064545426,
-8.706687211202167,
-8.104598231883527,
-7.437255793028355,
-7.437255793028356,
-6.710032943563254,
-5.928784854272056,
-5.099801675403363,
@ -1265,7 +1271,7 @@
-8.104598231883529,
-7.437255793028303,
-6.710032943563257,
-5.928784854272058,
-5.928784854272059,
-5.0998016754033655,
-4.229757892079153,
-3.3256585852652147,
@ -1279,7 +1285,7 @@
4.229757892079088,
5.09980167540337,
5.928784854272062,
6.710032943563261,
6.71003294356326,
7.4372557930283065,
8.104598231883482,
8.706687211202171,
@ -1316,7 +1322,7 @@
-5.92878485427203,
-6.71003294356329,
-7.437255793028332,
-8.104598231883505,
-8.104598231883507,
-8.706687211202192,
-9.23867506454541,
-9.69627853852188,
@ -1328,7 +1334,7 @@
-10.71873237337151,
-10.589106564311251,
-10.374223495488975,
-10.075813279025672,
-10.075813279025674,
-9.696278538521929,
-9.238675064545427,
-8.706687211202215,
@ -1355,7 +1361,7 @@
8.70668721120217,
9.238675064545427,
9.696278538521897,
10.075813279025672,
10.075813279025674,
10.374223495488975,
10.589106564311237,
10.718732373371518,
@ -1402,7 +1408,7 @@
-9.696278538521899,
-9.23867506454543,
-8.706687211202215,
-8.104598231883534,
-8.104598231883532,
-7.437255793028362,
-6.710032943563201,
-5.928784854272062,
@ -1418,11 +1424,11 @@
3.3256585852652147,
4.229757892079083,
5.0998016754033655,
5.928784854272058,
5.928784854272059,
6.710032943563257,
7.437255793028303,
8.104598231883479,
8.706687211202214,
8.706687211202212,
9.238675064545427,
9.696278538521895,
10.075813279025672,
@ -1436,7 +1442,8 @@
10.07581327902566,
9.696278538521915
],
"file_path": "generated:sine-wave-velocity"
"file_path": "generated:sine-wave-velocity",
"use_last": false
}
],
"load_patterns": [
@ -1506,6 +1513,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -1523,6 +1531,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 3,
"control_dof": 1,
"target_disp": 43.2,
@ -1548,6 +1557,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "BandGeneral",
@ -1563,6 +1573,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 4 - Portal Frame (Fiber Section Build)",
"description": "Example 4 portal frame with fiber-section columns and shared pushover / sine-wave analyses.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -213,7 +213,8 @@
"Iz": 4423680.0,
"Iy": 4423680.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -395,7 +396,7 @@
-83.82633839751217,
-99.09214039482102,
-113.56011074290575,
-127.11376185155243,
-127.11376185155244,
-139.643967691452,
-151.04984241282355,
-161.23955261895566,
@ -488,7 +489,7 @@
-113.56011074290593,
-99.0921403948212,
-83.82633839751236,
-67.88561601251554,
-67.88561601251556,
-51.398318563481766,
-34.49719207509674,
-17.318314480143496,
@ -571,7 +572,7 @@
99.0921403948209,
113.56011074290566,
127.11376185155234,
139.64396769145193,
139.6439676914519,
151.04984241282366,
161.23955261895557,
170.1310567547217,
@ -600,12 +601,12 @@
2.129415854357418e-13,
-17.31831448014314,
-34.49719207509707,
-51.398318563481425,
-51.39831856348143,
-67.88561601251521,
-83.82633839751205,
-99.09214039482087,
-113.5601107429062,
-127.11376185155231,
-127.11376185155234,
-139.6439676914519,
-151.04984241282324,
-161.23955261895594,
@ -638,7 +639,7 @@
51.3983185634814,
67.88561601251583,
83.82633839751202,
99.09214039482086,
99.09214039482087,
113.56011074290619,
127.11376185155231,
139.64396769145142,
@ -695,7 +696,7 @@
-151.04984241282355,
-139.6439676914518,
-127.1137618515527,
-113.56011074290548,
-113.5601107429055,
-99.09214039482131,
-83.82633839751311,
-67.88561601251568,
@ -714,7 +715,7 @@
139.64396769145233,
151.0498424128232,
161.2395526189559,
170.13105675472167,
170.13105675472164,
177.6527656569399,
183.7441189482236,
188.3560726335284,
@ -728,7 +729,7 @@
170.1310567547216,
161.23955261895586,
151.04984241282312,
139.64396769145227,
139.64396769145225,
127.11376185155324,
113.56011074290606,
99.09214039482075,
@ -865,14 +866,14 @@
188.35607263352813,
183.7441189482236,
177.65276565694043,
170.13105675472167,
170.13105675472164,
161.2395526189559,
151.0498424128232,
139.64396769145233,
127.11376185155329,
113.56011074290502,
99.09214039482083,
83.82633839751259,
83.8263383975126,
67.88561601251514,
51.39831856348202,
34.49719207509632,
@ -884,7 +885,8 @@
-67.88561601251568,
-83.82633839751188
],
"file_path": "generated:sine-wave"
"file_path": "generated:sine-wave",
"use_last": false
},
{
"id": 401,
@ -920,7 +922,7 @@
5.09980167540335,
5.928784854272076,
6.7100329435632435,
7.437255793028317,
7.437255793028318,
8.104598231883518,
8.70668721120218,
9.238675064545419,
@ -971,7 +973,7 @@
-10.075813279025667,
-9.696278538521907,
-9.238675064545415,
-8.706687211202178,
-8.706687211202176,
-8.10459823188352,
-7.437255793028321,
-6.710032943563246,
@ -1001,7 +1003,7 @@
10.718732373371513,
10.762057251873964,
10.718732373371514,
10.58910656431125,
10.589106564311248,
10.37422349548898,
10.075813279025667,
9.696278538521907,
@ -1077,7 +1079,7 @@
9.696278538521907,
9.238675064545422,
8.706687211202185,
8.104598231883523,
8.104598231883521,
7.437255793028323,
6.71003294356325,
5.928784854272083,
@ -1218,8 +1220,8 @@
9.238675064545424,
8.706687211202166,
8.104598231883525,
7.437255793028327,
6.710032943563254,
7.437255793028328,
6.710032943563253,
5.928784854272055,
5.099801675403362,
4.229757892079114,
@ -1253,7 +1255,7 @@
-9.238675064545426,
-8.706687211202167,
-8.104598231883527,
-7.437255793028355,
-7.437255793028356,
-6.710032943563254,
-5.928784854272056,
-5.099801675403363,
@ -1325,7 +1327,7 @@
-8.104598231883529,
-7.437255793028303,
-6.710032943563257,
-5.928784854272058,
-5.928784854272059,
-5.0998016754033655,
-4.229757892079153,
-3.3256585852652147,
@ -1339,7 +1341,7 @@
4.229757892079088,
5.09980167540337,
5.928784854272062,
6.710032943563261,
6.71003294356326,
7.4372557930283065,
8.104598231883482,
8.706687211202171,
@ -1376,7 +1378,7 @@
-5.92878485427203,
-6.71003294356329,
-7.437255793028332,
-8.104598231883505,
-8.104598231883507,
-8.706687211202192,
-9.23867506454541,
-9.69627853852188,
@ -1388,7 +1390,7 @@
-10.71873237337151,
-10.589106564311251,
-10.374223495488975,
-10.075813279025672,
-10.075813279025674,
-9.696278538521929,
-9.238675064545427,
-8.706687211202215,
@ -1415,7 +1417,7 @@
8.70668721120217,
9.238675064545427,
9.696278538521897,
10.075813279025672,
10.075813279025674,
10.374223495488975,
10.589106564311237,
10.718732373371518,
@ -1462,7 +1464,7 @@
-9.696278538521899,
-9.23867506454543,
-8.706687211202215,
-8.104598231883534,
-8.104598231883532,
-7.437255793028362,
-6.710032943563201,
-5.928784854272062,
@ -1478,11 +1480,11 @@
3.3256585852652147,
4.229757892079083,
5.0998016754033655,
5.928784854272058,
5.928784854272059,
6.710032943563257,
7.437255793028303,
8.104598231883479,
8.706687211202214,
8.706687211202212,
9.238675064545427,
9.696278538521895,
10.075813279025672,
@ -1496,7 +1498,8 @@
10.07581327902566,
9.696278538521915
],
"file_path": "generated:sine-wave-velocity"
"file_path": "generated:sine-wave-velocity",
"use_last": false
}
],
"load_patterns": [
@ -1566,6 +1569,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -1583,6 +1587,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 3,
"control_dof": 1,
"target_disp": 43.2,
@ -1608,6 +1613,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "BandGeneral",
@ -1623,6 +1629,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -4,7 +4,7 @@
"name": "OpenSees Ex 4 - Portal Frame (Inelastic Section Build)",
"description": "Example 4 portal frame with aggregated uniaxial inelastic column sections and shared analyses.",
"author": "OpenSees Wiki / Silvia Mazzoni & Frank McKenna",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -185,7 +185,8 @@
"Iz": 4423680.0,
"Iy": 4423680.0,
"G": 1.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -367,7 +368,7 @@
-83.82633839751217,
-99.09214039482102,
-113.56011074290575,
-127.11376185155243,
-127.11376185155244,
-139.643967691452,
-151.04984241282355,
-161.23955261895566,
@ -460,7 +461,7 @@
-113.56011074290593,
-99.0921403948212,
-83.82633839751236,
-67.88561601251554,
-67.88561601251556,
-51.398318563481766,
-34.49719207509674,
-17.318314480143496,
@ -543,7 +544,7 @@
99.0921403948209,
113.56011074290566,
127.11376185155234,
139.64396769145193,
139.6439676914519,
151.04984241282366,
161.23955261895557,
170.1310567547217,
@ -572,12 +573,12 @@
2.129415854357418e-13,
-17.31831448014314,
-34.49719207509707,
-51.398318563481425,
-51.39831856348143,
-67.88561601251521,
-83.82633839751205,
-99.09214039482087,
-113.5601107429062,
-127.11376185155231,
-127.11376185155234,
-139.6439676914519,
-151.04984241282324,
-161.23955261895594,
@ -610,7 +611,7 @@
51.3983185634814,
67.88561601251583,
83.82633839751202,
99.09214039482086,
99.09214039482087,
113.56011074290619,
127.11376185155231,
139.64396769145142,
@ -667,7 +668,7 @@
-151.04984241282355,
-139.6439676914518,
-127.1137618515527,
-113.56011074290548,
-113.5601107429055,
-99.09214039482131,
-83.82633839751311,
-67.88561601251568,
@ -686,7 +687,7 @@
139.64396769145233,
151.0498424128232,
161.2395526189559,
170.13105675472167,
170.13105675472164,
177.6527656569399,
183.7441189482236,
188.3560726335284,
@ -700,7 +701,7 @@
170.1310567547216,
161.23955261895586,
151.04984241282312,
139.64396769145227,
139.64396769145225,
127.11376185155324,
113.56011074290606,
99.09214039482075,
@ -837,14 +838,14 @@
188.35607263352813,
183.7441189482236,
177.65276565694043,
170.13105675472167,
170.13105675472164,
161.2395526189559,
151.0498424128232,
139.64396769145233,
127.11376185155329,
113.56011074290502,
99.09214039482083,
83.82633839751259,
83.8263383975126,
67.88561601251514,
51.39831856348202,
34.49719207509632,
@ -856,7 +857,8 @@
-67.88561601251568,
-83.82633839751188
],
"file_path": "generated:sine-wave"
"file_path": "generated:sine-wave",
"use_last": false
},
{
"id": 401,
@ -892,7 +894,7 @@
5.09980167540335,
5.928784854272076,
6.7100329435632435,
7.437255793028317,
7.437255793028318,
8.104598231883518,
8.70668721120218,
9.238675064545419,
@ -943,7 +945,7 @@
-10.075813279025667,
-9.696278538521907,
-9.238675064545415,
-8.706687211202178,
-8.706687211202176,
-8.10459823188352,
-7.437255793028321,
-6.710032943563246,
@ -973,7 +975,7 @@
10.718732373371513,
10.762057251873964,
10.718732373371514,
10.58910656431125,
10.589106564311248,
10.37422349548898,
10.075813279025667,
9.696278538521907,
@ -1049,7 +1051,7 @@
9.696278538521907,
9.238675064545422,
8.706687211202185,
8.104598231883523,
8.104598231883521,
7.437255793028323,
6.71003294356325,
5.928784854272083,
@ -1190,8 +1192,8 @@
9.238675064545424,
8.706687211202166,
8.104598231883525,
7.437255793028327,
6.710032943563254,
7.437255793028328,
6.710032943563253,
5.928784854272055,
5.099801675403362,
4.229757892079114,
@ -1225,7 +1227,7 @@
-9.238675064545426,
-8.706687211202167,
-8.104598231883527,
-7.437255793028355,
-7.437255793028356,
-6.710032943563254,
-5.928784854272056,
-5.099801675403363,
@ -1297,7 +1299,7 @@
-8.104598231883529,
-7.437255793028303,
-6.710032943563257,
-5.928784854272058,
-5.928784854272059,
-5.0998016754033655,
-4.229757892079153,
-3.3256585852652147,
@ -1311,7 +1313,7 @@
4.229757892079088,
5.09980167540337,
5.928784854272062,
6.710032943563261,
6.71003294356326,
7.4372557930283065,
8.104598231883482,
8.706687211202171,
@ -1348,7 +1350,7 @@
-5.92878485427203,
-6.71003294356329,
-7.437255793028332,
-8.104598231883505,
-8.104598231883507,
-8.706687211202192,
-9.23867506454541,
-9.69627853852188,
@ -1360,7 +1362,7 @@
-10.71873237337151,
-10.589106564311251,
-10.374223495488975,
-10.075813279025672,
-10.075813279025674,
-9.696278538521929,
-9.238675064545427,
-8.706687211202215,
@ -1387,7 +1389,7 @@
8.70668721120217,
9.238675064545427,
9.696278538521897,
10.075813279025672,
10.075813279025674,
10.374223495488975,
10.589106564311237,
10.718732373371518,
@ -1434,7 +1436,7 @@
-9.696278538521899,
-9.23867506454543,
-8.706687211202215,
-8.104598231883534,
-8.104598231883532,
-7.437255793028362,
-6.710032943563201,
-5.928784854272062,
@ -1450,11 +1452,11 @@
3.3256585852652147,
4.229757892079083,
5.0998016754033655,
5.928784854272058,
5.928784854272059,
6.710032943563257,
7.437255793028303,
8.104598231883479,
8.706687211202214,
8.706687211202212,
9.238675064545427,
9.696278538521895,
10.075813279025672,
@ -1468,7 +1470,8 @@
10.07581327902566,
9.696278538521915
],
"file_path": "generated:sine-wave-velocity"
"file_path": "generated:sine-wave-velocity",
"use_last": false
}
],
"load_patterns": [
@ -1538,6 +1541,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -1555,6 +1559,7 @@
"pattern_ids": [
200
],
"pattern_factors": {},
"control_node": 3,
"control_dof": 1,
"target_disp": 43.2,
@ -1580,6 +1585,7 @@
"pattern_ids": [
400
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 1000,
"system": "BandGeneral",
@ -1595,6 +1601,8 @@
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": 0.02,
"preload_case_ids": [
1

View file

@ -4,7 +4,7 @@
"name": "Moment-Curvature (OpenSees Ex 2)",
"description": "RC column fibre section — constant axial P + DisplacementControl curvature pushover. Kip-in-ksi units throughout.",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -251,6 +251,7 @@
"section_id": 1
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -317,6 +318,7 @@
1,
2
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 3,
"target_disp": 0.0019047619047619052,
@ -329,7 +331,8 @@
"algorithm": "Newton",
"test": "NormUnbalance",
"tolerance": 1e-09,
"max_iter": 25
"max_iter": 25,
"preload_case_ids": []
}
]
}

View file

@ -14,7 +14,7 @@ linear reference moment pattern (Mz = 1 kip·in) is added and
DisplacementControl on DOF 3 ramps the curvature to μ·Ky where
μ = 15 and Ky is the elastic yield curvature estimate.
Units: kip, in, ksi (UnitSystem.US_IN_KIP).
Units: kip, in, ksi (UnitSystem.IMPERIAL).
GUI walkthrough: File → Open → moment_curvature.osmodel, Options →
Set Display Units → US (in, kip, kip·s²/in, s, ksi), Analyze → Run →
@ -83,7 +83,7 @@ def build_moment_curvature() -> Project:
"RC column fibre section — constant axial P + DisplacementControl "
"curvature pushover. Kip-in-ksi units throughout."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2, ndf=3,
coord_systems=[

View file

@ -4,7 +4,7 @@
"name": "Portal Frame",
"description": "",
"author": "Ozan",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 3,
"ndf": 6,
@ -161,7 +161,8 @@
"Iz": 0.000416,
"Iy": 0.000129,
"G": 80000000000.0,
"J": 2.04e-06
"J": 2.04e-06,
"shape": null
}
],
"elements": [
@ -175,7 +176,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -187,7 +189,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -199,9 +202,11 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -418,7 +423,8 @@
0.0,
0.0
],
"file_path": null
"file_path": null,
"use_last": false
}
],
"load_patterns": [
@ -472,6 +478,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",
@ -496,6 +503,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 200,
"system": "BandGeneral",
@ -510,7 +518,12 @@
"tolerance": 1e-06,
"max_iter": 25,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.0
"rayleigh_beta_k": 0.0,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": null,
"preload_case_ids": [],
"remove_patterns": []
}
]
}

View file

@ -59,7 +59,7 @@ def _sine_pulse_factors() -> list[float]:
def build_portal_frame() -> Project:
"""A two-column, one-beam steel portal frame with static + dynamic cases."""
return Project(
meta=ProjectMeta(name="Portal Frame", author="Ozan", units=UnitSystem.SI_M_N),
meta=ProjectMeta(name="Portal Frame", author="Ozan", units=UnitSystem.METRIC),
ndm=3,
ndf=6,
nodes=[

View file

@ -4,7 +4,7 @@
"name": "Portal Pushover",
"description": "",
"author": "Ozan",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 3,
"ndf": 6,
@ -231,7 +231,8 @@
"Iz": 0.000416,
"Iy": 0.000129,
"G": 80000000000.0,
"J": 2.04e-06
"J": 2.04e-06,
"shape": null
}
],
"elements": [
@ -285,9 +286,11 @@
],
"section_id": 3,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -327,6 +330,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"control_node": 3,
"control_dof": 1,
"target_disp": 0.15,
@ -340,7 +344,8 @@
"algorithm": "Newton",
"test": "NormDispIncr",
"tolerance": 1e-06,
"max_iter": 25
"max_iter": 25,
"preload_case_ids": []
},
{
"id": 2,

View file

@ -64,7 +64,7 @@ def build_portal_pushover() -> Project:
return Project(
meta=ProjectMeta(name="Portal Pushover", author="Ozan",
units=UnitSystem.SI_M_N),
units=UnitSystem.METRIC),
ndm=3, ndf=6,
nodes=[
Node(id=1, name="Base-L", coords=(0.0, 0.0, 0.0),

View file

@ -4,7 +4,7 @@
"name": "RC Frame Earthquake (OpenSees Ex 3.3)",
"description": "Ex 3 gravity + uniform base excitation (horizontal, 4-s synthetic record peaking at ~0.35 g) + Rayleigh beta_k",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -313,7 +313,8 @@
"Iz": 8640.0,
"Iy": 8640.0,
"G": 1500.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -355,9 +356,11 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -455,7 +458,7 @@
-0.07226305111525733,
-0.08816778784387092,
-0.10268206588930337,
-0.11557698641636836,
-0.11557698641636838,
-0.12664918882530235,
-0.13572405786990283,
-0.142658477444273,
@ -489,7 +492,7 @@
0.14970400926424074,
0.14734308760930329,
0.14265847744427299,
0.13572405786990302,
0.135724057869903,
0.12664918882530243,
0.11557698641636846,
0.10268206588930347,
@ -504,7 +507,7 @@
-0.0552186829027018,
-0.0722630511152573,
-0.08816778784387089,
-0.10268206588930313,
-0.10268206588930316,
-0.11557698641636852,
-0.12664918882530232,
-0.13572405786990294,
@ -566,7 +569,7 @@
-0.14265847744427307,
-0.1357240578699028,
-0.12664918882530243,
-0.11557698641636868,
-0.11557698641636867,
-0.10268206588930333,
-0.08816778784387108,
-0.0722630511152575,
@ -616,12 +619,12 @@
-0.08652674043787481,
-0.08129819692830416,
-0.07492000704231337,
-0.06752087821731563,
-0.05924239844431021,
-0.06752087821731562,
-0.059242398444310215,
-0.05023649120795737,
-0.04066277069740133,
-0.030685841350052333,
-0.020472585578247403,
-0.0204725855782474,
-0.010189482631897374,
-9.832592927142318e-17,
0.009937903409330418,
@ -642,7 +645,7 @@
0.05947903147792919,
0.05481264807294881,
0.04939932978399098,
0.043342664598141574,
0.04334266459814158,
0.03675380211118236,
0.029749518558492356,
0.02245024111907521,
@ -666,9 +669,9 @@
-0.04631442669186875,
-0.04351578902386234,
-0.04010178999412147,
-0.03614132172945704,
-0.036141321729457034,
-0.03171017082019282,
-0.02688965604775296,
-0.026889656047752963,
-0.021765212731031044,
-0.016424947276336123,
-0.010958185402089994,
@ -682,7 +685,7 @@
0.027293196958740988,
0.03033908626567152,
0.03283256872166209,
0.034748063307665326,
0.03474806330766532,
0.03606971177513051,
0.03679138802438222,
0.03691655417444788,
@ -720,7 +723,7 @@
-0.016973231331797612,
-0.014392995708504558,
-0.011650078858431393,
-0.008791640742480778,
-0.008791640742480776,
-0.005865493972298641,
-0.002919335651562286,
-3.943919054879792e-17,
@ -729,7 +732,7 @@
0.008156387432977339,
0.010541427274178315,
0.012701774131668711,
0.014608995592985858,
0.01460899559298586,
0.016239342654524213,
0.01757400763590476,
0.01859929800432925,
@ -742,7 +745,7 @@
0.01704102783102496,
0.015704086601509296,
0.014153144944791883,
0.012417881316069912,
0.012417881316069914,
0.010530140607703934,
0.008523379771289316,
0.00643210177128294,
@ -754,7 +757,7 @@
-0.005967340521710147,
-0.007712272945193301,
-0.009292816470078945,
-0.010688169499041026,
-0.010688169499041028,
-0.011880956889869792,
-0.012857418649655518,
-0.013607537107403339,
@ -774,7 +777,8 @@
-0.003139572682582101,
-0.0015626077711816495
],
"file_path": null
"file_path": null,
"use_last": false
}
],
"load_patterns": [
@ -830,6 +834,7 @@
1,
2
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 400,
"system": "BandGeneral",
@ -844,7 +849,12 @@
"tolerance": 1e-12,
"max_iter": 10,
"rayleigh_alpha_m": 0.0,
"rayleigh_beta_k": 0.000625
"rayleigh_beta_k": 0.000625,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": null,
"preload_case_ids": [],
"remove_patterns": []
}
]
}

View file

@ -4,7 +4,7 @@
"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)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -313,7 +313,8 @@
"Iz": 8640.0,
"Iy": 8640.0,
"G": 1500.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -355,9 +356,11 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -408,6 +411,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",

View file

@ -92,7 +92,7 @@ def build_rc_frame_gravity() -> Project:
"1-bay 1-storey portal frame, nonlinear fibre columns + "
"elastic beam, 10-step LoadControl gravity pushdown."
),
units=UnitSystem.US_IN_KIP,
units=UnitSystem.IMPERIAL,
),
ndm=2, ndf=3,
coord_systems=[

View file

@ -4,7 +4,7 @@
"name": "RC Frame Pushover (OpenSees Ex 3.2)",
"description": "Ex 3 gravity preload (StaticCase) + lateral reference load + DisplacementControl pushover on node 3 (DOF 1) to 15 in, chained via preload_case_ids.",
"author": "OpenSees Examples Manual",
"units": "US (in, kip, kip·s²/in, s, ksi)"
"units": "Imperial (in, kip, kip·s²/in, s, ksi)"
},
"ndm": 2,
"ndf": 3,
@ -313,7 +313,8 @@
"Iz": 8640.0,
"Iy": 8640.0,
"G": 1500.0,
"J": 1.0
"J": 1.0,
"shape": null
}
],
"elements": [
@ -355,9 +356,11 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -445,6 +448,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 10,
"load_factor_increment": 0.1,
"system": "BandGeneral",
@ -462,6 +466,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"control_node": 3,
"control_dof": 1,
"target_disp": 15.0,

View file

@ -4,7 +4,7 @@
"name": "SDOF Pushover",
"description": "",
"author": "Ozan",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 3,
"ndf": 6,
@ -121,7 +121,8 @@
"Iz": 0.0002,
"Iy": 4.5e-05,
"G": 80000000000.0,
"J": 8.5e-07
"J": 8.5e-07,
"shape": null
}
],
"elements": [
@ -135,9 +136,11 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -177,6 +180,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"control_node": 2,
"control_dof": 1,
"target_disp": 0.1,
@ -189,7 +193,8 @@
"algorithm": "Newton",
"test": "NormDispIncr",
"tolerance": 1e-06,
"max_iter": 25
"max_iter": 25,
"preload_case_ids": []
},
{
"id": 2,

View file

@ -48,7 +48,7 @@ from otko.services import load_project, save_project
def build_sdof() -> Project:
return Project(
meta=ProjectMeta(name="SDOF Pushover", author="Ozan",
units=UnitSystem.SI_M_N),
units=UnitSystem.METRIC),
ndm=3, ndf=6,
nodes=[
Node(id=1, name="Base", coords=(0.0, 0.0, 0.0),

View file

@ -4,7 +4,7 @@
"name": "Space Frame 3D",
"description": "",
"author": "Ozan",
"units": "SI (m, N, kg, s, Pa)"
"units": "Metric (m, N, kg, s, Pa)"
},
"ndm": 3,
"ndf": 6,
@ -348,7 +348,8 @@
"Iz": 0.00025,
"Iy": 0.00025,
"G": 80000000000.0,
"J": 0.0004
"J": 0.0004,
"shape": null
},
{
"id": 2,
@ -359,7 +360,8 @@
"Iz": 0.0003,
"Iy": 8e-05,
"G": 80000000000.0,
"J": 1e-06
"J": 1e-06,
"shape": null
}
],
"elements": [
@ -373,7 +375,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 2,
@ -385,7 +388,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 3,
@ -397,7 +401,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 4,
@ -409,7 +414,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 5,
@ -421,7 +427,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 6,
@ -433,7 +440,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 7,
@ -445,7 +453,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 8,
@ -457,7 +466,8 @@
],
"section_id": 1,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 9,
@ -469,7 +479,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 10,
@ -481,7 +492,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 11,
@ -493,7 +505,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 12,
@ -505,7 +518,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 13,
@ -517,7 +531,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 14,
@ -529,7 +544,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 15,
@ -541,7 +557,8 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
},
{
"id": 16,
@ -553,9 +570,11 @@
],
"section_id": 2,
"geom_transf": "Linear",
"rho": 0.0
"rho": 0.0,
"consistent_mass": false
}
],
"mp_constraints": [],
"time_series": [
{
"id": 1,
@ -653,7 +672,7 @@
-0.29326050060188424,
-0.3555645611718062,
-0.4115042921209622,
-0.46028029767148104,
-0.4602802976714811,
-0.5012157143407345,
-0.5337653150252811,
-0.557522431249662,
@ -663,7 +682,7 @@
-0.5615384725351046,
-0.5402796151704672,
-0.5107978730732473,
-0.473659120634178,
-0.47365912063417787,
-0.42954246541985186,
-0.37922816465313647,
-0.3235841034221959,
@ -687,7 +706,7 @@
0.4906740795248149,
0.4799109935380196,
0.46174240873333633,
0.43654625061930163,
0.4365462506193016,
0.40480613582123315,
0.367102454112839,
0.32410204140538085,
@ -702,7 +721,7 @@
-0.16470790295421026,
-0.21419825881788915,
-0.2597053123214179,
-0.3005638423432181,
-0.30056384234321815,
-0.33618996805592183,
-0.3660893065503416,
-0.3898636224828937,
@ -764,10 +783,10 @@
-0.2882327405527284,
-0.2725045822392421,
-0.25269150009501856,
-0.2291557899194038,
-0.22915578991940377,
-0.20231370964878448,
-0.17262826564213357,
-0.14060135458277695,
-0.14060135458277698,
-0.10676539250226193,
-0.07167456884782708,
-0.03589586768362362,
@ -814,8 +833,8 @@
-0.210525969348039,
-0.1990380801906294,
-0.18456655167452068,
-0.1673760056265102,
-0.14777047796350654,
-0.16737600562651017,
-0.14777047796350656,
-0.12608814977607422,
-0.10269560775234517,
-0.07798172999451634,
@ -840,7 +859,7 @@
0.17010510853326,
0.15773721930062054,
0.14304555980288974,
0.1262899700796923,
0.12628997007969234,
0.10775947186525829,
0.08776736334007407,
0.06664599372956057,
@ -864,9 +883,9 @@
-0.15376873454743234,
-0.14537794939239213,
-0.13480790602063883,
-0.12225188492657595,
-0.12225188492657593,
-0.10793195476209022,
-0.09209512390578932,
-0.09209512390578933,
-0.07500914826118861,
-0.05695806544062365,
-0.0382375289144052,
@ -875,7 +894,7 @@
0.018910877417136193,
0.037288490913057575,
0.054850768151679684,
0.07133196903235188,
0.07133196903235187,
0.08648665679303691,
0.1000933005365811,
0.11195745718335284,
@ -904,7 +923,7 @@
-0.0739146103417395,
-0.08554333791262553,
-0.09568287328255036,
-0.10419251035749608,
-0.10419251035749609,
-0.11095890755818626,
-0.11589752681422662,
-0.11895360205510225,
@ -918,7 +937,7 @@
-0.07883379020837138,
-0.06726652633324699,
-0.054786883743239034,
-0.0416023242747564,
-0.041602324274756394,
-0.027928794018131982,
-0.013987224628675814,
-1.9014085379808582e-16,
@ -927,7 +946,7 @@
0.040063148664072165,
0.05210106213902843,
0.06317008686143476,
0.07310841606785966,
0.07310841606785967,
0.0817740280096844,
0.08904667019366247,
0.09482947682594194,
@ -945,14 +964,14 @@
0.04682284312839545,
0.035554843973652946,
0.023868952780831416,
0.011953985695908748,
0.011953985695908746,
5.108354497396276e-16,
-0.011804707389018669,
-0.023276536275777145,
-0.034239409087743526,
-0.04452744329813354,
-0.05398743030141857,
-0.0624810842126653,
-0.06248108421266531,
-0.06988702813284133,
-0.076102489952229,
-0.08104468467631713,
@ -972,7 +991,8 @@
-0.020399266308586933,
-0.010216306509086727
],
"file_path": null
"file_path": null,
"use_last": false
}
],
"load_patterns": [
@ -1082,6 +1102,7 @@
"pattern_ids": [
1
],
"pattern_factors": {},
"n_steps": 1,
"load_factor_increment": 1.0,
"system": "BandGeneral",
@ -1106,6 +1127,7 @@
"pattern_ids": [
2
],
"pattern_factors": {},
"dt": 0.01,
"n_steps": 400,
"system": "BandGeneral",
@ -1120,7 +1142,12 @@
"tolerance": 1e-06,
"max_iter": 25,
"rayleigh_alpha_m": 0.524,
"rayleigh_beta_k": 0.00106
"rayleigh_beta_k": 0.00106,
"rayleigh_beta_k_init": 0.0,
"rayleigh_beta_k_comm": 0.0,
"rayleigh_mode1_damping": null,
"preload_case_ids": [],
"remove_patterns": []
},
{
"id": 4,

View file

@ -106,7 +106,7 @@ def build_space_frame() -> Project:
add_el(b, d, sec=2, name=f"Beam-{story_base}-Y2")
return Project(
meta=ProjectMeta(name="Space Frame 3D", author="Ozan", units=UnitSystem.SI_M_N),
meta=ProjectMeta(name="Space Frame 3D", author="Ozan", units=UnitSystem.METRIC),
ndm=3, ndf=6,
nodes=nodes,
sections=[