Curing Job Execution

SkillAI & models

curing-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.

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

  1. Create job from input file with UMAT subroutine path
  2. Submit with consistencyChecking=OFF
  3. Monitor job status until COMPLETED
  4. Copy ODB from C:\Temp to work directory
  5. 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