docs: align FESA agents with minimal reference cases
This commit is contained in:
@@ -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를 포함해야 한다.
|
||||
|
||||
Reference in New Issue
Block a user