ddsdde

An editor for Abaqus user subroutines. It tells you what each argument means while you write.

An Abaqus UMAT has 37 arguments. Their names give no clue about their units, and no clue about which ones you must write to. ddsdde shows this information for the argument at the cursor. You do not open the manual.

Download for Windows
v0.1.0 beta · Windows 10/11 x64 · free
elastic_umat.f — line 42, column 18
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME, ┌─ INSPECTOR ────────────────────────────────┐ DDSDDE WRITE Material Jacobian. The change in stress divided by the change in strain. Type REAL(NTENS,NTENS) Units stress (Pa, MPa) Access You must write this array. Abaqus does not read it back. └────────────────────────────────────────────┘
The inspector

Three facts about every argument

Put the cursor on an argument. The panel on the right shows these three facts immediately.

01

What it is

The panel gives the physical quantity in plain words. Example: DDSDDE is the material Jacobian. It is the change in stress divided by the change in strain.

02

Its units

The panel gives the dimension of the quantity. Abaqus has no unit system, and thus a wrong unit gives no error message. It gives a wrong answer.

03

Read or write

The panel tells you if Abaqus supplies the value, if you must calculate it, or both. This is the most frequent cause of a UMAT that compiles but gives incorrect results.

For the full entry, hold Shift and click the argument. The reference window opens at that argument, with its type, its ordering and its sign convention. Press Ctrl+Shift+D to open the reference on its own.

The interface

Three panels, no clutter

A file tree, an editor and the argument inspector. The top bar carries one control. Everything else is on a keyboard shortcut.

ddsdde umat_j2.f Abaqus Docs EXPLORER examples/ elastic_umat.f umat_j2.f vumat_neo.f creep_power.f umat_j2.f 42SUBROUTINEUMAT(STRESS,STATEV, 431DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 44 45C ---- elastic trial stress ---- 46DOK1 = 1, NTENS 47STRIAL(K1) = STRESS(K1) 48END DO UMAT line 42 CURSOR ON Shift+click for docs DDSDDE OUT (NTENS,NTENS) Material Jacobian of the constitutive model. Units: Pa Manual: Abaqus Sub. Ref. 1.1.44 STRESS IN/OUT STATEV IN/OUT DSTRAN IN NTENS IN ddsdde umat_j2.f Fortran 77 Ln 42, Col 18
Put the cursor on an argument and the panel on the right shows what it is, its units, and whether you read it or write it. The green OUT badge on DDSDDE means Abaqus does not supply that value — you must calculate it.
Abaqus Docs Search the reference… Follow cursor × EXAMPLES All examples Simple · 4 Intermediate · 5 Advanced · 5 Research grade · 5 SUBROUTINES ▾ UMAT Full reference STRESS DDSDDE STATEV ▸ VUMAT ▸ UEL ▸ UHARD FULL REFERENCE UMAT The Jacobian and convergence An incorrect Jacobian changes the convergence rate. It does not change the answer. Slow convergence and repeated cutbacks point at the tangent; a wrong answer points at the stress update. Worked example: integration Δσ = (Δt λ / 2 + λ*) tr(Δε) + … T = Δt / 2 + κ Variables to be defined DDSDDE(NTENS,NTENS) Material Jacobian. You must set this on every call.
Press Ctrl+Shift+D, or Shift-click any argument in the editor. 368 pages: a full reference per subroutine, one page per argument, and 19 worked examples graded from simple to research.
elastic_umat.f 18C reference: elastic 19DDSDDE(K1,K1) = XLAM 20 + 2.0D0*XMU umat_j2.f 96C algorithmic tangent 97EFFG = XMU*(SYIELD 98 + HARD*DEQPL)/SEQ The accent bar marks the pane that has focus. The inspector, the status bar, Ctrl+O and Ctrl+S all follow it. Ctrl+\ split right Ctrl+Shift+\ split down Alt+1 / Alt+2 focus pane
Split right or down, drag the divider to resize, and move the current file across from the command palette.

These figures are drawn from the interface, not photographed, so they stay sharp on any display and follow your system light or dark setting.

Coverage

20 subroutine types, 346 arguments

Every argument of every type has a description, a unit and an access direction. UMAT has the most detail, because UMAT is the primary target of this release.

Documented subroutine types
TypePurposeArguments
Abaqus/Standard — material behaviour
UMATMechanical constitutive model37COMPLETE
UMATHTHeat transfer constitutive model27COMPLETE
CREEPCreep and swelling law25COMPLETE
UHARDIsotropic hardening law22COMPLETE
USDFLDSolution-dependent field variables25COMPLETE
UEXPANThermal expansion11COMPLETE
UTRSTime-temperature shift10COMPLETE
Abaqus/Standard — elements, loads and utilities
UELUser-defined element25COMPLETE
UELMATUser element with library material21COMPLETE
DLOADDistributed load11COMPLETE
DFLUXDistributed heat flux12COMPLETE
UFIELDPredefined field variables at nodes11COMPLETE
URDFILRead the results file6COMPLETE
UEXTERNALDBExternal database access6COMPLETE
Abaqus/Explicit
VUMATMechanical constitutive model20COMPLETE
VUELUser-defined element24COMPLETE
VDLOADDistributed load11COMPLETE
VDFLUXDistributed heat flux15COMPLETE
VDISPPrescribed boundary motion22COMPLETE
VEXTERNALDBExternal database access5COMPLETE

COMPLETE means every argument carries a description, a unit and an access direction. It does not mean that the data is free of errors. If you find an incorrect entry, report it and it gets corrected.

The editor

Fortran, correctly

ddsdde uses the Monaco editor. Monaco is the editor component of Visual Studio Code.

Download

Free beta

ddsdde is one installer. It needs no configuration. It does not need an Abaqus licence, and it does not need a compiler.

Download for Windows

Windows can show a SmartScreen message. Click More info, then click Run anyway.

  • Windows10 / 11 x64 · 15 MB
  • macOSnot yet available
  • Linuxnot yet available
  • Abaqus licencenot required
  • Fortran compilernot required
  • Anthropic API keyoptional, for completions

ddsdde uses Tauri v2. Send questions and defect reports to flm2127@columbia.edu.