5.5 KiB
Multi-Agent Research Plan
Purpose
This document is the durable planning memo for FESA's research-oriented multi-agent workflow. It records what the agents should investigate before solver implementation begins.
No solver code should be implemented from this plan directly. Each agent should produce an English technical dossier that an implementer can later follow.
Project Context
FESA is a C++17 finite element structural analysis solver. Phase 1 targets a linear static MITC4 shell solver with linear elastic material, nodal loads, fixed boundary conditions, an Abaqus input subset, HDF5-oriented results, and reference-result comparison.
The user will provide Abaqus input files and solved reference result files under a repository reference/ folder. Abaqus is not available locally, so validation must compare against stored reference artifacts.
Current Architecture Constraints
- Follow
AGENTS.md,docs/ARCHITECTURE.md, anddocs/ADR.md. - Use runtime polymorphism for elements, materials, loads, boundary conditions, and analysis algorithms.
- Keep
Domainclose to immutable after parsing. - Use
AnalysisModelfor the active step view. - Use
AnalysisStatefor mutable physical state and iteration state. - Let
DofManagerown DOF definitions, constrained/free DOF mapping, equation numbering, and sparse pattern support. - Use Strategy plus Template Method for analysis execution.
- Use Factory plus Registry for Abaqus keyword to object creation.
- Keep MKL, TBB, and HDF5 behind adapter/wrapper boundaries.
- Store results using step/frame/field/history concepts.
Created Codex Agents
The first recommended batch has been created under .codex/agents/.
-
fem_literature_researcher- File:
.codex/agents/fem-literature-researcher.toml - Role: research FEM shell literature, MITC family background, locking behavior, and implementation implications.
- File:
-
verification_benchmark_researcher- File:
.codex/agents/verification-benchmark-researcher.toml - Role: research benchmark cases, reference folder contracts, comparison methods, and acceptance criteria.
- File:
-
mitc4_formulation_researcher- File:
.codex/agents/mitc4-formulation-researcher.toml - Role: research MITC4 formulation details and convert them into implementation requirements.
- File:
-
abaqus_compatibility_researcher- File:
.codex/agents/abaqus-compatibility-researcher.toml - Role: research the Phase 1 Abaqus input subset and parser compatibility rules.
- File:
Recommended Agent Execution Order
- Run
fem_literature_researcher. - Run
verification_benchmark_researcher. - Run
mitc4_formulation_researcher. - Run
abaqus_compatibility_researcher.
This order keeps theory, verification targets, element formulation, and input compatibility aligned before implementation planning.
Later Agent Candidates
These agents should be created after the first four produce dossiers.
-
solver_architecture_researcher- Refines responsibilities among
Domain,AnalysisModel,AnalysisState,DofManager,Assembler, andLinearSolver.
- Refines responsibilities among
-
sparse_solver_researcher- Researches sparse pattern generation, CSR/COO assembly, MKL PARDISO integration, and TBB-safe assembly strategies.
-
results_hdf5_schema_researcher- Designs the HDF5 group/dataset schema for step/frame/field/history outputs.
-
nonlinear_roadmap_researcher- Researches geometric nonlinearity, Newton-Raphson, tangent stiffness, increments, and convergence criteria.
-
thermal_coupling_researcher- Researches heat transfer, thermal load generation, thermal strain, and thermal-stress coupling.
-
architecture_guardrail_reviewer- Reviews dossiers, phase plans, and future implementation against project rules and ADRs.
User-Provided Inputs Needed
The following inputs should be requested from the user as the research matures:
- The intended
reference/folder layout, or permission to propose one. - At least one simple Abaqus
.inpfile and its solved reference result artifact. - Preferred reference result format if available:
.dat,.rpt, exported.csv, HDF5, or another structured format. - Whether Phase 1 should map Abaqus
S4directly to FESAMITC4. - Whether Phase 1 shell nodes use six DOFs per node from the beginning: three translations and three rotations.
- Preferred numerical tolerances for reference comparison, or permission for agents to propose initial tolerances per benchmark.
- Whether the first implementation plan should target CMake, another build system, or a project-specific build layout.
Seed Sources
- Abaqus input syntax rules: https://abaqus-docs.mit.edu/2017/English/SIMACAEMODRefMap/simamod-c-inputsyntax.htm
- Abaqus shell section behavior: https://abaqus-docs.mit.edu/2017/English/SIMACAEELMRefMap/simaelm-c-shellsectionbehavior.htm
- OpenSees ShellMITC4 manual: https://opensees.berkeley.edu/OpenSees/manuals/usermanual/640.htm
- MITC3+/MITC4+ benchmark paper: https://web.mit.edu/kjb/www/Principal_Publications/Performance_of_the_MITC3%2B_and_MITC4%2B_shell_elements_in_widely_used_benchmark_problems.pdf
- COMSOL Scordelis-Lo benchmark example: https://doc.comsol.com/5.6/doc/com.comsol.help.models.sme.scordelis_lo_roof/scordelis_lo_roof.html
- NAFEMS nonlinear benchmark survey page: https://www.nafems.org/publications/pubguide/benchmarks/Page6/
Non-Goals
- Do not implement solver code.
- Do not generate phase execution files until the user explicitly asks for implementation planning.
- Do not require Abaqus execution in local validation.
- Do not treat unsourced formulas or benchmark constants as final.