style: resolve the remaining ruff findings
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / type (pull_request) Has been cancelled
CI / test-headless (macos-latest, 3.10) (pull_request) Has been cancelled
CI / test-headless (macos-latest, 3.11) (pull_request) Has been cancelled
CI / test-headless (macos-latest, 3.12) (pull_request) Has been cancelled
CI / test-headless (ubuntu-latest, 3.10) (pull_request) Has been cancelled
CI / test-headless (ubuntu-latest, 3.11) (pull_request) Has been cancelled
CI / test-headless (ubuntu-latest, 3.12) (pull_request) Has been cancelled
CI / test-headless (windows-latest, 3.10) (pull_request) Has been cancelled
CI / test-headless (windows-latest, 3.11) (pull_request) Has been cancelled
CI / test-headless (windows-latest, 3.12) (pull_request) Has been cancelled
CI / test-gui (pull_request) Has been cancelled
CI / test-integration (macos-latest) (pull_request) Has been cancelled
CI / test-integration (ubuntu-latest) (pull_request) Has been cancelled
CI / test-integration (windows-latest) (pull_request) Has been cancelled
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / type (pull_request) Has been cancelled
CI / test-headless (macos-latest, 3.10) (pull_request) Has been cancelled
CI / test-headless (macos-latest, 3.11) (pull_request) Has been cancelled
CI / test-headless (macos-latest, 3.12) (pull_request) Has been cancelled
CI / test-headless (ubuntu-latest, 3.10) (pull_request) Has been cancelled
CI / test-headless (ubuntu-latest, 3.11) (pull_request) Has been cancelled
CI / test-headless (ubuntu-latest, 3.12) (pull_request) Has been cancelled
CI / test-headless (windows-latest, 3.10) (pull_request) Has been cancelled
CI / test-headless (windows-latest, 3.11) (pull_request) Has been cancelled
CI / test-headless (windows-latest, 3.12) (pull_request) Has been cancelled
CI / test-gui (pull_request) Has been cancelled
CI / test-integration (macos-latest) (pull_request) Has been cancelled
CI / test-integration (ubuntu-latest) (pull_request) Has been cancelled
CI / test-integration (windows-latest) (pull_request) Has been cancelled
Auto-fixes (UP037, UP038, F401, I001, SIM105, RUF100) plus hand-fixes: drop the now-unused `Union` imports, annotate mutable class attributes with ClassVar, raise ValidationError instead of blind Exception in the zero-length test, delete two dead locals, and bind the per-iteration grid-builder closures to their loop variables (B023).
This commit is contained in:
parent
184bb4662b
commit
61b850bf46
126 changed files with 359 additions and 397 deletions
|
|
@ -11,7 +11,7 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ def test_basic_truss_matches_opensees_tcl_reference() -> None:
|
|||
a linear rescale of the Tcl model — any deviation would flag a
|
||||
real solver/translation issue.
|
||||
"""
|
||||
from examples.basic_truss import build_basic_truss, IN_TO_M
|
||||
from examples.basic_truss import IN_TO_M, build_basic_truss
|
||||
|
||||
proj = build_basic_truss()
|
||||
runner = OpenSeesRunner(proj)
|
||||
|
|
@ -45,6 +45,7 @@ def test_basic_truss_matches_opensees_tcl_reference() -> None:
|
|||
def test_basic_truss_round_trips(tmp_path) -> None: # type: ignore[no-untyped-def]
|
||||
"""The example project must survive save/load without any information loss."""
|
||||
from examples.basic_truss import build_basic_truss
|
||||
|
||||
from otko.services import load_project, save_project
|
||||
|
||||
p = build_basic_truss()
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import pytest
|
|||
|
||||
ops = pytest.importorskip("openseespy.opensees") # skip if OpenSeesPy not installed
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticBeamColumn,
|
||||
ElasticSection,
|
||||
LinearTimeSeries,
|
||||
|
|
@ -20,8 +20,8 @@ from otko.core import ( # noqa: E402
|
|||
Project,
|
||||
StaticCase,
|
||||
)
|
||||
from otko.services import OpenSeesRunner, evaluate_combination # noqa: E402
|
||||
from otko.services.results import StaticResults # noqa: E402
|
||||
from otko.services import OpenSeesRunner, evaluate_combination
|
||||
from otko.services.results import StaticResults
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
Concrete04,
|
||||
FiberSection,
|
||||
ForceBeamColumn,
|
||||
|
|
@ -32,7 +32,7 @@ from otko.core import ( # noqa: E402
|
|||
StaticCase,
|
||||
UnitSystem,
|
||||
)
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticUniaxial,
|
||||
LinearTimeSeries,
|
||||
NodalLoad,
|
||||
|
|
@ -21,7 +21,7 @@ from otko.core import ( # noqa: E402
|
|||
StaticCase,
|
||||
TrussElement,
|
||||
)
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import ModalCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import ModalCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import ModalCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import ModalCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import ModalCase, StaticCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import ModalCase, StaticCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -29,7 +29,6 @@ def _reload(proj, tmp_path): # type: ignore[no-untyped-def]
|
|||
def test_elastic_frame_gravity_reactions(tmp_path) -> None: # type: ignore[no-untyped-def]
|
||||
"""ΣFy at base = total applied gravity (distributed w × beam × floors)."""
|
||||
from examples.elastic_frame import (
|
||||
BAY,
|
||||
LOAD_F1,
|
||||
LOAD_F2,
|
||||
LOAD_F3,
|
||||
|
|
@ -70,7 +69,6 @@ def test_elastic_frame_gravity_reactions(tmp_path) -> None: # type: ignore[no-u
|
|||
def test_elastic_frame_gravity_plus_lateral_reactions(tmp_path) -> None: # type: ignore[no-untyped-def]
|
||||
"""ΣFx at base must equal -(lateral applied) within PDelta tolerance."""
|
||||
from examples.elastic_frame import (
|
||||
BAY,
|
||||
LOAD_F1,
|
||||
LOAD_F2,
|
||||
LOAD_F3,
|
||||
|
|
@ -120,5 +118,5 @@ def test_elastic_frame_modal_periods(tmp_path) -> None: # type: ignore[no-untyp
|
|||
# 0.1930, 0.1562, 0.130 s. Our solve nails these within 1.5%.
|
||||
expected = [1.040, 0.3526, 0.1930, 0.1562, 0.130]
|
||||
periods = [2.0 * math.pi / math.sqrt(v) for v in r.eigenvalues]
|
||||
for i, (T, T_ref) in enumerate(zip(periods, expected), start=1):
|
||||
assert T == pytest.approx(T_ref, rel=0.02), f"T{i} = {T:.4f} s, reference {T_ref:.4f} s"
|
||||
for i, (T, T_ref) in enumerate(zip(periods, expected, strict=False), start=1):
|
||||
assert pytest.approx(T_ref, rel=0.02) == T, f"T{i} = {T:.4f} s, reference {T_ref:.4f} s"
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import PushoverCase, TransientCase # noqa: E402
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.core import PushoverCase, TransientCase
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -8,13 +8,11 @@ behaviour is exercised by the Phase 9 pushover tests.
|
|||
|
||||
from __future__ import annotations
|
||||
|
||||
import math
|
||||
|
||||
import pytest
|
||||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticUniaxial,
|
||||
FiberSection,
|
||||
LinearTimeSeries,
|
||||
|
|
@ -26,7 +24,7 @@ from otko.core import ( # noqa: E402
|
|||
StaticCase,
|
||||
ZeroLengthSectionElement,
|
||||
)
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -134,7 +132,7 @@ def test_pushover_drives_rotation_for_moment_curvature() -> None:
|
|||
|
||||
# Every (κ, M) point must satisfy M = E·I·κ (1 % tolerance allows
|
||||
# for the ~20-fibre discretisation of the rectangular section).
|
||||
for kappa, moment in zip(result.control_disp, result.base_shear):
|
||||
for kappa, moment in zip(result.control_disp, result.base_shear, strict=False):
|
||||
if abs(kappa) < 1e-12:
|
||||
continue
|
||||
expected_M = E * I * kappa
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services import load_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services import load_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -15,13 +15,13 @@ pytestmark = pytest.mark.slow
|
|||
def test_moment_curvature_example_round_trips_and_converges(tmp_path) -> None: # type: ignore[no-untyped-def]
|
||||
"""build_moment_curvature() → save → load → run → expected shape."""
|
||||
from examples.moment_curvature import (
|
||||
build_moment_curvature,
|
||||
COL_DEPTH,
|
||||
COVER,
|
||||
E_STEEL,
|
||||
FY,
|
||||
MU,
|
||||
NUM_INCR,
|
||||
build_moment_curvature,
|
||||
)
|
||||
|
||||
proj = build_moment_curvature()
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import pytest
|
|||
|
||||
ops = pytest.importorskip("openseespy.opensees") # skip if OpenSeesPy not installed
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticBeamColumn,
|
||||
ElasticSection,
|
||||
LinearTimeSeries,
|
||||
|
|
@ -18,7 +18,7 @@ from otko.core import ( # noqa: E402
|
|||
Project,
|
||||
StaticCase,
|
||||
)
|
||||
from otko.services import OpenSeesRunner # noqa: E402
|
||||
from otko.services import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -18,9 +18,8 @@ pytestmark = pytest.mark.slow
|
|||
def test_rc_frame_earthquake_runs_and_has_oscillatory_response(tmp_path) -> None: # type: ignore[no-untyped-def]
|
||||
"""Synthetic ground motion produces bounded, oscillatory response."""
|
||||
from examples.rc_frame_earthquake import (
|
||||
build_rc_frame_earthquake,
|
||||
DT,
|
||||
N_PTS,
|
||||
build_rc_frame_earthquake,
|
||||
)
|
||||
|
||||
proj = build_rc_frame_earthquake()
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ def test_rc_frame_gravity_matches_opensees_reference(tmp_path) -> None: # type:
|
|||
The column axial force is 180 kip compression (from the 180 kip
|
||||
load stepped onto each top node).
|
||||
"""
|
||||
from examples.rc_frame_gravity import build_rc_frame_gravity, P_LOAD
|
||||
from examples.rc_frame_gravity import P_LOAD, build_rc_frame_gravity
|
||||
|
||||
proj = build_rc_frame_gravity()
|
||||
proj.validate_references()
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import pytest
|
|||
|
||||
pytest.importorskip("openseespy")
|
||||
|
||||
from otko.services import load_project, save_project # noqa: E402
|
||||
from otko.services.opensees_runner import OpenSeesRunner # noqa: E402
|
||||
from otko.services import load_project, save_project
|
||||
from otko.services.opensees_runner import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -19,10 +19,11 @@ def test_rc_frame_pushover_reaches_target_with_fallback(tmp_path) -> None: # ty
|
|||
AND shows expected nonlinear shape.
|
||||
"""
|
||||
from examples.rc_frame_pushover import (
|
||||
build_rc_frame_pushover,
|
||||
D_STEP,
|
||||
D_TARGET,
|
||||
build_rc_frame_pushover,
|
||||
)
|
||||
|
||||
from otko.core import PushoverCase
|
||||
|
||||
proj = build_rc_frame_pushover()
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import pytest
|
|||
ops = pytest.importorskip("openseespy.opensees")
|
||||
h5py = pytest.importorskip("h5py")
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticUniaxial,
|
||||
ImposedSupportMotionPattern,
|
||||
Node,
|
||||
|
|
@ -33,7 +33,7 @@ from otko.core import ( # noqa: E402
|
|||
UniformExcitationPattern,
|
||||
ZeroLengthElement,
|
||||
)
|
||||
from otko.services import OpenSeesRunner # noqa: E402
|
||||
from otko.services import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -15,16 +15,16 @@ import math
|
|||
|
||||
import pytest
|
||||
|
||||
ops = pytest.importorskip("openseespy.opensees") # noqa: F401
|
||||
ops = pytest.importorskip("openseespy.opensees")
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticBeamColumn,
|
||||
ElasticSection,
|
||||
ModalCase,
|
||||
Node,
|
||||
Project,
|
||||
)
|
||||
from otko.services import OpenSeesRunner # noqa: E402
|
||||
from otko.services import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import pytest
|
|||
|
||||
ops = pytest.importorskip("openseespy.opensees") # skip if OpenSeesPy not installed
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ElasticBeamColumn,
|
||||
ElasticSection,
|
||||
LinearTimeSeries,
|
||||
|
|
@ -22,7 +22,7 @@ from otko.core import ( # noqa: E402
|
|||
Project,
|
||||
StaticCase,
|
||||
)
|
||||
from otko.services import OpenSeesRunner # noqa: E402
|
||||
from otko.services import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@ import math
|
|||
import numpy as np
|
||||
import pytest
|
||||
|
||||
ops = pytest.importorskip("openseespy.opensees") # noqa: F401
|
||||
h5py = pytest.importorskip("h5py") # noqa: F401
|
||||
ops = pytest.importorskip("openseespy.opensees")
|
||||
h5py = pytest.importorskip("h5py")
|
||||
|
||||
from otko.core import ( # noqa: E402
|
||||
from otko.core import (
|
||||
ConstantTimeSeries,
|
||||
ElasticBeamColumn,
|
||||
ElasticSection,
|
||||
|
|
@ -27,7 +27,7 @@ from otko.core import ( # noqa: E402
|
|||
StaticCase,
|
||||
TransientCase,
|
||||
)
|
||||
from otko.services import OpenSeesRunner # noqa: E402
|
||||
from otko.services import OpenSeesRunner
|
||||
|
||||
pytestmark = pytest.mark.slow
|
||||
|
||||
|
|
@ -51,7 +51,6 @@ def test_sdof_free_vibration_matches_cosine(tmp_path) -> None: # type: ignore[n
|
|||
# (already done), then verify dt-step Newmark integration of free
|
||||
# vibration starting from a static IC.
|
||||
F0 = 100.0
|
||||
u0 = F0 / k
|
||||
|
||||
project = Project(
|
||||
ndm=2,
|
||||
|
|
|
|||
Loading…
Reference in a new issue