initial commit FESurrogateModelTutorial

This commit is contained in:
김경종
2026-05-21 17:03:51 +09:00
parent 93665d9ee6
commit 43b86669fa
122 changed files with 7929 additions and 0 deletions
@@ -0,0 +1,47 @@
from pathlib import Path
import pytest
from femsurrogate.fea.io import read_beam_example, read_expected_displacements
ROOT = Path(__file__).resolve().parents[1]
def test_read_beam_example_parses_cantilever_fixture():
model = read_beam_example(ROOT / "BeamExamples" / "CantileverBeam.txt")
assert model.metadata["Area"] == pytest.approx(1.0)
assert model.metadata["Izz"] == pytest.approx(0.0833333)
assert model.metadata["ElasticModulus"] == pytest.approx(2.05e11)
assert model.metadata["Poisson'sRatio"] == pytest.approx(0.3)
assert len(model.nodes) == 6
assert model.nodes[1].x == pytest.approx(0.0)
assert model.nodes[6].x == pytest.approx(5.0)
assert model.nodes[6].y == pytest.approx(0.0)
assert len(model.beams) == 5
assert model.beams[0].id == 1
assert model.beams[0].node_i == 1
assert model.beams[0].node_j == 2
assert model.beams[-1].node_i == 5
assert model.beams[-1].node_j == 6
assert model.fixed_nodes == (1,)
assert model.nodal_loads[6].fx == pytest.approx(0.0)
assert model.nodal_loads[6].fy == pytest.approx(-100000.0)
assert model.nodal_loads[6].mz == pytest.approx(0.0)
def test_read_expected_displacements_parses_reference_values():
displacements = read_expected_displacements(
ROOT / "BeamExamples" / "CantileverBeam_Displacements.txt"
)
assert len(displacements) == 6
assert displacements[1].ux == pytest.approx(0.0)
assert displacements[1].uy == pytest.approx(0.0)
assert displacements[1].rz == pytest.approx(0.0)
assert displacements[6].ux == pytest.approx(0.0)
assert displacements[6].uy == pytest.approx(-0.000244)
assert displacements[6].rz == pytest.approx(0.000073)