jasonanewcoder/abaqus_skills/abaqus-subroutine-skills
Claude Code and agent skill by jasonanewcoder/abaqus_skills
- community
Checking that the SKILL.md file is still in the repository.
Abaqus Fortran user subroutine development: UMAT/VUMAT/CREEP custom materials, UMATHT thermal constitutive, DLOAD/VDLOAD/DFLUX loads & moving heat sources, DISP/VDISP boundaries, USDFLD fields, ORIENT orientation, SIGINI/SDVINI initial conditions, FRIC friction, HETVAL/FILM thermal, UEL/VUEL custom elements, UAMP amplitudes, UEXTERNALDB job I/O, URDFIL results filtering. Use when the task mentions: UMAT, VUMAT, user subroutine, custom material, DLOAD, DFLUX, welding heat source, USDFLD, SIGINI, UEL, Fortran subroutine, 子程序, 用户材料. Fixed-format Fortran with ABA_PARAM.INC / vaba_param.inc, REAL*8. Not for pure Python scripting — use abaqus-script-control-general.
Install
npx vskill@latest install jasonanewcoder/abaqus_skills/abaqus-subroutine-skillsSKILL.md
Abaqus Subroutine Development Skill
Skill Description
This skill provides AI-assisted programming guidance for developing Abaqus user subroutines. It includes standardized Fortran code templates, detailed theoretical explanations, and complete engineering examples to help users quickly and accurately develop custom subroutines for finite element analysis.
Capabilities
- Generate UMAT (User Material) subroutines for custom constitutive models
- Generate VUMAT subroutines for explicit dynamic analysis
- Generate CREEP subroutines for creep and viscoplasticity
- Generate UMATHT subroutines for thermal constitutive behavior
- Generate DLOAD/VDLOAD subroutines for distributed moving loads
- Generate DFLUX subroutines for moving heat sources (welding)
- Generate UAMP subroutines for custom load amplitudes (control laws)
- Generate DISP/VDISP subroutines for custom displacement boundary conditions
- Generate USDFLD subroutines for spatially varying field variables
- Generate ORIENT subroutines for material orientation
- Generate SIGINI subroutines for initial stress conditions
- Generate FRIC subroutines for custom friction models
- Generate HETVAL subroutines for heat generation
- Generate UEL/VUEL subroutines for custom elements
- Generate UEXTERNALDB subroutines for data file management
- Generate URDFIL subroutines for results file monitoring
Supported Subroutine Types
| Subroutine | Analysis Type | Purpose | |
|---|---|---|---|
| UMAT | Standard (Implicit) | Custom material constitutive | |
| VUMAT | Explicit | Custom material constitutive | |
| CREEP | Standard | Creep / viscoplastic material | |
| UMATHT | Standard (Thermal) | Custom thermal constitutive | |
| DLOAD | Standard | Distributed load definition | |
| VDLOAD | Explicit | Distributed load definition | |
| DFLUX | Thermal | Moving heat source / heat flux | |
| DISP | Standard | Custom displacement boundary | |
| VDISP | Explicit | Custom displacement boundary | |
| USDFLD | General | User-defined field variables | |
| ORIENT | General | Material orientation | |
| SIGINI | General | Initial stress definition | |
| SDVINI | General | Initial state variables | |
| FRIC | Standard | Custom friction model | |
| HETVAL | Thermal | Heat generation | |
| FILM | Thermal | Custom convection | |
| UEL | Standard | Custom element | |
| VUEL | Explicit | Custom element | |
| UAMP | General | User amplitude (control) | |
| UEXTERNALDB | General | Job I/O management | |
| URDFIL | General | Results file filtering |
Usage
Step 1: Determine Requirements
Before using this skill, clarify:
- Analysis Type: Implicit (Standard) or Explicit?
- Physical Phenomenon: What material behavior or boundary condition needs simulation?
- Coupling Requirements: Do multiple subroutines need to work together?
- Complexity: Linear or highly nonlinear problem?
Step 2: Select Appropriate Skill
Based on requirements, select the corresponding reference file:
| Requirement | Recommended Reference | |
|---|---|---|
| Custom material model | reference/material/umat_*.md or reference/material/vumat_*.md | |
| Creep / high-temperature material | reference/material/creep_material.md | |
| Thermal constitutive model (phase change, nonlinear) | reference/thermal/umatht_thermal.md | |
| Moving/variable load | reference/load/dload_moving.md (Standard) / vdload_moving.md (Explicit) | |
| Welding / moving heat source | reference/thermal/dflux_welding.md | |
| Custom load amplitude / control | reference/load/uamp_amplitude.md | |
| Vibration/displacement control | reference/boundary/disp_control.md | |
| Spatially inhomogeneous material | reference/field/usdfld_spatial.md | |
| Material orientation (composites etc.) | reference/field/orient_direction.md | |
| Geostress/residual stress | reference/initial/sigini_stress.md | |
| Tribology problems | reference/friction/fric_contact.md | |
| Thermal-mechanical coupling | reference/thermal/hetval_heat.md + UMAT | |
| Special connection elements | reference/element/uel_spring.md | |
| Run-time monitoring / custom abort | reference/output/urdfil_results.md | |
| Shared data files / job management | reference/utility/uexternaldb_mgmt.md |
Step 3: Understand the Skill File
Each skill file contains:
- Skill Description: Applicable scenarios and main functions
- Theoretical Formulas: Mathematical basis and physical models
- Interface Definition: Detailed subroutine parameter descriptions
- Code Template: Complete, ready-to-use Fortran code
- Input File Example: Abaqus keyword reference
- Verification Methods: How to verify implementation correctness
- Extension Suggestions: Directions for further development
Step 4: Modify and Adapt
Modify the code for your specific problem:
Step 5: Compile and Test
Compilation Commands
Testing Recommendations
- Single Element Test: Verify constitutive relationship correctness
- Simple Boundary Condition Test: Verify subroutine is correctly called
- Benchmark Comparison: Verify numerical accuracy
- Convergence Test: Verify Jacobian matrix correctness
Step 6: Debug and Optimize
Common Debugging Methods
Best Practices
Code Standards
- Use Fixed-Format Fortran:
- Columns 1-5: Statement labels
- Column 6: Continuation character (non-zero)
- Columns 7-72: Code body
- After column 73: Ignored
- Variable Declaration:
- Constant Definition:
- Error Checking:
Performance Optimization
- Vectorization for Explicit Subroutines:
- VUMAT/VUEL use block loops
- Avoid scalar operations
- Minimize State Variables:
- Only store necessary history variables
- Clean up unused variables promptly
- Optimize Matrix Operations:
- Utilize matrix symmetry
- Avoid redundant calculations
Subroutine Selection Guide
| Problem Type | Recommended Solution | Alternative | |
|---|---|---|---|
| New constitutive model | UMAT/VUMAT | Built-in material + field variables | |
| Moving load | DLOAD/VDLOAD | Multi-node concentrated forces | |
| Complex boundary | DISP/VDISP | MPC constraints | |
| Non-uniform material | USDFLD+UMAT | Multi-layer material | |
| Initial stress | SIGINI | *Initial Conditions | |
| Special element | UEL/VUEL | Multi-node connectors |
Troubleshooting
Compilation Errors
| Error Message | Cause | Solution | |
|---|---|---|---|
| "Unexpected end of file" | Continuation format error | Check column 6 continuation character | |
| "Undefined variable" | Variable not declared | Add type declaration | |
| "Type mismatch" | Type inconsistency | Use REAL*8 instead of REAL | |
| "Dimension mismatch" | Array dimension error | Check array declaration and access |
Runtime Errors
| Error Message | Cause | Solution | |
|---|---|---|---|
| "Too many attempts" | Non-convergence | Check Jacobian matrix | |
| "Negative eigenvalues" | Stiffness matrix not positive definite | Check material stability | |
| "Zero pivot" | Insufficient constraints | Check boundary conditions | |
| "NaN in stress" | Numerical overflow | Check division by zero and exponential operations |
Result Anomalies
| Symptom | Possible Cause | Check Point | |
|---|---|---|---|
| Zero stress | STRESS not updated | Check stress update statements | |
| Excessive displacement | Stiffness too small | Check material parameter units | |
| Non-convergence | Inconsistent Jacobian | Verify DDSDDE derivation | |
| Hourglass modes | Reduced integration | Add hourglass control |
Subroutine Interface Quick Reference
UMAT (Standard)
VUMAT (Explicit)
DLOAD
DISP
USDFLD
Version Information
- Skill Version: 1.1
- Compatible Abaqus Version: 2023 and above (Python 3.9+)
- Fortran Compiler: Intel Fortran 19.0+ or GNU Fortran 9.0+
- Last Updated: 2026-08
- Errata: see
docs/ERRATA.mdfor fixed bugs and unverified API items
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingabaqus_subroutine_skills/SKILL.md
Popularity
- Repository stars
- 42
- Repository forks
- 10
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jasonanewcoder/abaqus_skills/abaqus-subroutine-skills)