5. NanoDCAL support (experimental)

Note

NanoDCAL support is experimental and in active development. Every calculation type listed here has been run end-to-end on real hardware during internal testing — but the surface is smaller and evolving faster than the RESCU backend. Last exercised against NanoDCAL 2022A (remote) and 3.1.1 (local), LatticeMind ≥ 0.1.9.

LatticeMind turns a plain-language request into a complete, launch-ready NanoDCAL workflow: it selects the calculation steps, builds the crystal or two-probe device structure, renders the input decks with a curated parameter vocabulary, stages the LCAO basis files with the project so it runs anywhere, executes the decks locally or on a remote server, and verifies the outputs before reporting results.

5.1. Configure NanoDCAL before the first run

Configure a valid RESCU license for LatticeMind startup; the same license supports RESCU execution. To run NanoDCAL calculations, also configure:

  1. A NanoDCAL executable, selected by LATTICEMIND_NANODCAL_CMD or the Web UI’s Local NanoDCAL command field.

  2. A separate NanoDCAL license on the computer that runs the solver. Test a small NanoDCAL example directly before launching it through LatticeMind.

  3. The extracted NeutralAtomDatabase from the Nanoacademic Portal, selected by LATTICEMIND_NANODCAL_DATA_PATH or the Web UI’s NanoDCAL neutral atom data field.

LatticeMind searches the configured database recursively, verifies that every requested element has a *.nad or *.mat file, and stages the selected files under the project’s nanodcal_basis/ directory. When sharing a project, please keep that directory within the scope of your Nanoacademic license. See Licenses and solver executables for complete local and remote setup.

5.2. Supported and tested calculation types

The prompts below have each produced a complete, verified run. Substitute your own material freely.

Ground state and energetics

Calculation

Example prompt

Key outputs

SCF

“Using NanoDCAL, run an SCF calculation for silicon.”

NanodcalObject.mat, total energy

Total energy

“Using NanoDCAL, calculate total energy for silicon.”

TotalEnergy.mat

Charge analysis

“Using NanoDCAL, calculate charge analysis for silicon.”

Charge.mat, per-atom charges

Effective potential

“Using NanoDCAL, calculate effective potential for silicon.”

EffectivePotential.mat

Electron density

“Using NanoDCAL, extract electron density for silicon.”

TotalElectronDensity.mat, integrated electron count

Starting fields

“Using NanoDCAL, create initialization, non-SCF rigid atomic field, and Harris-field decks for diamond germanium.”

initialization, non-SCF, and Harris-field objects

Combined ground-state properties

“Using NanoDCAL, calculate total energy, effective potential, electron density, and charge analysis for rocksalt MgO.”

all four property files after one SCF calculation

Electronic structure

Calculation

Example prompt

Key outputs

Band structure

“Using NanoDCAL, run an SCF and band-structure calculation for silicon.”

BandStructure.mat, band gap, plot

Full band structure

“Using NanoDCAL, run SCF and calculate full band structure for aluminum.”

FullBandStructure.mat

Complex band structure

“Using NanoDCAL, calculate the complex band structure for silicon.”

ComplexBandStructure.mat

Density of states

“Using NanoDCAL, calculate density of states for silicon.”

DensityOfStates.mat, plot

Joint DOS

“Using NanoDCAL, calculate the joint DOS for silicon.”

JointDensityOfStates.mat

Effective mass

“Using NanoDCAL, calculate the effective mass for GaAs.”

EffectiveMass.mat

Eigen-states and wavefunctions

“Using NanoDCAL, run SCF and calculate eigen-states, real-space wavefunction, and effective mass for silicon.”

EigenStates.mat, RealSpaceWavefunction.mat

Post-SCF and momentum

“Using NanoDCAL, run SCF, post-SCF spin-orbit coupling, and momentum analysis for silicon.”

CalculatedResults.mat, Momentum.mat

Spin polarization

“Using NanoDCAL, calculate spin polarization for ferromagnetic bcc iron.”

SpinPolarization.mat

Structure and mechanics

Calculation

Example prompt

Key outputs

Relaxation

“Using NanoDCAL, relax rocksalt MgO and calculate elastic modulus.”

relaxed structure

Forces and stress

“Using NanoDCAL, calculate the force and stress for silicon.”

Force.mat, Stress.mat

Elastic modulus

“Using NanoDCAL, relax diamond germanium and calculate force, stress, and elastic modulus.”

ElasticModulus.mat

Phonons (finite-displacement Hessian)

Calculation

Example prompt

Key outputs

Phonon band structure

“Using NanoDCAL, calculate the Hessian and phonon band structure for silicon.”

Hessian.mat, PhononBandStructure.mat

Phonon DOS

“Using NanoDCAL, calculate the Hessian and phonon density of states for silicon.”

PhononDensityOfStates.mat

Phonon full band structure

“Using NanoDCAL, calculate the Hessian, phonon band structure, and phonon full band structure for rocksalt MgO.”

PhononFullBandStructure.mat

Quantum transport (two-probe devices)

LatticeMind builds the full lead-SCF → device-SCF → property chain automatically from a one-line request.

Calculation

Example prompt

Key outputs

Transmission

“Using NanoDCAL, run a transmission calculation along z for a homogeneous aluminum two-probe device.”

Transmission.mat, T(E)

Conductance

“Using NanoDCAL, run a conductance calculation along z for a homogeneous aluminum two-probe device.”

ConductanceAndCurrent.mat

I–V curve

“Using NanoDCAL, run an I-V curve calculation along z for a homogeneous aluminum two-probe device.”

CurrentVoltageCurves.mat

Scattering states

“Using NanoDCAL, run a scattering-states calculation along z for a homogeneous aluminum two-probe device.”

ScatteringStates.mat

Transmission channels

“Using NanoDCAL, run SCF and transmission-channel analysis for ferromagnetic bcc iron.”

TransmissionChannel.mat

5.3. Publish-ready figures and numeric summaries

After NanoDCAL writes a .mat result, LatticeMind reads the physical axes and units from that file and writes these project-local files:

  • results/analysis_summary.json contains scalar and array-shape summaries, including the band gap, integrated electron count, transmission at the Fermi level, force maximum, stress maximum, and transport channel count when those quantities are present.

  • figures/<name>.png is the 360 dpi report image embedded in report.html.

  • figures/<name>.svg and figures/<name>.pdf are editable or vector exports for a manuscript.

  • results/figure_manifest.json names the source .mat file and records every PNG, SVG, and PDF path, plus PNG dimensions and DPI.

The figure type follows the solver data:

  • Band structures use Fermi-referenced energy axes. Effective-mass figures use electron/hole dispersion fits and directional components in units of \(m_e\).

  • EigenStates.mat contains only the bands and k-points requested by calculation.eigenStates.numberOfBands and kSpaceGridNumber. For the silicon eigenstate prompt, [1,1] at a [1,1,1] grid selects one state below and one state above \(E_F\) at Γ. Their energy separation is a selected direct Γ-point separation, not the fundamental indirect band gap; request a band-structure calculation to determine the latter.

  • EffectivePotential.mat and TotalElectronDensity.mat produce three orthogonal slices plus plane-averaged profiles.

  • TransmissionChannel.mat produces transverse-k maps split by spin.

  • Force, stress, and elastic-modulus figures use eV/Angstrom and GPa.

  • NanodcalObject.mat, TotalEnergy.mat, and CalculatedResults.mat contribute descriptors but do not create a figure from saved-object or scalar-only arrays.

If one file contains an unsupported array shape, LatticeMind records the exact filename and parser error in results/analysis_summary.json.warnings and continues processing the other files. A follow-up request can regenerate the figures without rerunning NanoDCAL:

Reprocess the existing NanoDCAL outputs and regenerate all report figures
without rerunning the solver.

5.4. Execution options

  • Local — runs against a local NanoDCAL installation.

  • Remote — a profile in ~/.latticemind/remote_profiles.toml with the exact fields host, nanodcal_command, and shell_preamble. LatticeMind stages a self-contained bundle (decks, basis files, job script), runs it over SSH, and fetches the verified outputs back into the project. Multiple calculations can run in parallel on a multi-core server. See Remote & HPC execution.

  • Portable basis — basis files travel with the project (nanodcal_basis/), so a project generated on one machine runs unchanged on another.

See also

For a worked NanoDCAL tutorial, see NanoDCAL: electronic structure and transport (experimental) in the advanced tutorials.