5. NanoDCAL support

LatticeMind turns a plain-language request into NanoDCAL calculations: it builds the crystal or two-probe device structure, writes the input decks, copies the LCAO basis files into the project so it runs anywhere, runs the decks on this machine or a remote server, and checks the outputs before reporting. Works with NanoDCAL 2022A/3.x (tested with 3.0.1 and 3.1.1).

5.1. In a research conversation

A conversation covers these NanoDCAL calculations:

  • Closed-system SCF and relaxation, with bands and DOS computed from the SCF’s own saved result rather than a new SCF.

  • Collinear spin, with an initial polarization declared per atom (1 / -1 for an antiferromagnetic pattern), so no hand-edited input is needed.

  • DFT+U, with a Hubbard parameter block giving U per element and orbital.

  • Band structures with NanoDCAL’s own band gap and the per-spin band edges along the path.

  • Complex band structures as a child of an SCF, reported per spin as the energy windows free of propagating modes and the smallest decay rate in each. With a transverse k-point grid the answer maps the lowest decay rate over the zone.

  • A relaxed geometry handed to a fresh SCF, for conjugate-gradient relaxations with fixed lattice vectors.

  • Two-probe transport for a zero-bias, spin-free lead pair: electrode SCFs, the device SCF built on them, then transmission and conductance, with a transmission plot. You declare the two electrodes; LatticeMind checks that both converged, share the device’s basis and settings, and match its transverse cell and sampling before the device is prepared. Each launch asks for permission.

Electrode convergence, device convergence and property completion are reported separately, and a device that did not converge cannot supply a transmission calculation. A converged transport result is not by itself converged with respect to transverse sampling, energy integration or buffer length; those need their own studies.

The tables below list what latticemind quick can request. The same prompts work in a conversation for the calculations listed above; others, such as finite-bias I–V curves and spin-resolved transport, currently run through latticemind quick.

5.2. Configure NanoDCAL before the first run

Configure a valid LatticeMind license for startup; it activates LatticeMind whichever solver you select. To run NanoDCAL calculations, also configure:

  1. A NanoDCAL executable, selected by LATTICEMIND_NANODCAL_CMD (latticemind setup saves one it finds).

  2. A 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.

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

5.3. Calculation types you can request

The prompts below have each produced a complete run with latticemind quick. 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

For effective-mass calculations, inspect the selected band, reciprocal-space point, tensor and units in EffectiveMass.mat before interpreting a plot. This manual does not currently include a verified GaAs effective-mass figure.

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

AC conductance and AC transmission

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

AcConductance.mat, AcTransmission.mat

Seebeck coefficient and thermoelectric current

“Using NanoDCAL, run a Seebeck coefficient calculation along z for a homogeneous copper two-probe device.”

SeebeckCoefficient.mat, ThermoelectricCurrent.mat — the transmission spectrum they integrate over is run first automatically

Photocurrent

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

Photocurrent.mat

Thermoelectric figure of merit ZT, phonon transmission channels

“Using NanoDCAL, calculate the Hessian and the thermoelectric figure of merit ZT along z for bulk copper.”

Hessian.mat, ThermoelectricProperties.mat, PhononTransmissionChannel.mat — the Hessian they consume is run first automatically

Devices are described in words. “A homogeneous aluminum two-probe device” builds the electrode from the bulk cell and the scattering region from that cell repeated along the transport axis; “an aluminum monatomic chain” builds a wire; supplied electrode and central-region structure files are used as given. A bias sweep such as “from 0 to 0.4 V in 0.2 V steps” becomes one biased device calculation per voltage feeding the I–V curve.

5.4. Continuing a transport project

A NanoDCAL project is a conversation. Each request below is a separate turn on the same project:

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

Now compute the current-voltage curve for the same device from 0 to 0.4 V
in 0.2 V steps.

Looking only at this project's own outputs: what is the transmission at the
Fermi energy, and is it close to an integer channel count?

The second turn does not restate the device; it inherits it from the request the project was founded on, adds the biased device calculations and the I–V step, and reuses the converged electrode and device objects rather than recomputing them. The third turn changes nothing and answers from the project’s own results.

The same holds for adding a property — “Add a Seebeck coefficient calculation to this project, reusing everything it already has” inserts the transmission spectrum the Seebeck coefficient is integrated from and executes only what is new — and for standing policies: “From now on, every transmission calculation in this project must use energy points from -1 to 1 eV. Re-render the transmission deck accordingly.” re-renders the deck with the new window and keeps the device.

With latticemind quick, a long calculation can be released and collected later (in a conversation, closing the terminal leaves the job running and latticemind in the folder picks it up):

latticemind run "Using NanoDCAL, run a transmission calculation along z for a homogeneous aluminum two-probe device." \
    --solver nanodcal --execute --approve-execution --remote-profile cluster --detach

latticemind run --project <project-dir> \
    "Continue this project: collect the finished results and report the transmission at the Fermi energy." \
    --execute --approve-execution --remote-profile cluster

The first command returns as soon as the remote wave is running; the second reattaches to it, fetches what finished, and reports from it. See Releasing a long calculation (latticemind quick).

5.5. Publish-ready figures and numeric summaries (latticemind quick)

In a conversation, figures are saved under results/plots/ and the answer states the numbers; /report writes the evidence report. The one-shot pipeline additionally writes these files after NanoDCAL produces a .mat result, reading the physical axes and units from that file:

  • 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 filename and the problem in the summary’s warnings and continues with 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.6. Execution options

  • Local — runs against a local NanoDCAL installation. Local runs take turns on the machine, so two LatticeMind sessions never start local calculations on top of each other; a run that has to wait says so.

  • Remote — a profile in ~/.latticemind/remote_profiles.toml with host, nanodcal_command and, if needed, shell_preamble. In a conversation, choose it with /remote. LatticeMind uploads the decks, basis files, the converged objects a dependent deck reads and the job script, runs them over SSH and fetches the outputs back into the project. With latticemind quick, --detach keeps the job running after LatticeMind exits. Multiple calculations can run in parallel on a multi-core server. See Remote & HPC execution.

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

See also

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