feat(E03): 기본 물성 · 노면 하중 = ground_defaults.json 읽음(성토 φ 28) (532-2 2차 ⑦)

- E03 Types DEFAULT_MATERIALS · DEFAULT_ROAD_SURCHARGE_KPA 를 M02 마스터 층 파일에서 — E02 초기값과 한 벌 · E04 기본도 같이 따라감

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 03:26:17 +09:00
co-authored by Claude Opus 5.5
parent f243524436
commit b33e0cd9ed
+13 -48
View File
@@ -4,6 +4,8 @@
E04 가 이 파일을 그대로 import — 이름 · 열쇠를 바꾸지 않음.
"""
import json
from pathlib import Path
from typing import Literal, TypedDict
GAMMA_W = 9.81 # 물 단위중량 kN/m³
@@ -30,54 +32,6 @@ class Surcharge(TypedDict):
q: float # 연직 등분포 kPa
# 요구서 345 6장 기본값(사용자가 E02 에서 바꿈) — 사전조사 후보의 보수 쪽.
DEFAULT_MATERIALS: list[Material] = [
{
"id": "weathered_soil",
"name": "풍화토",
"gamma_t": 18.0,
"gamma_sat": 19.0,
"c": 15.0,
"phi": 30.0,
},
{
"id": "weathered_rock",
"name": "풍화암",
"gamma_t": 20.0,
"gamma_sat": 21.0,
"c": 30.0,
"phi": 33.0,
},
{
"id": "soft_rock",
"name": "연암",
"gamma_t": 24.0,
"gamma_sat": 24.5,
"c": 150.0,
"phi": 35.0,
},
{
"id": "hard_rock",
"name": "경암",
"gamma_t": 26.0,
"gamma_sat": 26.0,
"c": 300.0,
"phi": 40.0,
},
{"id": "fill", "name": "성토", "gamma_t": 18.0, "gamma_sat": 19.0, "c": 10.0, "phi": 25.0},
{
"id": "colluvium",
"name": "붕적토",
"gamma_t": 17.5,
"gamma_sat": 18.5,
"c": 5.0,
"phi": 27.0,
},
]
DEFAULT_ROAD_SURCHARGE_KPA = 10.0 # 노면 하중 기본
def material(raw: dict) -> Material:
"""밖에서 온 물성 한 줄을 꼴에 맞춤 — 빠진 γsat 는 γt · 음수 · 범위 밖은 오류."""
gamma_t = float(raw["gamma_t"])
@@ -122,3 +76,14 @@ def surcharges(raw: list[dict] | None) -> list[Surcharge]:
if x1 > x0:
out.append({"x0": x0, "x1": x1, "q": float(item["q"])})
return out
# 기본 물성 · 노면 하중 = M02 마스터 층 `ground_defaults.json`(E02 초기값과 한 벌 · 사용자가 E02 에서 바꿈).
_DEFAULTS = json.loads(
(
Path(__file__).resolve().parents[1]
/ "resources/master_template/stability/ground_defaults.json"
).read_text(encoding="utf-8")
)
DEFAULT_MATERIALS: list[Material] = [material(m) for m in _DEFAULTS["materials"]]
DEFAULT_ROAD_SURCHARGE_KPA = float(_DEFAULTS["road_surcharge_kpa"]) # 노면 하중 기본