ddsdde is available for Windows 10 and Windows 11, on x64 hardware. macOS and Linux versions are not yet available.
Do the steps that follow.
The installer is not signed with a code-signing certificate. This is the cause of the SmartScreen message. A certificate costs money that this beta does not have.
ddsdde does not need an Abaqus licence. It does not need a Fortran compiler. It does not send your source code to a server.
Do the steps that follow to see the inspector work.
.f, .for,
.f90 or .f95 file.SUBROUTINE UMAT(...) line.If you have no subroutine file, press Ctrl+Shift+P and select New UMAT from Template. This gives you a complete subroutine that you can read immediately.
The inspector is the panel on the right of the window. It reads the
file, finds each SUBROUTINE statement, and identifies the
type. It then shows the arguments of the subroutine at the cursor.
For each argument the inspector gives this information.
| Field | Content |
|---|---|
| Description | The physical quantity, in plain words. |
| Units | The dimension of the quantity. Abaqus has no unit system. You must keep the units consistent. |
| Access | READ, WRITE or READ/WRITE. READ means Abaqus supplies the value. WRITE means you must calculate it. |
The access direction is the most important field. If you write to a READ argument, Abaqus ignores the value. If you do not write to a WRITE argument, Abaqus uses whatever was in memory.
In both cases the subroutine compiles. In both cases the analysis runs. The results are incorrect.
A Fortran file can contain more than one subroutine. The inspector shows a tab for each subroutine that it finds. The active tab follows the cursor. To hold one tab, click it.
Use the search box at the top of the inspector to filter the argument list. The search examines the argument name and the description.
ddsdde uses Monaco. Monaco is the editor component of Visual Studio Code. Most Visual Studio Code key bindings operate as you expect.
The editor reads the file extension to find the source form.
| Extension | Form | Rulers |
|---|---|---|
| .f .for .f77 | Fixed | column 6, column 72 |
| .f90 .f95 | Free | none |
In fixed form, columns 1 to 5 hold the statement label. Column 6 holds the continuation character. Statements start at column 7 and end at column 72. The rulers show these limits.
The editor gives Abaqus subroutine names and known argument names a separate colour. Your own variables keep the default colour. You can thus see which names come from the Abaqus interface.
Hold the pointer above an argument name to see a short description. This gives the same data as the inspector, at the pointer.
You can divide the editor into two panes. Use a split to compare two subroutines, or to keep a template beside the file that you write.
The two buttons at the right of the tab strip do the same thing. Drag the divider between the panes to change their size.
One pane has the focus. A blue mark on its tab strip shows which one. Click in a pane to give it the focus, or press Ctrl+K to move the focus to the other pane.
The inspector, the status bar, Ctrl+O and Ctrl+S all apply to the focused pane. The argument list on the right thus always agrees with the file that you edit.
A new pane is empty. To fill it, do one of these three things.
Each pane keeps its own list of open files. A file can be open in both panes at the same time.
Inline completion needs an Anthropic API key. To add a key, press Ctrl+Shift+P and select Anthropic API Key. The key stays on your computer. If you add no key, every other function continues to operate.
Click Abaqus Docs at the right of the top bar, or press Ctrl+Shift+D. A window opens above the editor. Click the expand control in its title bar to make it fill the screen. Press Esc to close it.
The window holds a page for each of the 20 subroutine types and a page for each of their 346 arguments. It also holds pages for the Fortran intrinsic functions that occur most in subroutine code.
Each subroutine has two kinds of page. Full reference is one long document that covers the whole routine: when Abaqus calls it, the component ordering, the finite-strain rules, the common mistakes, and every argument grouped by access direction. The argument pages below it cover one variable each.
Use the full reference when you learn a subroutine. Use the argument pages when you write code and need one fact.
The section order follows the Abaqus User Subroutines Reference Guide, so each topic is where you expect it. The text is written by the ddsdde project.
Hold Shift and click an argument name in the editor. The window opens at the page for that argument. This is the fastest route from code to documentation.
The subroutine at the clicked line selects the correct page. If you
Shift+Click PROPS in a VUMAT, you get the VUMAT page, not
the UMAT page.
A word that is not a known argument does nothing. Shift+Click on your own variables is thus safe.
The search box is at the top of the window. Press Ctrl+F to move the cursor to it. The search examines every page. Type an argument name to go straight to it, or type a phrase such as yield stress to find the pages that discuss it.
The tree on the left lists the subroutine types. Click a type to expand it and to see its arguments. The tree opens the type that contains the page you read.
Click Follow cursor in the title bar to turn on this mode. The window then shows the argument at your cursor in the editor, and it changes as you move. Use this mode when you read an unfamiliar subroutine. Turn it off to read a page while you type.
Argument names in the text are links. Click a name to go to its page. Use the back control in the title bar to return.
This reference is written by the ddsdde project. It is not a copy of the Abaqus manual, and it does not replace it. The Abaqus documentation is copyright Dassault Systemes, and ddsdde does not redistribute it. Each subroutine page has a link that opens the official manual in your browser.
The top bar has no buttons. Press Ctrl+Shift+P to open the command palette. The palette lists every command with its shortcut.
Press Ctrl+P to go to a file. This dialog lists your open
editors first, then your recent files. It matches on any part of the
name, so elum finds elastic_umat.f. Type
> to change to the command palette.
The shortcuts follow Visual Studio Code. If you come from Visual Studio Code, your key bindings operate as you expect. The editing shortcuts are supplied by Monaco, which is the Visual Studio Code editor component.
| Command | Shortcut |
|---|---|
| Command palette | Ctrl+Shift+P |
| Go to file | Ctrl+P |
| Open Abaqus Docs | Ctrl+Shift+D |
| FILE | |
| New file | Ctrl+N |
| Open file | Ctrl+O |
| Open folder | Ctrl+K O |
| Save | Ctrl+S |
| Save as | Ctrl+Shift+S |
| Save all | Ctrl+K S |
| Close editor | Ctrl+W |
| Next editor | Ctrl+Tab |
| Previous editor | Ctrl+Shift+Tab |
| LAYOUT | |
| Toggle file explorer | Ctrl+B |
| Split editor right | Ctrl+\ |
| Split editor down | Ctrl+Shift+\ |
| Close split | Ctrl+K W |
| Focus first pane | Alt+1 |
| Focus second pane | Alt+2 |
| EDITING | |
| Find | Ctrl+F |
| Replace | Ctrl+H |
| Go to line | Ctrl+G |
| Toggle comment | Ctrl+/ |
| Add cursor at next match | Ctrl+D |
| Move line up or down | Alt+Up / Alt+Down |
| Rename symbol | F2 |
| Undo / redo | Ctrl+Z / Ctrl+Y |
| Open docs for argument | Shift+Click |
| VIEW | |
| Settings | Ctrl+, |
| Increase font size | Ctrl+= |
| Decrease font size | Ctrl+- |
| Reset font size | Ctrl+0 |
A template is a complete subroutine that compiles. Use a template as a start point, or as an example to read.
To insert a template, press Ctrl+Shift+P and select New UMAT from Template.
ddsdde supplies 14 templates. Six of them are UMAT.
| Template | Model |
|---|---|
| UMAT | Linear elastic |
| UMAT | J2 plasticity |
| UMAT | Drucker-Prager |
| UMAT | Neo-Hookean |
| UMAT | GTN damage |
| UMAT | Viscoelastic, Prony series |
| VUMAT | Explicit material |
| UEL | 4-node quadrilateral |
| UMATHT | Heat transfer |
| UHARD | Hardening law |
| CREEP | Creep law |
| USDFLD | Field variables |
| DLOAD | Distributed load |
| UEXTERNALDB | External database |
A template is an example. Read it before you use it. Do not put a template into production work without a check.
Press Ctrl+, to open the settings. ddsdde keeps the settings on your computer between sessions.
The settings dialog also shows a compiler path and compiler flags. These two fields have no effect in this release. They stay for the build function, which is not available now. Refer to section 9.
This release does one job: it helps you write a subroutine. It does not compile, test or run anything.
These functions are not in this release.
.dll or .so.msg, .sta and .inp filesThese functions were in an earlier release. They are removed from the program, but they are not deleted from the source. The plan is to return them one at a time, after UMAT support is correct.
The argument data covers 20 subroutine types. Every argument has a description, a unit and an access direction. UMAT has the most detail, because UMAT is the primary target of this release.
The inspector needs a SUBROUTINE statement. Make sure of
these three conditions.
SUBROUTINE statement.
The editor selects the source form from the file extension. A
free-form file with a .f extension gets fixed-form
rulers. Change the extension to .f90.
Inline completion needs an Anthropic API key and a network connection. Press Ctrl+Shift+P and select Anthropic API Key to check the key.
Send a message to flm2127@columbia.edu. Include the version, the steps that cause the defect, and the file if you can share it.