Metadata-Version: 2.4
Name: sim-plugin-icepak
Version: 0.1.0
Summary: Ansys Icepak driver for sim-cli, distributed as a plugin
Project-URL: Homepage, https://github.com/svd-ai-lab/sim-plugin-icepak
Project-URL: Repository, https://github.com/svd-ai-lab/sim-plugin-icepak
Project-URL: Issues, https://github.com/svd-ai-lab/sim-plugin-icepak/issues
Project-URL: Changelog, https://github.com/svd-ai-lab/sim-plugin-icepak/blob/main/CHANGELOG.md
Author: svd-ai-lab
License-Expression: Apache-2.0
License-File: LICENSE
License-File: LICENSE-NOTICE.md
Keywords: aedt,icepak,plugin,pyaedt,pyansys,sim-cli,simulation,thermal
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Requires-Dist: pyaedt<1,>=0.26.3
Requires-Dist: sim-cli-core>=0.3.4
Provides-Extra: test
Requires-Dist: build>=1.0; extra == 'test'
Requires-Dist: pytest>=8; extra == 'test'
Description-Content-Type: text/markdown

# sim-plugin-icepak

Use Codex, Claude Code, or another AI agent to work with
[Ansys Icepak](https://www.ansys.com/products/electronics/ansys-icepak)
thermal models through [sim-cli](https://github.com/svd-ai-lab/sim-cli).

`sim-plugin-icepak` is an initial Icepak driver plugin for sim-cli. It uses
PyAEDT as the Python control layer for Ansys Electronics Desktop (AEDT), keeps
the driver import-safe on machines without AEDT, and bundles an Icepak agent
skill so an agent has solver-specific workflow guidance after installation.

The Icepak/AEDT application is not bundled. See
[LICENSE-NOTICE.md](LICENSE-NOTICE.md).

## Current maturity

This is an initial alpha release. It has unit coverage, protocol conformance
coverage, simulated PyAEDT session coverage, packaging checks, and opt-in real
Icepak smoke coverage for hosts with AEDT available.

Use it as an integration starting point, not as proof that a production Icepak
workflow has been validated end to end.

## Scope

Version 0.1.0 targets Icepak through PyAEDT's
`ansys.aedt.core.icepak.Icepak` interface.

Out of scope for this first version:

- HFSS-to-Icepak EM-loss coupling as a routine automated workflow
- Maxwell, Q3D, Circuit, HFSS, or generic AEDT workflows
- Direct `.aedt` or `.aedtz` batch solve without a PyAEDT script
- Plugin-index catalogue entry before the package is published and smoke-tested

## What an agent can do with Icepak

- Detect PyAEDT Python scripts that instantiate Icepak.
- Check whether AEDT appears to be installed on the host.
- Start a PyAEDT-backed Icepak session in graphical or non-graphical mode when
  AEDT is available.
- Execute bounded Python snippets against the active `icepak` object.
- Inspect session, project, design, model, material, boundary, heat-source,
  monitor, setup, message, and best-effort solution-progress summaries.
- Parse exported temperature CSV files for quick maximum, mean, and ambient-rise
  checks.
- Run complete PyAEDT Python scripts through `sim run --solver icepak`.

## Install

Install the released wheel from GitHub:

```bash
uv pip install "https://github.com/svd-ai-lab/sim-plugin-icepak/releases/download/v0.1.0/sim_plugin_icepak-0.1.0-py3-none-any.whl"
```

For source testing against the release tag or current main branch:

```bash
uv pip install "git+https://github.com/svd-ai-lab/sim-plugin-icepak.git@v0.1.0"
```

```bash
uv pip install "git+https://github.com/svd-ai-lab/sim-plugin-icepak.git@main"
```

The repository includes a manual PyPI publish workflow for maintainers who have
configured the required package-publishing secret.

After installation, sim-cli should auto-discover the driver and bundled skill:

```bash
sim check icepak
sim run --solver icepak path/to/script.py
```

If `sim check icepak` reports that AEDT itself is unavailable, first confirm the
Python package installed correctly, then fix the host AEDT installation,
environment variables, or runtime prerequisites.

## AEDT discovery

The driver looks for AEDT using:

- `SIM_ICEPAK_AEDT_ROOT`
- `SIM_AEDT_ROOT`
- `ANSYSEM_ROOT*`
- AEDT launchers such as `ansysedt`, `ansysedt.exe`, or `ansysedtsv.exe` on
  `PATH`
- Windows Registry hints from AEDT/Ansys uninstall entries and `App Paths`
- conservative default Windows and Linux install roots

If AEDT is installed in a nonstandard location, set an explicit root:

```powershell
$env:SIM_ICEPAK_AEDT_ROOT = 'C:\path\to\AnsysEM'
sim check icepak
```

You do not need to add AEDT to the global system `PATH` when default discovery
or one of the explicit environment variables works.

## Common agent workflow

Use `sim-cli` when it adds discovery, session control, inspection, or artifact
tracking. Plain PyAEDT scripts, AEDT executables, and solver-native batch flows
are also valid when they are the narrower reliable path; keep the same evidence
standard either way.

1. Probe AEDT/Icepak availability, for example with `sim check icepak` or an
   equivalent PyAEDT/AEDT executable probe.
2. Choose GUI mode only when visual review is required; otherwise prefer
   non-graphical mode.
3. When using a live sim-cli session, inspect the active project/design before
   mutating anything:

   ```bash
   sim connect --solver icepak --ui-mode no_gui
   sim inspect session.summary
   sim inspect icepak.project.identity
   sim inspect icepak.design.summary
   sim inspect icepak.model.summary
   sim inspect icepak.materials.summary
   sim inspect icepak.boundaries.summary
   sim inspect icepak.heat_sources.summary
   sim inspect icepak.monitors.summary
   sim inspect icepak.setups.summary
   ```

4. Run one bounded PyAEDT snippet, script, or native batch step at a time.
5. Inspect `last.result`, AEDT messages, exported artifacts, and design state
   before solving or exporting the next result.
6. Validate engineering results from Icepak artifacts and domain criteria, not
   from process success alone.

## Develop

```bash
git clone https://github.com/svd-ai-lab/sim-plugin-icepak
cd sim-plugin-icepak
uv sync --extra test
uv run pytest -q
uv build
```

The test suite is designed to pass on machines without AEDT/Icepak. Real solver
smoke testing is opt-in:

```bash
SIM_ICEPAK_RUN_INTEGRATION=1 uv run pytest tests/test_icepak_real_smoke.py -q
```

On PowerShell:

```powershell
$env:SIM_ICEPAK_RUN_INTEGRATION = '1'
uv run pytest tests/test_icepak_real_smoke.py -q
```

## License

Apache-2.0. See [LICENSE](LICENSE) and [LICENSE-NOTICE.md](LICENSE-NOTICE.md).
