A new version of QTCAD® has just been released!
Full release notes hereafter:

Dear community of quantum scientists and engineers,
We are very happy to release a new version of QTCAD® which includes major new features and several improvements to key solvers and tto the software usability making of this version another significant expansion of our software after the version 2.0 released on last May.
Please find below the full release note of this version 2.1.0:
- New introduction of the QTCAD® Builder package for 3D device model construction: Built as a wrapper around Gmsh, QTCAD® Builder simplifies many common constructive operations and always produces conformal meshes. This is done by implementing the following solid modeling operations:
- Extrusion
- Deposition
- Growth
- Etching
- Cutting
- New 3D quantum device visualizer: We have added a brand-new 3D visualizer to streamline pre- and post-processing workflows. Includes a web browser-based workflow as well as a Python Notebook Widget. It can now display full device geometry, including boundaries, regions, and materials, giving you
clearer insight into your models. It has successfully been tested on fine meshes up to 500k nodes. This first release focuses on core functionality,
and we would love your feedback; let us know what features you would like to see next!- Visualise 3D Devices in browser windows and python notebooks
- View 2D attributes like boundaries and facets
- View 3D attributes by region or materials
- Displays the meshing of the devices
- New features to the Schrödinger-Poisson solver:
- Added the ability to fix the number of charges localized in the quantum subdevice, enabling many-body energy calculations for a specified charge configuration.
- Introduced an option to restrict the solver to quantized charges only, improving numerical stability and accelerating convergence.
- Possibility to replace the non-linear Poisson solver by a linear Poisson solver in the self-consistent Schrödinger-Poisson loop. This is useful when a quantum dot is not expected to be affected by any reservoir, e.g., at a source or drain.
- Implemented a new adaptive mixing strategy that further enhances convergence performance.
- Developed a workflow for simulating single-electron transistor (SET) characteristics within the constant-interaction model, including charging energies and capacitance.
- New materials:
- Added new materials to the `device.materials` module, `SiGe_DFT`, `Si_strained_on_SiGe`, and `Ge_strained_on_SiGe`, which respectively model SiGe alloys, epitaxially-strained Si films grown on SiGe buffers, and epitaxially-strained Ge films grown on SiGe buffers. The band gap and band alignment parameters for these materials were obtained via state-of-the-art density functional theory calculations based on Nanoacademic Technologies’s RESCU package. These three new materials are now covered in the `band_alignment.py` tutorial. These new materials enable accurate finite-element modeling of electrostatics and quantum confinement in Si/SiGe and Ge/SiGe devices.
- Added new material `GeSn` to the `device.materials` module for finite-element modeling of GeSn alloys with arbitrary Sn concentrations between 0 and 0.3 (the range over which GeSn is a semiconductor).
- Also added atomistic TB and Keating VFF model parameters for GeSn alloys in the `atoms.materials` module for atomistic modeling of GeSn.
- New features and improvements in the `qtcad.atoms` package:
- Periodic boundary conditions (PBCs) along one, two, or three directions of space may now be imposed when creating an atomic structure (`qtcad.atoms.Atoms` and `qtcad.atoms.SubAtoms` objects).
- Generalized the Keating valence force-field (VFF) model solver to account for PBCs, thereby enabling epitaxial atomic structure relaxation, which typically better models strain in heterostructures than freestanding relaxation (i.e. relaxation without PBCs).
- Generalized the atomistic tight-binding (TB) Schrödinger equation solver to account for PBCs and crystal momentum, in the absence of magnetic fields.
- Significantly generalized the atomic structure builders (`qtcad.atoms.Atoms` and `qtcad.atoms.SubAtoms` object constructors). While atomic structures could previously only be box-like in shape and involve variations in chemical composition in layers, an atomic structure may now be instantiated via a mesh and thus take any shape. The physical volumes of this mesh may define arbitrarily shaped regions of the atomic structure in which chemical composition may be altered. Regions may also be defined via bool-valued functions of Cartesian coordinates specifying which points in space are inside the region.
- The concentration of chemical species in a region of an atomic structure may now be specified via a function of Cartesian coordinates, thereby enabling non-trivial alloy concentration profiles. For example, this may be used to model the diffusion of Ge atoms in Si wells interposed between SiGe barriers.
- Implemented logarithmic sampling of wavevectors when generating a rough surface (`qtcad.atoms.rough_surface.RoughSurface` object) to properly sample modes at all relevant length scales with reduced computational cost, which is needed for practical modeling of rough surfaces with very large footprints (e.g. for electron shuttling devices).
- Implemented valley phase calculator in `qtcad.atoms.analysis.get_valley_phase`, which may be used in tandem with valley splitting calculations to describe valley dynamics (e.g. to model valley leakage during electron shuttling).
- Implemented various convenience functions/methods: the `qtcad.atoms.Atoms.get_potential` to evaluate the electric potential on the atomic positions; the `qtcad.atoms.Atoms.add_to_potential` to add arbitrary contributions to the electric potential, e.g. to model charge traps; the `qtcad.atoms.schrodinger.Solver.get_hamiltonian_phi` to evaluate the contribution of this potential to a TB Hamiltonian; the saving and loading of `qtcad.atoms.rough_surface.RoughSurface` objects.
- Restricted atomic structures (`qtcad.atoms.SubAtoms` objects) may now be instantiated without removing surface atoms with fewer than two nearest neighbours, which may be useful for visualization purposes.
- Made cosmetic improvements to 2D and 3D plots of rough surfaces with large aspect ratios.
- Changed default values of root-mean-square height, minimal sampled wavelength, maximal sampled wavelength, and number of sampled wavevectors for rough surface generator to more realistic and experimentally relevant values.
- Added warning message when attempting to solve the TB Schrödinger equation on an atomic structure with electric potential uniformly equal to zero.
- Fixed crash that would arise when calling the `qtcad.atoms.Atoms.print_energies` method prior to running the TB Schrödinger equation solver.
- Fixed crash that would arise when performing an atomic structure relaxation on a heterostructures of the type A-B-C with no Keating VFF model parameters for A-C bonds.
- Significantly optimized (~100x) the linear interpolation of the electric potential (or any other quantity) from a finite-element mesh to the atomic positions, thereby enabling accurate treatment of gate-induced potential in large-scale multiscale simulations (e.g. for electron shuttling).
- Miscellaneous optimizations, e.g. in the instantiation of a `qtcad.atoms.SubAtoms` object and in the assembly of a TB Hamiltonian.
- Miscellaneous clarity and cosmetic improvements to docstrings.
- Miscellaneous minor bugfixes.
- New features and improvements to the `qtcad.device` for superconducting-qubit modeling:
- Added support to inductive rectangular lumped port to the frequency-domain finite-element Maxwell solver: extraction of transmon eigenmodes is now possible.
- Added support to export fields as VTU files (new default).
- Improved support for the simulation of elaborate systems and the computation of a large number of eigenmodes.
- Quality-of-life improvements: control over CPUs used by the Maxwell solver and access to the files written by the capacitance and Maxwell solvers for programmatical post-processing.
- Tutorial showcasing eigenmode simulation of an Xmon with a Josephson junction approximated by an inductive port.
- Improved the tutorial on eigenmodes of a meandered resonator, which now features a more realistic design.
- Miscellaneous features and improvements in the `qtcad.device` package:
- Made the periodic boundary condition implementation more robust, now allowing periodicity to be specified along two directions.
- Improved the tutorial on periodic boundary conditions by using more realistic physical dimensions.
- Region-specific index output for geometries and materials, enabling direct visualization of meshes and material layouts in ParaView without running a solver.
- Clearer docstrings and documentation, along with more transparent errors and warnings.
- Added a method to extract and save data from arbitrary 2D slices of 3D meshes.
- Added support for compressing meshes from `.msh` and `.msh4` into`.h5`/`.hdf5`, providing smaller file sizes and full compatibility with adaptive meshing tool.
- Support for multilayer boundary conditions, allowing inputs as sequences of potentials and lists.
- Added an optional subsampling feature that allows saved data to be interpolated onto coarser meshes to reduce storage requirements.
- Expanded `.vtu` support to include 2D meshes.
- Added a new Frequently Asked Questions section to the documentation website.
- Added support for adaptive symmetric meshing, along with a new tutorial explaining its use.
- Introduced `save` and `load` methods for solvers, enabling quick and flexible reproduction of results.
Traditionally at each release, we want to thank very much for their trust all our active users and partners worldwide, making a growing community every year.
We sincerely appreciate the increasing number and quality of our users, from both academic and industrial organizations, making reports, communicating with us with amazing improvement suggestions and publishing more and more scientific papers citing us. Some of our QTCAD® partners have been utilizing our software for almost 4 years, and we greatly value their invaluable and precious feedback and continuous support. We express a special thank you to them for helping us develop a reliable, powerful, and unique software solution in the quantum computing industry market.
To join the QTCAD® community, simply create your user account on our portal and download the tool to test it: https://portal.nanoacademic.com/ It’s fast and easy.
The online documentation has been updated, you will find all the information on this new version here: QTCAD 2.1 — QTCAD 2.1 documentation (nanoacademic.com).
Link to the latest QTCAD® brochure: PLEASE CLICK HERE
Note: You may need to clear the cache of your favorite PC/Mac/Limux or mobile platform Internet browser if an older version of the document has been viewed.

Also, do not miss checking out on QTCAD® EDU, a version of QTCAD® to teach students in classrooms: More information here.
Please follow us on LinkedIn and on X!
Thank you very much for your interest and continued support.
Nanoacademic’s Quantum Technology team in charge of QTCAD®.