AI agent skill · by @Cai-aa
Curing Job
Submit Abaqus curing simulation jobs with UMAT subroutine via socket bridge. Invoke when user needs to create, submit, or monitor curing simulation jobs.
Archived 2026-10-23 · Source updated 2026-09-30 · License: MIT. Check the original repository for the latest version.
SKILL.md instructions
# Curing Job Execution
## 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:
```python
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:
```python
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:
```python
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:
```python
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)