Curing Job Execution
SkillAI & modelscuring-job is a skill for AI model tasks. Once it is added, your AI can run curing jobs on those tasks when you ask. It is available from the cae-agent-hub repository on GitHub.
Available today. Use it from your connected AI after setup.
No other account needed.
Add curing-job to your AI, then ask it to run a curing job on an AI model task.
Then ask your AI: use the Curing Job Execution skill
What your AI can do with it
- Run curing jobs for AI model tasks
- Start a curing job when you request one
- Take care of curing jobs as part of your AI model work
What this skill tells your AI
The instructions your AI receives, as published by cai-aa/cae-agent-hub in Skill/abaqus/composite-curing-simulation/execution/curing-job/SKILL.md and read by ahel’s review.
Description
Submit Abaqus curing simulation jobs with UMAT subroutine via socket bridge. Invoke when user needs to create, submit, or monitor curing simulation jobs.
Content
Job Creation with UMAT
Create a job from an input file with the UMAT subroutine specified:
from abaqusConstants import *
job = mdb.JobFromInputFile(
name='job_name',
inputFileName=work_dir + '\\job_name.inp',
userSubroutine=umat_path,
numCpus=4,
numDomains=4
)
Job Submission
Submit the job with consistencyChecking=OFF to avoid unicode TypeError issues:
mdb.jobs['job_name'].submit(consistencyChecking=OFF)
Important: You MUST use consistencyChecking=OFF when submitting. Without this parameter, Abaqus may raise a unicode TypeError during the consistency check phase.
Monitoring Job Status
Check the current status of a submitted job:
status = mdb.jobs['job_name'].status
# Possible values: RUNNING, COMPLETED, SUBMITTED, etc.
Common Pitfalls
Unicode Errors
- Avoid using
print()with%formatting in the Abaqus kernel - Use
result = ...to return data instead of printing
String Key Issues
- Use plain strings for job names, not unicode strings
- Dictionary keys should be plain strings; unicode keys may fail
Multiple Jobs
- Submit jobs sequentially, not in parallel
- The first
submit()call in a loop may submit all jobs if not handled carefully - Wait for each job to complete before submitting the next
Job Output Location
- Scratch directory:
C:\Temp - ODB file generated at:
C:\Temp\job_name.odb
Post-Completion
After the job completes, copy the ODB file from the scratch directory to the work directory:
import shutil
shutil.copy(
'C:\\Temp\\job_name.odb',
work_dir + '\\job_name.odb'
)
Workflow Summary
- Create job from input file with UMAT subroutine path
- Submit with
consistencyChecking=OFF - Monitor job status until COMPLETED
- Copy ODB from
C:\Tempto work directory - Proceed to post-processing (ODB extraction, CSV export)
Signals
- GitHub stars
- 880
- Forks
- 115
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
curing-job- Source
- github.com/cai-aa/cae-agent-hub