Standalone installation (no MATLAB licence)

The standalone build of NanoDCAL is the solver compiled with the MATLAB Compiler. It runs on the MATLAB Runtime instead of MATLAB, so it needs no MATLAB licence; it is single-node and Linux x86-64 only. There are two ways to get it: the nanodcal Python package (recommended) and the standalone archive from the portal. Both need the MATLAB Runtime and a licence file. The Python package comes with the Nanoacademic CLI, nano-cli, which installs the Runtime and fetches the licence for you.

Install with pip

  1. Install the package

    In a virtual environment, install nanodcal from the Nanoacademic package index.

    python3 -m venv nanodcal-env
    source nanodcal-env/bin/activate
    pip install --index-url https://pypi.nanoacademic.ca/simple/ nanodcal
    

    This installs the nanodcal command and nano-cli.

  2. Install the MATLAB Runtime

    The solver runs on the MATLAB Runtime of the release it was built with (R2026a for NanoDCAL 3.1.2). The Runtime is licensed by MathWorks and downloaded from them; it is not part of the package. Run

    nano-cli
    

    and choose Install MATLAB Runtime. The menu shows the NanoDCAL version you installed and the Runtime it needs, asks you to accept the MathWorks licence terms, then downloads and installs that Runtime into your home directory (about 6 GB to download, 12 GB once installed). No root access is needed. The same without the menu:

    nano-cli runtime install --accept-license
    

    If the Runtime is already installed elsewhere, for example as a module on a cluster, set MCRROOT to its directory instead.

  3. Add the licence file

    Create an account on the Nanoacademic Portal and activate the NanoDCAL free trial (see Activating NANODCAL), then let the CLI fetch the licence:

    nano-cli session login
    nano-cli licenses download --product nanodcal
    

    The licence is saved as $HOME/.nanoacademic/NANODCAL/license.lic. To use a licence stored elsewhere, set NANODCAL_LICENSE_PATH to that file.

  4. Check and test

    nanodcal --check              # the Runtime and the licence are found
    nanodcal --examples           # copies the bundled test into ./nanodcal_test
    cd nanodcal_test && nanodcal scf.input
    

    You should see results from the test calculation if your package is adequately configured.

Standalone archive from the portal

The archive nanodcal-standalone-linux-<version>-mcr<release>.zip from the Nanoacademic Portal holds the launcher script nanodcal.sh, the executable nanodcalmat, a test folder nanodcal_test/ and a README.md.

  1. MATLAB Runtime

    The README.md names the MATLAB Runtime release the binary was built with; that exact release is required. The easiest way to install it is nano-cli, which downloads it from MathWorks once you accept their licence terms and installs it into your home directory, without root access:

    pip install --index-url https://pypi.nanoacademic.ca/simple/ nanoacademic-atomistics-cli
    nano-cli runtime install --release R2026a
    nano-cli runtime path --release R2026a
    

    Then set MATLAB_RUNTIME_DIR in nanodcal.sh to the directory the last command prints.

    To install it by hand instead, download the release named in the README from MathWorks, extract the .zip and run sudo ./install. The default location, /usr/local/MATLAB/MATLAB_Runtime/<release>, is where nanodcal.sh expects it; edit MATLAB_RUNTIME_DIR in the script if you install elsewhere.

  2. Add the licence file

    Download license.lic from the portal into $HOME/.nanoacademic/NANODCAL/, or set NANODCAL_LICENSE_PATH in nanodcal.sh to wherever you keep it.

  3. Test

    cd nanodcal_test
    ../nanodcal.sh scf.input
    

Troubleshooting

The solver prints a bare number when the licence is refused:

  • 20: expired licence

  • 60: activation limit reached (the licence was installed on too many computers)

  • 146: licence not found

  • 48: network issues

Check that the licence path corresponds to a valid licence; expiry and the activation limit cause most of these. nanodcal --check reports where the licence and the Runtime are looked for.