--- name: "curing-job" description: "Submit Abaqus curing simulation jobs with UMAT subroutine via socket bridge. Invoke when user needs to create, submit, or monitor curing simulation jobs." --- # 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)