docs: align FESA agents with minimal reference cases

This commit is contained in:
KOKO\Mimi
2026-08-12 03:31:08 +09:00
parent 5c08f1cf83
commit 188bf31e44
27 changed files with 438 additions and 593 deletions
+19 -51
View File
@@ -16,7 +16,7 @@ I/O Definition Agent는 Abaqus input file subset, 내부 solver model mapping, o
- model data와 history data를 내부 solver 개념으로 매핑한다.
- node, element, set, material, section, boundary condition, load, step, output request의 의미 계약을 정의한다.
- `results.h5`의 authoritative HDF5 schema를 정의한다.
- FESA HDF5 dataset을 `reference/<model-id>/` 아래 Abaqus reference CSV rows와 비교하기 위한 deterministic row schema를 정의한다.
- 기능이 선언한 existing Abaqus CSV와 비교하기 위한 최소 source-ID/component mapping을 정의한다.
수행하지 않는다:
- parser를 구현하지 않는다.
@@ -123,58 +123,25 @@ I/O Definition Agent는 Abaqus input file subset, 내부 solver model mapping, o
| element_force | /steps/<step>/frames/<frame>/field_outputs/element_forces | <nrow, ncomp> | float64 | component_names, element_ids, location | element | feature-dependent |
| stress | /steps/<step>/frames/<frame>/field_outputs/S | <nrow, ncomp> | float64 | component_names, element_ids, integration_points | integration_point | feature-dependent |
## FESA HDF5 to Reference CSV Comparison Schema
## FESA HDF5 to Reference CSV Comparison Mapping
FESA solver output은 `results.h5`이다. Comparison tooling reads required HDF5 datasets and maps them to deterministic row records that can be matched against Abaqus reference CSV files under `reference/<model-id>/`.
FESA solver output은 `results.h5`이다. 기능이 blocking 또는 warning-only로 선언한
quantity에 대해서만 existing CSV path와 다음 mapping을 정의한다.
공통 규칙:
- reference_root: `reference/<model-id>/`
- hdf5_schema_version: <version>
- reference_csv_schema_version: <version>
- sort_order: step, frame, id, location, component
- numeric_format: <precision and exponent policy>
- missing_component_policy: 0 | N/A | omitted, feature-specific
- hdf5_dataset_source: HDF5 dataset path를 각 row schema 또는 report에 기록한다.
| field | contract |
| --- | --- |
| reference_input | exact existing `.inp` path |
| reference_csv | exact existing required CSV path |
| hdf5_dataset | authoritative FESA dataset path |
| source_identity | node/element source label used for exact matching |
| components | required CSV columns and corresponding HDF5 components |
| row_precheck | missing/extra/duplicate/nonfinite required rows fail before tolerance |
| behavior | blocking or warning-only |
| tolerance | upstream-approved formula |
### displacement rows / `<model-id>_displacements.csv`
| column | type | description |
| --- | --- | --- |
| step | string | step name or index |
| frame | integer | frame or increment id |
| node_id | integer/string | Abaqus node label |
| ux | float | displacement component |
| uy | float | displacement component or 0/N/A |
| uz | float | displacement component or 0/N/A |
### reaction rows / `<model-id>_reactions.csv`
| column | type | description |
| --- | --- | --- |
| step | string | step name or index |
| frame | integer | frame or increment id |
| node_id | integer/string | Abaqus node label |
| rfx | float | reaction component |
| rfy | float | reaction component or 0/N/A |
| rfz | float | reaction component or 0/N/A |
### internal force rows / `<model-id>_internalforces.csv`
| column | type | description |
| --- | --- | --- |
| step | string | step name or index |
| frame | integer | frame or increment id |
| element_id | integer/string | Abaqus element label |
| location | string | element/nodal/integration_point location |
| component | string | force component name |
| value | float | component value |
### stress rows / `<model-id>_stresses.csv`
| column | type | description |
| --- | --- | --- |
| step | string | step name or index |
| frame | integer | frame or increment id |
| element_id | integer/string | Abaqus element label |
| integration_point | integer/string | integration point id or N/A |
| component | string | stress component name |
| value | float | stress value |
Row order alone으로 대응하지 않는다. Canonical filename, reference CSV schema version,
README, metadata, provenance 또는 single-step/final-frame case의 duplicated unit/coordinate/
step-frame columns를 요구하지 않는다.
## Validation Rules
- required_fields: <required input fields>
@@ -208,4 +175,5 @@ FESA solver output은 `results.h5`이다. Comparison tooling reads required HDF5
- 내부 모델 계약은 semantic fields로 작성하고 C++ class/function/API를 확정하지 않는다.
- `results.h5`가 authoritative solver output임을 명시해야 한다.
- HDF5 schema는 dataset path, dtype/shape, required attributes, ID field, component naming, coordinate system, units, step/frame identity, quantity location을 포함해야 한다.
- Reference CSV comparison row schema는 column name, stable sort order, ID field, component naming, coordinate system, units, step/frame identity, quantity location을 포함해야 한다.
- Reference CSV comparison mapping은 exact path, source-ID column, required component columns,
HDF5 projection, row prechecks와 tolerance를 포함해야 한다.