tako.singlePoint Settings
On this page
This page is generated from code-owned Doxygen-style metadata in src/script/takoScriptDocs.ts. Update that file first, then regenerate this page so runtime capability descriptions, docs, and agent guidance stay aligned.
tako.singlePoint
Runs a fixed-geometry calculation and returns properties for the exact input coordinates.
Signature: await tako.singlePoint(structure, { calculator, properties })
Theory
- A single point evaluates the potential-energy model without changing atomic positions or the cell. It is the base primitive for energy comparisons, force checks, charge analysis, DOS/PDOS extraction, density-derived analysis, and final-energy refinement after a relaxation.
- Energy differences are meaningful only when structures use the same calculator family, model, charge/spin settings, convergence settings, and compatible reference states. A single point does not repair bad geometries; large forces mean the structure is not stationary under the selected model.
- For periodic structures, stress is meaningful only when the calculator supports cell derivatives. For molecular GFN2 calculations, electronic properties such as charges and DOS/PDOS are method-specific outputs, not universal observables.
Usage Notes
- Use
singlePointafter generating or loading candidate structures when you want comparable fixed-geometry energies. - Request the smallest property set needed for the analysis; extra properties increase runtime and may require method support.
- For screening recipes, write both raw energies and normalized energies to
output/summary.jsonor a CSV so downstream comparisons are auditable.
Settings
| Setting | Type | Default | Values | Unit | Validation | Description |
|---|---|---|---|---|---|---|
calculator | calculator | Required for calculator-backed operations; validate the operation, structure element coverage, and requested properties before execution | Calculator object from tako.calculator.gxtb(...), gfn2(...), mlip(...), or dft(...). It controls the level of theory, charge/spin where supported, runtime assets, property availability, and the synchronous supported-element list used by TakoScript and the UI. | |||
properties | properties | level-dependent; MLIP: ['energy', 'forces']; GFN2: ['energy', 'forces', 'charges', 'dos', 'pdos'] | energy, forces, stress, dos, pdos, charges, electronDensity, chargeDensity, nci, molden, wfn, hdf5, orbitals, spinDensity, esp, densityDerivatives, fukui, elf | Unknown names are removed during normalization; energy and forces are reinserted. Backend-unsupported electronic channels are disabled/rejected or omitted according to the operation path; stress requires a periodic structure and calculator support for meaningful interpretation. | Requested result channels. Tako always keeps energy and forces; unsupported properties are rejected or omitted by calculator capability validation. MLIP supports energy, forces, and often stress; GFN2 adds molecular electronic outputs such as charges, DOS/PDOS, density, NCI, and WFN. QC/DFT adds a complete molecular or k-point HDF5 wavefunction and population-analysis checkpoint. |
Example
const structure = await tako.input("input/candidate.extxyz");
const calculator = tako.calculator.mlip({ levelOfTheory: "nequix" });
const result = await tako.singlePoint(structure, {
calculator,
properties: ["energy", "forces", "stress"],
});
await tako.output("output/single-point-summary.json", {
energyEv: tako.analysis.energyEv(result),
});
Result
Returned calculation result with total energy, convergence data, fixed output atoms, and calculator-dependent forces, stress, charges, and electronic-property payloads. Logs and persisted files belong to the calculation workspace rather than this returned object.
| Field | Type | Unit | Availability | Description |
|---|---|---|---|---|
kind | ”single_point” | Every successful result | Runtime result discriminator. | |
energy_hartree | number | Eh | Every successful result | Total calculator energy at the fixed geometry. |
energy_ev | number | eV | Every successful result | The same total energy converted to electronvolts. |
converged | boolean | Every successful result | Electronic/calculator convergence reported by the base evaluation. | |
iterations | integer | Every successful result | Electronic/calculator iteration count. | |
forces_ev_per_angstrom | [number, number, number][] | null | eV/Å | Every successful result; null only if the calculator supplies no forces | Constraint-applied Cartesian forces in input atom order when constraints exist; otherwise calculator forces. |
stress_ev_per_angstrom3 | 3×3 number array | null | eV/ų | Every successful result; populated only when stress was requested and returned | Cell stress tensor in the backend convention. |
atoms | object[] | Every successful result | Fixed output atoms in input order. | |
atoms[].id | integer | Every output atom | Stable input atom identifier. | |
atoms[].element | string | Every output atom | Element symbol. | |
atoms[].x | number | Å | Every output atom | Unchanged Cartesian x coordinate. |
atoms[].y | number | Å | Every output atom | Unchanged Cartesian y coordinate. |
atoms[].z | number | Å | Every output atom | Unchanged Cartesian z coordinate. |
atoms[].selective | [boolean, boolean, boolean] | Only atoms carrying selective-dynamics flags | Per-axis mobility flags copied from the input. | |
level_of_theory | string | Every successful result | Normalized level-of-theory identifier. | |
engine | ”gfn2” | “mlip” | “qc” | Every successful result | Calculation engine family. | |
method | string | GFN2 result only | Normalized GFN method name. | |
dispersion_requested | ”default” | “none” | “d3-bj” | “d4” | “d4-rev” | Every calculator-backed result | User selection before resolving the default policy. | |
dispersion | ”d3-bj” | “d4” | “d4-rev” | “none” | Every calculator-backed result | Effective dispersion treatment used by the calculation. | |
dispersion_parameter_method | ”wb97m” | “pbe” | “r2scan” | “skala-1.0” | Result with DFT-D3 | Published D3 parameter-record key used for the selected electronic method or reference functional. | |
dispersion_damping | ”bj” | DFT result with D3(BJ) | D3 damping family. | |
mlip_runtime | string | MLIP result only | Inference runtime identifier. | |
mlip_model | string | MLIP result only | Model-weight identifier. | |
settings.scf.energy_threshold | number | Eh | Every successful result | Normalized SCF energy threshold retained in the settings record. |
settings.scf.density_threshold | number | Every successful result | Normalized SCF density threshold. | |
settings.scf.max_iterations | integer | Every successful result | SCF iteration limit. | |
settings.scf.electronic_temperature_kelvin | number | K | Every successful result | Electronic temperature. |
settings.scf.mixer_damping | number | Every successful result | SCF mixer damping. | |
settings.scf.output_interval | integer | Every successful result | SCF log/output interval. | |
settings.scf.temperature_schedule_kelvin | number[] | K | Every successful result | Explicit electronic-temperature schedule. |
settings.scf.temperature_annealing.policy | string | Every successful result | Effective annealing policy. | |
settings.scf.temperature_annealing.start_kelvin | number | K | Every successful result | Annealing start temperature. |
settings.scf.temperature_annealing.stages | integer | Every successful result | Annealing stage count. | |
settings.scf.temperature_annealing.stage_iterations | integer | Every successful result | Iterations allocated to each annealing stage. | |
settings.scf.initial_guess | string | Every successful result | Normalized initial-guess mode. | |
settings.scf.mixer | string | Every successful result | Normalized SCF mixer name. | |
settings.scf.allow_unconverged | boolean | Every successful result | Whether an unconverged electronic state was permitted by settings. | |
solvation_model | string | null | Every successful result | Effective implicit-solvation model or null. | |
solvation_energy_hartree | number | null | Eh | Every successful result | Total solvation contribution when enabled. |
solvation_energy_ev | number | null | eV | Every successful result | Total solvation contribution converted to electronvolts. |
solvation_energy_elec_hartree | number | null | Eh | Every successful result | Electrostatic solvation contribution. |
solvation_energy_elec_ev | number | null | eV | Every successful result | Electrostatic solvation contribution converted to electronvolts. |
solvation_energy_cds_hartree | number | null | Eh | Every successful result | CDS contribution. |
solvation_energy_cds_ev | number | null | eV | Every successful result | CDS contribution converted to electronvolts. |
solvation_energy_cm5_hartree | number | null | Eh | Every successful result | CM5 contribution. |
solvation_energy_cm5_ev | number | null | eV | Every successful result | CM5 contribution converted to electronvolts. |
solvation_energy_shift_hartree | number | null | Eh | Every successful result | Solvation energy-shift contribution. |
solvation_energy_shift_ev | number | null | eV | Every successful result | Solvation energy-shift contribution converted to electronvolts. |
charges | object[] | Requested and produced GFN2 charge analysis | Mulliken charge records in input atom order. | |
charges[].id | integer | Every charge record | Input atom identifier. | |
charges[].element | string | Every charge record | Element symbol. | |
charges[].charge | number | e | Every charge record | Mulliken atomic charge. |
frontier.homo_ev | number | eV | GFN2 single points with a converged wavefunction | Highest occupied orbital energy. |
frontier.lumo_ev | number | eV | GFN2 single points with a converged wavefunction | Lowest unoccupied orbital energy. |
frontier.gap_ev | number | eV | GFN2 single points with both frontier orbitals | HOMO–LUMO gap. |
frontier.fermi_level_ev | number | eV | GFN2 single points with a converged wavefunction | Fermi level. |
bond_orders.cutoff | number | Requested and produced GFN2 bond-order analysis | Smallest Mayer bond order included in pairs. | |
bond_orders.pairs | object[] | Requested and produced GFN2 bond-order analysis | Atom pairs with Mayer bond order at or above the cutoff, strongest first. | |
bond_orders.pairs[].i | integer | Every bond-order pair | First input atom identifier. | |
bond_orders.pairs[].j | integer | Every bond-order pair | Second input atom identifier. | |
bond_orders.pairs[].element_i | string | Every bond-order pair | Element symbol of atom i. | |
bond_orders.pairs[].element_j | string | Every bond-order pair | Element symbol of atom j. | |
bond_orders.pairs[].order | number | Every bond-order pair | Mayer bond order. | |
magnetic_moments.total | number | μB | Requested magnetic-moment analysis on a spin-resolved run (g-xTB with unpaired electrons, or spin-polarized GFN2) | Total magnetic moment (sum of per-atom moments). Zero when the wavefunction is not spin-resolved. |
magnetic_moments.atoms | object[] | Requested magnetic-moment analysis on a spin-resolved run | Per-atom spin populations n↑ − n↓ in input atom order. | |
magnetic_moments.atoms[].id | integer | Every magnetic-moment record | Input atom identifier. | |
magnetic_moments.atoms[].element | string | Every magnetic-moment record | Element symbol. | |
magnetic_moments.atoms[].moment | number | μB | Every magnetic-moment record | Per-atom magnetic moment. |
dos.energies_ev | number[] | eV | Requested and produced GFN2 DOS | DOS energy grid. |
dos.total_dos | number[] | Requested and produced GFN2 DOS | Total DOS sampled on the energy grid. | |
dos.integrated_total_dos | number[] | Requested and produced GFN2 DOS | Integrated total DOS. | |
dos.width_ev | number | eV | Requested and produced GFN2 DOS | Gaussian broadening width. |
dos.broadening | ”gaussian” | Requested and produced GFN2 DOS | Broadening kernel. | |
pdos.energies_ev | number[] | eV | Requested and produced GFN2 PDOS | PDOS energy grid. |
pdos.total_dos | number[] | Requested and produced GFN2 PDOS | Total DOS on the PDOS grid. | |
pdos.fermi_level_ev | number | eV | Requested and produced GFN2 PDOS | Fermi level. |
pdos.series[] | object[] | Requested and produced GFN2 PDOS | Atom and shell projection series. | |
pdos.series[].label.kind | ”atom” | “shell” | Every PDOS series | Projection kind. | |
pdos.series[].label.index | integer | Every PDOS series | Atom or shell index. | |
pdos.series[].label.atom_index | integer | Shell series when mapped | Owning atom index. | |
pdos.series[].label.angular | integer | Shell series when derivable | Angular-momentum quantum number. | |
pdos.series[].label.orbital | ”s” | “p” | “d” | “f” | “l” | Shell series when derivable | Orbital label. | |
pdos.series[].dos | number[] | Every PDOS series | Projected DOS values. | |
pdos.width_ev | number | eV | Requested and produced GFN2 PDOS | Gaussian broadening width. |
pdos.broadening | ”gaussian” | Requested and produced GFN2 PDOS | Broadening kernel. | |
electron_density_cube | string | nominal e bohr^-3 | Requested and produced electron density | GFN electron-density Gaussian cube on the fixed 28^3 Cartesian grid. |
charge_density_cube | string | nominal e bohr^-3 | Requested and produced charge density | Signed Mulliken atomic net charges smeared with normalized isotropic Gaussians of sigma 0.6 bohr; not total charge density. |
nci.rdg_cube | string | dimensionless | Requested and produced NCI analysis | Reduced-density-gradient cube on the fixed common grid. |
nci.sign_lambda2_rho_cube | string | nominal e bohr^-3 | Requested and produced NCI analysis | sign(lambda2)rho cube from the middle density-Hessian eigenvalue. |
nci.summary.low_rdg_points | integer | Requested and produced NCI analysis | Strict-interior voxel count with RDG <= 0.5; not a volume or connected-region count. | |
nci.summary.attractive_points | integer | Requested and produced NCI analysis | Strict-interior voxel count with signed density < -1e-12 across all interior points, not only low-RDG points. | |
nci.summary.repulsive_points | integer | Requested and produced NCI analysis | Strict-interior voxel count with signed density > 1e-12 across all interior points, not only low-RDG points. | |
nci.summary.near_zero_points | integer | Requested and produced NCI analysis | Remaining strict-interior signed-density voxel count; the three sign counters partition all interior points. | |
orbital_cubes | OrbitalCube[] | Requested and produced frontier orbitals | Selected frontier-orbital amplitude cubes and optional squared-density cubes. | |
orbital_cubes[].label | string | Every orbital-cube record | Frontier display label such as HOMO or LUMO+1. | |
orbital_cubes[].band | integer | Every orbital-cube record | Zero-based molecular-orbital band index. | |
orbital_cubes[].energy_hartree | number | Eh | Every orbital-cube record | Orbital energy in Hartree. |
orbital_cubes[].energy_ev | number | eV | Every orbital-cube record | Orbital energy converted to electronvolts. |
orbital_cubes[].occupation | number | electrons | Every orbital-cube record | Ground-state orbital occupation. |
orbital_cubes[].cube | string | nominal bohr^-3/2 | Every orbital-cube record | Signed normalized molecular-orbital amplitude Gaussian cube. The cube header does not encode this scalar unit. |
orbital_cubes[].density_cube | string | nominal bohr^-3 | When per-orbital squared density was requested | |psi|^2 orbital-density Gaussian cube. The cube header does not encode this scalar unit. |
spin_density_cube | string | nominal e bohr^-3 | Requested and produced spin density | Alpha-minus-beta density cube; closed-shell restricted results are zero, while runtime may create a spin-polarized companion state. |
esp_cube | string | atomic electrostatic-potential unit (Eh e^-1) | Requested and produced ESP | Electrostatic-potential cube from the runtime atomic multipole model with short-range regularization. The cube header does not encode this scalar unit. |
density_derivatives.gradient_norm_cube | string | nominal e bohr^-4 | Requested and produced density derivatives | |grad rho| cube on the fixed grid; the cube header does not encode this scalar unit. |
density_derivatives.laplacian_cube | string | nominal e bohr^-5 | Requested and produced density derivatives | Density-Laplacian cube from finite differences on the fixed grid; the cube header does not encode this scalar unit. |
fukui.f_plus_cube | string | nominal e bohr^-3 per electron-number change | Requested and all N/N+1/N-1 companion SCFs succeeded | Electrophilic-addition Fukui finite-difference cube. Electron number is a dimensionless count; the cube header does not encode the scalar unit. |
fukui.f_minus_cube | string | nominal e bohr^-3 per electron-number change | Requested and all N/N+1/N-1 companion SCFs succeeded | Electrophilic-removal Fukui finite-difference cube. Electron number is a dimensionless count; the cube header does not encode the scalar unit. |
fukui.dual_descriptor_cube | string | nominal e bohr^-3 per electron-number change | Requested and all N/N+1/N-1 companion SCFs succeeded | Dual-descriptor cube derived from the two Fukui fields; the cube header does not encode the scalar unit. |
elf_cube | string | dimensionless | Requested, produced restricted-spin ELF | Electron-localization-function cube; current implementation is restricted-spin only. |
wavefunction_wfn | string | Requested and produced WFN output | Wavefunction export content. | |
wavefunction_hdf5_base64 | string | Requested QC/DFT HDF5 output | JSON-safe transport for the molecular or k-point HDF5 checkpoint. tako.output writes it as raw wavefunction.h5 bytes. |
Errors and Promise Behavior
- Normalization removes unknown property names and reinserts
energyandforces; calculator capability validation should be run before execution. MLIP electronic-analysis requests are unsupported and are rejected, disabled, or omitted according to the calling path. - The promise resolves only after the final
resultevent. Validation, asset loading, calculator/SCF execution, analysis, serialization, reset, cancellation, anddonewithout result reject it; cancellation usesCanceled by userand provides no restart checkpoint. - GFN2 emits cumulative partial results after core energy/forces and then DOS, PDOS, charges, electron density, charge density, NCI, orbitals, spin density, ESP, density derivatives, Fukui functions, ELF, and WFN in that order. Failure in a later requested stage rejects the overall promise even when earlier partial artifacts remain.
- Requested volumetric analyses map to exact cube artifacts including electron/charge density, NCI RDG/signed density, frontier orbitals, spin density, ESP, density gradient/Laplacian, Fukui/dual descriptor, and ELF; absence is not a numeric zero.