Installation and compatibility¶
numgeo-ACT is distributed as source code. It launches the
numgeo executable for every element test; the
executable supplied and tested with the same ACT release must therefore be
available on the system PATH.
Supported release matrix¶
| Component | ACT 0.1.0 status | Evidence and requirements |
|---|---|---|
| Python layer | CPython 3.9–3.12 on Ubuntu and Windows | automated unit and import tests; 64-bit Python is recommended |
| Bundled Linux solver | End-to-end verified on Ubuntu 24.04 x86-64 | Git object 8f6f443e96bdaecfa11aff6c24452463223b5ddc; requires the Ubuntu package libopenblas0-serial |
| Bundled Windows solver | Release blocked | Git object 41da3a0f3ae0a31a6469b656355b27e171868ed5; exits 0xC0000135 on a clean runner because required Intel DLLs are absent |
| Ta-Ger and Mod-Ta-Ger | Pending the Windows solver resolution | the required numgeo material executable is currently available only for Windows |
Other Python versions, Linux distributions or numgeo builds may work, but are not part of the verified ACT 0.1.0 matrix. Windows Python tests pass; the complete Windows calibration workflow is not supported until the native solver gate above is resolved.
The object identifiers above pin the exact solver binaries in addition to the
release tag. Create v0.1.0 only from the merged release commit and ensure both
objects are present in that tag.
Release-owner provenance gate
numgeo's licence permits redistribution and use in binary form subject to
its notice and acknowledgement conditions. The exact terms accompany the
executables in numgeo/LICENSE.txt; numgeo is acknowledged as developed by
Jan Machacek and Patrick Staubach in NOTICE.md. Before publishing
v0.1.0, confirm that the two Git objects above are authentic, unmodified
builds authorised for this release and that all notices required by
components included in those builds are present. Complete the per-binary
build manifest and MUMPS source-access check in
numgeo/THIRD_PARTY_NOTICES.md. Also confirm that GPL-3.0-or-later is the
intended licence for the ACT source.
Required Python packages¶
The supported optimisers and reporting workflow use the same compact scientific Python stack:
DEEM, the SMAC-style optimiser and the local pattern search are included in the repository. They do not download code or models at run time. The SMAC-style optimiser can use scikit-learn when it is already installed, but its bundled NumPy Gaussian-process surrogate is used when scikit-learn is unavailable.
The source release is the complete calibration artifact
The supported v0.1.0 artifact is the tagged source checkout (or its source
archive). The Python wheel intentionally contains the importable ACT
package and licence material only; it does not contain the native solvers,
examples or documentation. Installing that wheel by itself is therefore
not a complete numgeo-ACT calibration installation.
Windows (Python layer only; solver release blocked)¶
The pinned Windows solver is not self-contained
The direct non-system imports of numgeo.exe include
libifcoremd.dll, libifportMD.dll, libmmd.dll, svml_dispmd.dll,
libiomp5md.dll and mkl_intel_thread.2.dll. They are not supplied by
this repository, and the executable exits with 0xC0000135
(STATUS_DLL_NOT_FOUND) on a clean Windows runner. Reinstalling ACT or
changing PATH cannot supply those libraries. Do not download individual
DLLs from unofficial sites.
Windows solver support requires either an authenticated, authorised portable/static numgeo build or a complete, version-matched and redistribution-authorised runtime bundle with its transitive dependencies and notices. The full Intel toolchain is intentionally not prescribed as an end-user workaround because it would not establish that exact release match and is unsuitable for the restricted/offline installation target.
Open PowerShell in the directory in which you want to keep ACT:
git clone --branch v0.1.0 --depth 1 https://github.com/j-machacek/numgeo-ACT.git
Set-Location numgeo-ACT
py -3.12 -m venv .venv
.venv\Scripts\python -m pip install --upgrade pip
.venv\Scripts\python -m pip install -e .
The editable installation makes ACT importable while keeping the checked-out
source as the code that runs. To enable the optional scikit-learn surrogate,
use .venv\Scripts\python -m pip install -e ".[surrogate]" instead.
If Git is unavailable, download the release archive on GitHub, extract it and open PowerShell in the extracted directory before creating the environment.
The ACT v0.1.0 tag and the authorised replacement executable must form one
tested release unit. Do not substitute an executable from main or another
tag. After the release owner closes the native-solver gate, add the directory
containing numgeo.exe, numgeo.bat or numgeo.cmd to the user or system
PATH. A new terminal is normally required after changing PATH.
where.exe numgeo
.venv\Scripts\python -c "from ACT.utilities.runtime import get_numgeo_command; print(get_numgeo_command())"
Both commands must print the intended executable. This verifies discovery only; it does not close the Windows native-solver gate described above.
Linux¶
From a terminal:
git clone --branch v0.1.0 --depth 1 https://github.com/j-machacek/numgeo-ACT.git
cd numgeo-ACT
sudo apt-get update
sudo apt-get install --yes --no-install-recommends libopenblas0-serial
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e .
Use .venv/bin/python -m pip install -e ".[surrogate]" if the optional
scikit-learn backend is wanted.
Use the Linux executable committed in the same v0.1.0 tag. Do not replace it
with one from main or another tag. Add its directory to PATH and ensure that
the executable bit is set:
chmod +x /path/to/numgeo
export PATH="/path/to:$PATH"
command -v numgeo
.venv/bin/python -c "from ACT.utilities.runtime import get_numgeo_command; print(get_numgeo_command())"
Put the export line in the appropriate shell profile if it should persist.
From the repository root, verify the pinned blob, native process and finite solver output with a new or empty work directory:
The validated Ubuntu 24.04 CI run produces 155 finite rows and reaches the requested 200 kPa load. The smoke test refuses to reuse a non-empty work directory so stale output cannot create a false pass.
Installation on a restricted computer¶
No optimiser repository needs to be cloned or installed separately. If the target computer cannot access PyPI, download wheels on another computer with the same operating system, processor architecture and Python version:
python -m pip download --only-binary=:all: --dest act-wheels \
pip setuptools wheel numpy scipy pandas openpyxl matplotlib cycler Pillow
Copy the complete ACT release directory, the matching numgeo executable and the
act-wheels directory to the restricted computer. Then install without network
access:
python -m pip install --no-index --find-links=act-wheels --upgrade \
pip setuptools wheel
python -m pip install --no-index --find-links=act-wheels \
numpy scipy pandas openpyxl matplotlib cycler Pillow
python -m pip install --no-deps --no-build-isolation -e .
Upgrading pip from the wheel bundle is required because editable installs from
pyproject.toml use PEP 660, supported by pip 21.3 and newer. Using a wheel set
prepared for a different Python or platform is a common cause of installation
failure.
The wheel directory covers Python packages only. For Ubuntu 24.04, stage
libopenblas0-serial and its operating-system dependencies through an approved
offline apt repository or a complete architecture-matched .deb bundle. The
current release candidate does not provide a supported offline Windows solver
bundle.
Import smoke test¶
Run this with the environment's Python interpreter:
python -c "from ACT import CMAES, DEEM, SMAC, local; from ACT.models import hardening_soil; from ACT.utilities.excel import excel; print('numgeo-ACT imports: OK')"
Then verify the solver lookup:
These checks do not run a finite-element analysis. Before committing to a long calibration, use the simulation-only pass described in the Quickstart.
Working directory
The editable install makes ACT importable from other directories. Relative
workbook and result inputs still resolve from the process's working
directory; model constructors immediately store their output directories as
absolute paths. Running bundled examples from the repository root keeps
those paths predictable; see Worked examples.
If a check fails, continue with Troubleshooting.