> For the complete documentation index, see [llms.txt](https://help.fovus.co/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.fovus.co/docs/articles/applications/ansys/ansys-mechanical/job-submission/submit-workbench.md).

# Ansys Workbench

The **Fovus Workbench extension** adds a Fovus toolbar to Ansys Workbench so you can submit a solve, check its status, and download results without leaving the Workbench window. It exports the solver input deck for you by driving Mechanical in batch, so you don't need to run **Write Input File…** yourself or upload the job folder by hand.

{% hint style="info" %}
The extension works on analysis systems in the **Project Schematic** — Static Structural, Transient Structural, Modal, Thermal, and similar Mechanical-based systems. It never opens the Mechanical GUI for you.
{% endhint %}

## Before you begin

The extension drives the Fovus CLI under the hood. Two things must be in place first — neither is set up by the extension:

1. **The Fovus CLI is installed and on `PATH`.** See [Using the Fovus CLI](https://github.com/Fovus/fovus-help-center/tree/minh-gitbook/articles/job-submission/using-fovus-cli.md). If the CLI is installed somewhere that isn't on `PATH`, set `fovusCliPath` in `~/.fovus/plugin_config.json` instead.
2. **You are logged in.** Run `fovus auth login` in a terminal. **Submit to Fovus** checks this and stops with an `Authentication required` error if you aren't.

You also need a **saved Workbench project** — **Submit to Fovus** refuses to run on an unsaved `.wbpj`. The other five buttons work off the recorded job history, so they keep working after you close and reopen Workbench.

## Install the extension

Download the extension file first: [FovusWorkbench-v1.0.wbex](https://fovus-public-resources-us-east-1-prod.s3.us-east-1.amazonaws.com/AnsysExtension/FovusWorkbench-v1.0.wbex).

{% stepper %}
{% step %}

#### Open the Extension Manager

In Workbench, go to **Extensions → ACT Start Page**, then click **Manage Extensions**.

![The Extensions menu in Ansys Workbench with ACT Start Page and Manage Extensions](/files/AV3geEyT92bE8pGxzwpt)
{% endstep %}

{% step %}

#### Install the `.wbex` file

In the Extension Manager, click **Install Extension** (the **+** tile) and choose `FovusWorkbench.wbex`.

![Choosing FovusWorkbench.wbex in the Install Extension file picker](/files/gYOfLloI6YvupdbDnZYF)

Installing only unpacks the extension — it is not active until you load it.
{% endstep %}

{% step %}

#### Load the extension

Right-click the **FovusWorkbench** tile and select **Load extension**. A loaded extension shows a highlighted border.

![Right-clicking the FovusWorkbench tile and selecting Load extension](/files/hG0FrURWSchTvvjtYkqQ)

To load it automatically on every start, set it under **Tools → Options → Extensions**.
{% endstep %}
{% endstepper %}

## The Fovus toolbar

Once loaded, the Fovus toolbar appears in the Workbench window with six buttons:

![The six-button Fovus toolbar in the Ansys Workbench window](/files/rsi8h53Sa34Mwqx6q1Uo)

| Button                | What it does                                                                              |
| --------------------- | ----------------------------------------------------------------------------------------- |
| **Submit to Fovus**   | Exports the solver input by driving Mechanical in batch, then uploads and creates the job |
| **Check Status**      | Reports the current state of a recorded job                                               |
| **Download Results**  | Downloads the job output into the job's task folder                                       |
| **Cancel Job**        | Sends a terminate request for the recorded job ID                                         |
| **Open in Fovus Web** | Opens the job page in your browser                                                        |
| **Fovus Messages**    | Re-opens the session record window                                                        |

## Submit a job to Fovus

**Submit to Fovus** exports the solver input file (`ds.dat`) for one analysis system, stages it in a fresh job folder, and creates the job on Fovus.

{% stepper %}
{% step %}

#### Select the system

If the project contains more than one supported system, the **Fovus - Select System** window opens. Pick the system to submit — double-clicking a row is the same as **OK**. With exactly one supported system it is used without asking.

Rows read `<internal name> - <display text> (<adapter>)` — for example `A: Static Structural - Static Structural (mechanical)`. The job history is keyed on the internal name, so renaming a system in the schematic never orphans its earlier jobs.
{% endstep %}

{% step %}

#### Select the job config

The **Select Fovus Job Config** picker opens on every submit. Accept the pre-selected default, or point at your own JSON.

![The Select Fovus Job Config file picker](/files/jYUH3VpsKrrCnX7gvo2N)

Whatever you pick is used as a **template**: the extension renders a copy with `task.inputFiles` and `monolithicList[].runCommand` filled in for this job, and your file is never modified. To customize the environment, constraints, and objective, [export a config from the Fovus web app](https://github.com/Fovus/fovus-help-center/tree/minh-gitbook/articles/advanced/import-export-configs.md) and set `jobConfigPath` in `~/.fovus/plugin_config.json` so it becomes the default.
{% endstep %}

{% step %}

#### Wait for the export and upload

The **Fovus - Working** loader appears and its status line advances with the operation — `Writing input files for '<system>'…` → `Input files ready.` → `Submitting job to Fovus…`.

![The Fovus - Working loader during the input file export](/files/DwhVdudxvDoQNt49H5Ky)

There is nothing to do here. You can minimize the loader but not close it — it closes itself when the operation ends.
{% endstep %}

{% step %}

#### Note the job ID

When Fovus accepts the job, a **Job submitted successfully** popup reports the job ID.

![The Job submitted successfully popup showing the job ID](/files/5e23d4lDpWSuKbPcoHXY)

You don't have to write the ID down — it is stored in the job history and shown in the job chooser. Behind the popup, the **Fovus Messages** window records the same events as a scrollable history.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**How long it takes.** The batch export is the slow part — a few minutes depending on the size of the input file — and it consumes a workload-specific license, which is released as soon as the export finishes. If you already have the system open in Mechanical, the export runs in your session and is near-instant. The upload then runs in the background, so Workbench stays responsive.
{% endhint %}

### Where the job files are written

The extension writes to a dedicated work directory **outside** your Ansys project — nothing is written into the project structure:

```
~/FovusJobs/<project>/<system>_<timestamp>/<system>/
```

Override the root with `workDirectory` in `~/.fovus/plugin_config.json` or the `FOVUS_WORK_DIR` environment variable.

## Manage a submitted job

**Check Status**, **Download Results**, **Cancel Job**, and **Open in Fovus Web** all act on a recorded job. If the open project has more than one recorded job, the **Fovus - Select Job** chooser opens first; with exactly one it is used without asking.

![The Fovus - Select Job chooser listing recorded jobs newest first](/files/aQyHOenlzAVNG5Aol5fa)

Rows are newest first and read `<job name> | job: <job id> | latest | submitted <timestamp>`. The `latest` marker flags the most recent job for each system, so with several systems you will see several `latest` markers. Every submission is listed separately, so you can go back to an older run of the same system. The history lives in `~/.fovus/workbench_jobs.json`, keyed by project and system, so it survives closing Workbench.

### Check status

**Check Status** asks Fovus for the state of one recorded job and reports it in a popup. It does not poll — click again to refresh.

| State                   | The popup says                                                                  |
| ----------------------- | ------------------------------------------------------------------------------- |
| Completed               | Finished. Click **Download Results**, then read the result files in Mechanical. |
| Failed                  | Failed — check the Fovus web console.                                           |
| Terminated or cancelled | Was terminated — check the web console.                                         |
| Anything else           | Still in progress. Click **Check Status** again.                                |

### Download results

**Download Results** downloads the job output into the same task folder the input was staged in, then counts the result files it recognizes (`.rst`, `.rth`, `.rmg`, `.full`, `.dat`, `.esav`). The download runs in the background, so Workbench stays responsive.

![The Download complete popup naming the folder the results landed in](/files/rME8iPxfefs54sM3zdIP)

The extension does not load results for you. Open the system in Mechanical, right-click **Solution → Read Result Files**, and browse to the folder named in the popup — see [View results](/docs/articles/applications/ansys/ansys-mechanical/view-results.md).

{% hint style="warning" %}
A download that finishes with zero recognized result files is reported as an error, because it almost always means the job did not produce results. Check the job in the Fovus web console.
{% endhint %}

### Cancel a job

**Cancel Job** sends a terminate request for the recorded job ID and confirms with `Cancel request sent for job ID: <id>`. There is no confirmation prompt — the click sends the request.

It is a request, not an instant stop: click **Check Status** afterwards, and the job reads `TERMINATED` once Fovus has acted on it. The job's files in your work directory are untouched either way.

### Open in Fovus Web

**Open in Fovus Web** opens the job's page at `https://app.fovus.co/jobs/<job id>` in your default browser. Use it for anything the extension deliberately does not show — solver logs, per-task detail, cost, and the full job timeline.

## Fovus Messages

**Fovus Messages** re-opens the session record window. It records job events and errors — submitted, status, download completed, cancelled — as a scrollable history, so the information survives popups you have already dismissed.

![The Fovus Messages window listing job events for the session](/files/BpRwdEsIap8fnyQtEHjQ)

| Action             | Result                                                           |
| ------------------ | ---------------------------------------------------------------- |
| Hover a row        | Tooltip with the full, unflattened message                       |
| Double-click a row | Detail dialog with the complete text, selectable for copying     |
| **Ctrl+C**         | Copies selected rows as `time <TAB> type <TAB> full message`     |
| **Clear**          | Empties the list; new records still arrive                       |
| **Close (X)**      | Only hides it — history is kept, and the next record re-shows it |

Errors are red and typed `Error`; everything else is `Info`. The list holds the most recent 1000 rows. Step-by-step detail and full CLI output go to the session log instead.

## Troubleshooting

Every error popup names what failed and the CLI's exit code, the Fovus CLI's own error output (capped at 1500 characters), and the full path to the session log file. The complete, untrimmed output is always in that log:

```
~/.fovus/FovusWorkbench/logs/workbench_<timestamp>_<pid>
```

Logs are kept for six months. Search the log for `[Fovus]` to find the failing command — the exact CLI command line is logged just before execution, so you can re-run it in a terminal by hand.

| Popup                                      | Cause                                                                               |
| ------------------------------------------ | ----------------------------------------------------------------------------------- |
| `Could not start the Fovus CLI ('fovus')…` | The CLI is not installed or not on `PATH`. Set `fovusCliPath` in the plugin config. |
| `Authentication required…`                 | Run `fovus auth login` in a terminal, then retry.                                   |
| `Save the Workbench project first…`        | **Submit to Fovus** needs a saved `.wbpj`.                                          |
| `No supported analysis system found…`      | The project has no Mechanical-based system.                                         |
| `Mechanical could not export ds.dat: …`    | The batch export failed — the message carries Mechanical's own reason.              |
| `Job folder no longer exists: …`           | The recorded job folder was moved or deleted.                                       |

{% hint style="info" %}
**One operation at a time.** Clicking **Submit to Fovus**, **Check Status**, **Download Results**, or **Cancel Job** while another of those four is still running is rejected with a message naming both operations — wait for the running one to finish. Rejecting a click never cancels work already in flight. **Open in Fovus Web** and **Fovus Messages** never take the slot, so you can open the web console while a submit is still uploading.
{% endhint %}

***

**Next step:** [View results](/docs/articles/applications/ansys/ansys-mechanical/view-results.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.fovus.co/docs/articles/applications/ansys/ansys-mechanical/job-submission/submit-workbench.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
