Files
AbaqusSubroutineDev/PROGRESS.md
T
2026-08-18 03:00:21 +09:00

140 lines
8.8 KiB
Markdown

# PROGRESS.md
## Current State
- Active objective: 3D Euler-Bernoulli beam Abaqus/Standard `UEL`
- Active phase: `phases/uel-3d-euler-beam`
- Active owner: unassigned
- Current status: completed Abaqus-facing UEL wrapper/interface correction after step 7 implementation review
- Next action: execute `phases/uel-3d-euler-beam/step8.md` validation-readiness step with corrected `VARIABLES=1` / `NSVARS>=1` contract
## Completed
- Completed the AI-agent-oriented Abaqus User Subroutine Manual index.
- Created `docs/AbaqusUserSubroutineManual/INDEX_DESIGN.md` with schema, generation, boundary, retrieval, and validation rules.
- Created `docs/AbaqusUserSubroutineManual/INDEX.md` with 115 unique leaf-section records across 69 Markdown chunks.
- Included explicit per-file source ranges, source pages, stable headings, summaries, keywords, and selected content anchors.
- Added Appendix A.1/A.2 records and regression checks for CREEP, the `1.3.2` chapter boundary, and the three-file `2.1.23 ALLOCATABLE ARRAYS` span.
- Used schema version 2 `products` lists sourced from explicit manual `Product:`/`Products:` declarations when present, including Aqua applicability for UWAVE, VWAVE, and utility topics.
- Declared the 69 unbundled manual chunks and matching source digest as mandatory external-local prerequisites.
- Created phase scaffold under `phases/uel-3d-euler-beam`.
- Added shared coordination files: `PLAN.md`, `PROGRESS.md`, `WORKNOTE.md`.
- Updated `AGENTS.md` to require agents to read and maintain the shared coordination files.
- Completed step 0 requirements for `uel-3d-euler-beam`.
- Created `docs/requirements/uel-3d-euler-beam.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 0 to `completed`.
- Completed step 1 research for `uel-3d-euler-beam`.
- Created `docs/research/uel-3d-euler-beam-research.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 1 to `completed`.
- Completed step 2 formulation for `uel-3d-euler-beam`.
- Created `docs/formulations/uel-3d-euler-beam.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 2 to `completed`.
- Completed step 3 numerical review for `uel-3d-euler-beam`.
- Created `docs/numerical-reviews/uel-3d-euler-beam.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 3 to `completed`.
- Completed step 4 interface contract for `uel-3d-euler-beam`.
- Created `docs/io-definitions/uel-3d-euler-beam.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 4 to `completed`.
- Completed step 5 test/reference model planning for `uel-3d-euler-beam`.
- Created `docs/reference-models/uel-3d-euler-beam.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 5 to `completed`.
- Completed step 6 RED no-Abaqus test creation for `uel-3d-euler-beam`.
- Created `tests/fortran/manifest.json`.
- Created `tests/fortran/uel_3d_euler_beam/test_support.f90`.
- Created `tests/fortran/uel_3d_euler_beam/test_kernel_stiffness.f90`.
- Created `tests/fortran/uel_3d_euler_beam/test_kernel_transform_modes.f90`.
- Created `tests/fortran/uel_3d_euler_beam/test_abi_static.f90`.
- Created `tests/fortran/uel_3d_euler_beam/test_invalid_inputs.f90`.
- Created `docs/build-test-reports/uel-3d-euler-beam-red.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 6 to `completed`.
- Completed step 7 Fortran implementation for `uel-3d-euler-beam`.
- Created `src/fortran/uel_3d_euler_beam_kernel.f90`.
- Created `src/fortran/uel_3d_euler_beam_abi_adapter.f90`.
- Added source-smoke no-Abaqus tests under `tests/fortran/`.
- Updated `tests/fortran/manifest.json` with the source-smoke tests.
- Fixed `scripts/validate_fortran.py` to create per-test build directories.
- Fixed `scripts/fortran_toolchain.py` to use `ComSpec`/absolute `cmd.exe` and a minimal Windows PATH for oneAPI env setup.
- Created `docs/build-test-reports/uel-3d-euler-beam-green.md`.
- Updated `phases/uel-3d-euler-beam/index.json` step 7 to `completed`.
- Completed ad hoc UEL ABI format research after user review feedback.
- Created `docs/abaqus-uel-subroutines-research.md`.
- Confirmed current source has no top-level Abaqus-callable `SUBROUTINE UEL(...)` wrapper under `src/fortran`.
- Confirmed `uel3deb_abi_static` is a no-Abaqus adapter, not the manual Abaqus UEL ABI.
- Identified a likely Abaqus input contract issue: documented `*USER ELEMENT, VARIABLES` must be greater than zero, so the current `NSVARS=0` / `VARIABLES=0` contract should be corrected before external Abaqus validation.
- Completed Abaqus-facing UEL ABI correction.
- Added `src/fortran/uel_3d_euler_beam_uel.for` with top-level fixed-form `SUBROUTINE UEL(...)`, `ABA_PARAM.INC`, manual Abaqus array dimensions, adapter delegation, and fatal `XIT` path.
- Updated `uel3deb_abi_static` to accept `NSVARS>=1`, use explicit/manual-style array bounds, and validate `LFLAGS(1)` and `LFLAGS(4)`.
- Updated no-Abaqus tests and wrapper source-smoke tests for the corrected contract.
- Updated `docs/io-definitions/uel-3d-euler-beam.md`, `docs/reference-models/uel-3d-euler-beam.md`, and `docs/corrections/uel-3d-euler-beam-uel-abi-correction.md`.
## In Progress
- None.
## Blocked
- None.
## Last Verification
Latest verification for the manual index documentation task:
```bash
python -c "import pathlib,re,yaml; t=pathlib.Path('docs/AbaqusUserSubroutineManual/INDEX.md').read_text(encoding='utf-8'); b=re.findall(r'```yaml\\n(.*?)\\n```',t,re.S); r=[yaml.safe_load(x) for x in b[1:]]; assert len(b)==116 and len(r)==115 and len({x['section_id'] for x in r})==115; print('PASS: 116 YAML blocks, 115 unique records')"
rg -n -g "AbaqusUserSubroutineManual_*.md" "^# (?:[0-9]+\\.[0-9]+\\.[0-9]+|A\\.[0-9]+) " docs/AbaqusUserSubroutineManual
python scripts/validate_workspace.py
python -m unittest discover -s scripts -p "test_*.py"
git diff --cached --check
```
Result:
- Final independent index validation passed: 69 source files; 115 ordered unique records; 116 valid YAML blocks; exact structural boundaries, source pages, headings, source-backed product applicability, anchors, source digest, and no placeholders.
- Explicit regressions passed for CREEP (`_002.md:96-249`, `_003.md:1-390`), `1.3.2` (`_059.md:178-374`, `_060.md:1-13`), and `2.1.23` (`_066.md:99-245`, `_067.md:1-383`, `_068.md:1-222`).
- UWAVE and VWAVE include their explicit Abaqus/Aqua applicability; all utility `products` lists match their source declarations.
- All 12 image paths referenced by the complete Markdown manual currently resolve under `images/`; images remain outside the Markdown-only line-location digest.
- Final `INDEX.md` SHA-256: `8C5548E1AC6BE2A0A704A9AD15F532510F67E47D64810683DED96CCE93C155BE`.
- `python scripts/validate_workspace.py`: passed; reference artifact validation succeeded and no Fortran validation commands were configured in the current working tree.
- `python -m unittest discover -s scripts -p "test_*.py"`: 26 tests ran; 23 passed and 3 pre-existing UEL wrapper tests failed because `src/fortran/uel_3d_euler_beam_uel.for` is currently deleted in the user's working tree.
- `git diff --cached --check`: passed for the staged manual-index changes. Repository-wide `git diff --check` remains blocked by a pre-existing extra blank line at `AGENTS.md:110`.
Latest verification after correcting the Abaqus-facing UEL wrapper/interface:
```bash
python -m unittest discover -s scripts -p "test_*.py"
python scripts/validate_reference_artifacts.py
python scripts/validate_fortran.py
python scripts/validate_workspace.py
git diff --check
```
Result: all passed.
- `python -m unittest discover -s scripts -p "test_*.py"`: 60 tests passed.
- `python scripts/validate_reference_artifacts.py`: reference artifact metadata validation succeeded.
- `python scripts/validate_fortran.py`: six Fortran manifest executables compiled and passed with Intel `ifx`.
- `python scripts/validate_workspace.py`: reference validation and Fortran validation succeeded.
- `git diff --check`: passed with line-ending warnings only.
Previous verification after completing step 7 Fortran implementation:
```bash
python -m unittest discover -s scripts -p "test_*.py"
python scripts/validate_fortran.py
python scripts/validate_reference_artifacts.py
python scripts/validate_workspace.py
```
Result: all passed.
- `python -m unittest discover -s scripts -p "test_*.py"`: 57 tests passed.
- `python scripts/validate_fortran.py`: six Fortran manifest executables compiled and passed with Intel `ifx` through oneAPI env script.
- `python scripts/validate_reference_artifacts.py`: reference artifact metadata validation succeeded.
- `python scripts/validate_workspace.py`: succeeded.
## Next Agent Checklist
- Read `AGENTS.md`, `PLAN.md`, `PROGRESS.md`, and `WORKNOTE.md`.
- Confirm no other owner is active in this file.
- Proceed to `phases/uel-3d-euler-beam/step8.md`.
- Use `VARIABLES=1` in external Abaqus `*USER ELEMENT` examples; the adapter now requires `NSVARS>=1`.
- Update this file when step status changes or before handing off.