# Step 4: interface ## Read First - `/AGENTS.md` - `/docs/ABAQUS_SUBROUTINE_AGENT_DESIGN.md` - `/docs/ARCHITECTURE.md` - `/docs/ADR.md` - `/.codex/skills/abaqus-subroutine-interface/SKILL.md` - `/docs/requirements/uel-3d-euler-beam.md` - `/docs/formulations/uel-3d-euler-beam.md` - `/docs/numerical-reviews/uel-3d-euler-beam.md` - `/docs/io-definitions/README.md` ## Task Create `/docs/io-definitions/uel-3d-euler-beam.md`. Define the Abaqus `UEL` ABI and data contract for this feature. Include: - Exact `UEL` subroutine signature and include convention for Abaqus/Standard. - Supported `NDOFEL`, `NNODE`, `MCRD`, `NPROPS`, `NJPROP`, and `MLVARX` assumptions. - DOF ordering and mapping between Abaqus arrays and kernel arrays. - `PROPS` and optional `JPROPS` schema, including units and validation rules. - `COORDS` and orientation definition contract. - `U`, `DU`, `V`, `A`, `TIME`, `DTIME`, `PARAMS`, `LFLAGS`, `KSTEP`, `KINC` responsibilities for supported static use. - `RHS`, `AMATRX`, `SVARS`, `ENERGY`, and `PNEWDT` update responsibilities. - CSV extraction schema for external solver-result validation, including required columns, units, coordinate systems, and tolerances. - `model.inp` keyword subset expected by the reference model plan. - Thin-wrapper boundary between Abaqus ABI code and no-Abaqus kernel code. Do not create or modify Fortran source, tests, reference artifacts, or implementation plans in this step. ## Tests To Write First - None. This is an interface artifact step. ## Acceptance Criteria ```bash python -m unittest discover -s scripts -p "test_*.py" python scripts/validate_reference_artifacts.py python scripts/validate_workspace.py ``` The step is complete only when `/docs/io-definitions/uel-3d-euler-beam.md` gives enough ABI and CSV detail for no-Abaqus tests and external artifact validation. ## Validation Notes - Do not require this repository to parse ODB files. - Update `/phases/uel-3d-euler-beam/index.json` step 4 with `completed`, `error`, or `blocked` and a concrete summary or reason. ## Forbidden - Do not add JavaScript/TypeScript/npm fallback. - Do not run Abaqus analyses from this project. - Do not generate reference CSVs. - Do not create Fortran production source. - Do not break existing tests.