Recent Posts

Pages: 1 ... 6 7 [8] 9 10
71
Hello,
Thank you for sharing your input and output files for the defect diffusion calculations. Upon review, we noticed that the workflow does not include the calculation of the chemical potential for the dopant atom (Boron). As a result, while the calculation completes, the relevant properties cannot be extracted.

To resolve this, we recommend the following steps (see the attached pdf for instructions with screenshots from the Workflow Builder):

1.   Add a ‘Block of Blocks’ for the Boron Reference Material.

2.   Include the calculated B chemical potential in the ChemicalPotentialTable.
 
3.   Left-click on the ChemicalPotentialTable block to specify the calculator and configurations for the chemical potential calculation.
 
4.   If you wish to include vibrational corrections, specify the phonon_calculator (your trained MachineLearnedForce Field MTP). We recommend using MTP for vibrational corrections instead of DFT to make the calculation feasible.
 
Additionally, we suggest reviewing all block connections in the workflow by left-clicking on each block to verify and adjust settings as needed.

Other observations:
1.   Isotropic Finite Size Corrections
•   If you calculate Optical Spectrum and Elastic constants to extract dielectric constant and bulk modulus values, respectively, that would then be used as parameters in the calculation of Isotropic FiniteSize Corrections, then you need to specify this in the IsotropicFiniteSizeCorrection parameters block.
•   We also recommend specifying a “higher” k-point sampling density for Optical Spectrum.
 
2.   Pristine Material
•   Set the “opgeom” under the PristineMaterial to  Conventional Unit Cell (8 atoms).
•   Then in the PristineConfiguration block  specify Supercell Repetitions 64-atom (2×2×2) or 216-atom (3×3×3) supercells.
 
3. CPD simulation settings
•   Use tighter DFT-LCAO SCF convergence criteria (e.g., 10⁻⁵). Increase the number of max iterations to 200.
•   Increase the  density mesh cutoff in DFT-LCAO — check convergence of total energy with respect to this parameter for the conventional unit cell.
•   Tighten the maximum force tolerance for all geometry optimizations to 0.005.

Please let us know if you have any questions or need further assistance with implementing these changes.

Best regards,
Vaida



72
General Questions and Answers / HartreeDifferencePotential caculation 2
« Last post by Steven Lin on September 15, 2025, 16:37 »
Hello, recently I've encountered a problem while calculating the Hartree difference potential. When using LDA, FHI, 300K, and 125 hartree to compute the Hartree plot of Ga₂O₃, the fluctuations are extremely large. When calculating using GGA and MGGA, the fluctuations are also extremely pronounced.
Is there any way to reduce these fluctuations?
73
Hello,

Thank you for reporting the issue to us.
1st case with MTP & DFT: could you please provide your mpt,  a workflow hdf5 file and also the result .hdf5 file, so that we could investigate why the results table was empty and how to fix this.

2nd case with DFT only: could you please also provide your workflow .hdf5 file and also the result log file?

Many  thanks, Vaida

74
I also tried this using LCAO calculator for all 4 calculator but still gave me error

Code
zipdir/NL/Study/Study.py:788: UserWarning: The original file of the Study object '/home/edrl_01/Desktop/1_Diffusion/a_MTP/2_SiB_Defect_Diffusion/2_Trial_2_canceled/2_Trial_2/250912_215415_i1dbrf1h.hdf5' no longer exists.This means no task results will be saved to the new file.
Traceback (most recent call last):
  File "/home/synopsys/quantumatk/X-2025.06/bin/../atkpython/bin/atkpython", line 8, in <module>
    sys.exit(__run_atkpython())
             ^^^^^^^^^^^^^^^^^
  File "zipdir/ATKExecutables/atkwrappers/__init__.py", line 912, in __run_atkpython
Traceback (most recent call last):
  File "/home/synopsys/quantumatk/X-2025.06/bin/../atkpython/bin/atkpython", line 8, in <module>
    sys.exit(__run_atkpython())
             ^^^^^^^^^^^^^^^^^
  File "zipdir/ATKExecutables/atkwrappers/__init__.py", line 912, in __run_atkpython
  File "./defect_diffusion_results.py", line 714, in <module>
    neb_table = generate_nebs_from_defect_migration_paths(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./defect_diffusion_results.py", line 695, in generate_nebs_from_defect_migration_paths
  File "./defect_diffusion_results.py", line 714, in <module>
    nebs = defect_migration_paths.generateNEBs(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "zipdir/NL/Defects/Migration/DefectMigrationPaths.py", line 538, in generateNEBs
    neb_table = generate_nebs_from_defect_migration_paths(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./defect_diffusion_results.py", line 695, in generate_nebs_from_defect_migration_paths
    nebs = defect_migration_paths.generateNEBs(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "zipdir/NL/Defects/Migration/DefectMigrationPaths.py", line 538, in generateNEBs
  File "zipdir/NL/Dynamics/Optimization/NudgedElasticBand.py", line 248, in __init__
  File "zipdir/NL/Dynamics/Optimization/NudgedElasticBand.py", line 248, in __init__
  File "zipdir/NL/CommonConcepts/QuantityChecks.py", line 764, in checkAndSetConfigurationList
  File "zipdir/NL/CommonConcepts/QuantityChecks.py", line 764, in checkAndSetConfigurationList
  File "zipdir/NL/CommonConcepts/Configurations/AtomicConfiguration.py", line 2480, in _compare
  File "zipdir/NL/CommonConcepts/Configurations/AtomicConfiguration.py", line 2480, in _compare
NL.ComputerScienceUtilities.Exceptions.NLValueError: The configurations in a NudgedElasticBand are only allowed to differ in the position of the atoms and the cell vectors.
Configuration 1 differs from configuration 0:
The tags of the atoms differ in the compared configurations.
Abort(1) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
NL.ComputerScienceUtilities.Exceptions.NLValueError: The configurations in a NudgedElasticBand are only allowed to differ in the position of the atoms and the cell vectors.
Configuration 1 differs from configuration 0:
The tags of the atoms differ in the compared configurations.
Abort(1) on node 16 (rank 16 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 16

Any help would be appreciated. Thanks
75
News and Announcements / Bugfix update QuantumATK X-2025.06-SP1
« Last post by Anders Blom on September 13, 2025, 00:58 »
A small bugfix update QuantumATK X-2025.06-SP1 has been released.

Download the installers from SolvNetPlus as usual.

Fixed issues:
  • In rare cases, it was not be possible to create a project folder on some network drives on Windows
  • The Jobs tool did not retain user preferences for script auto-start behavior and resets to default.
  • In the Editor, using “Find” and “Replace all” to replace a word with itself caused NanoLab to freeze.
  • QuantumATK X-2025.06 installation failed on ARM64 Windows machines with x86_64 binary support.
76
Where are these OrientationFunction and NematicOrderParameter functionalities supposed to come from? QuantumATK does not have those functionalities built in. You may have a separate script Analuyser.py which implements them, in which case you try
Code
from .Analyser import *
but that script then needs to be in the same directory as where you run.
77
Hello,

I am using QuantumATK version X-2025.06 on Linux. I am trying to run a post-processing analysis script in the Editor to calculate the NematicOrderParameter and OrientationFunction for my molecular dynamics simulation results.

However, I am consistently running into a ModuleNotFoundError. I have tried several different import statements based on documentation for various versions, but none seem to work.

The following import attempts have all failed:

from ATK.ForceField import ... (fails with No module named 'ATK')

from ATK.Analyser import ... (fails with No module named 'ATK')

from quantumatk.analysers... import ... (fails with No module named 'quantumatk')

from Analyser import ... (fails with No module named 'Analyser')

This suggests a fundamental issue with how the atkpython environment is finding its own modules in this version.

I have run a diagnostic script to check sys.path, and the output is included in the log file attached below. It seems the main libraries are located in a QATK.zip file, but I cannot find the correct syntax to import from it.

Could you please advise on the correct import syntax for NematicOrderParameter and OrientationFunction for version X-2025.06?

Below is my full analysis script and the latest error log. Thank you for your help.

Code
# ####################################################################
# #                       Required Libraries                         #
# ####################################################################
# This is the import section that is causing a ModuleNotFoundError.
# Trying the most basic import structure for NanoLanguage.
from NanoLanguage import *
from Analyser import NematicOrderParameter, OrientationFunction
from IO import nlread
import numpy
import pylab

# ####################################################################
# #                        !!! SETTINGS !!!                          #
# # PLEASE CAREFULLY EDIT THIS SECTION TO MATCH YOUR SIMULATION      #
# ####################################################################

# 1. Full name of your results file
results_filename = "PureAndC60_8CB_Resorvuar_Pro_NoE_results.py" # Enter your filename here

# 2. LOCAL indices of atoms defining the molecular axis
#    - In the Viewer, select the FIRST 8CB molecule (e.g., atoms with indices 0 to 46).
#    - Note the Index of the atom at the start of the axis (e.g., 5).
#    - Note the Index of the atom at the end of the axis (e.g., 25).
#    - Subtract 1 from these numbers and write them in the list below (e.g., [4, 24]).
axis_atom_indices_local = [4, 24] # THIS IS AN EXAMPLE, YOU MUST ENTER YOUR OWN VALUES!

# 3. Molecule and Atom Counts (Updated based on new information)
first_8cb_atom_index = 0              # 8CB molecules are now at the beginning
atoms_per_8cb_molecule = 47           # Number of atoms in one 8CB molecule (C21H25N)
total_atom_count = 3820               # New total atom count: (80 * 47) + 60

# 4. Temperature range to be analyzed (should be the same as in your simulation)
temperatures = range(293, 315)

# 5. Filenames for the output plots
s_parameter_plot_filename = "S_vs_Temperature_NEW.png"
angular_dist_plot_filename = "Angular_Distribution_NEW.png"

# ####################################################################
# #                  ANALYSIS SCRIPT (DO NOT MODIFY)                 #
# ####################################################################

# Create empty lists to store the results
calculated_s_parameters = []
first_temp_data = None
last_temp_data = None

# Create the list of all 8CB atom indices (excluding C60)
last_8cb_atom_index = first_8cb_atom_index + (80 * atoms_per_8cb_molecule)
all_8cb_indices = list(range(first_8cb_atom_index, last_8cb_atom_index))

print("+" + "-"*50 + "+")
print("ANALYSIS SCRIPT STARTED")
print(f"File: {results_filename}")
print(f"Total Atoms: {total_atom_count}, 8CB Atoms: {len(all_8cb_indices)}")
print("+" + "-"*50 + "+")
print(f"{'Temperature (K)':<15} | {'Order Parameter (S)':<25}")
print("-" * 52)

# Loop over temperatures
for T in temperatures:
    try:
        # Read the final configuration for each temperature from the HDF5 file
        object_id = f'last_image_3_md_reservoir_temperature_{float(T)}.0_Kelvin'
        configuration = nlread(results_filename, object_id=object_id)[0]

        # Calculate Nematic Order Parameter
        analysis_s = NematicOrderParameter(
            configuration=configuration,
            axis_atom_indices=axis_atom_indices_local,
            molecule_indices=[all_8cb_indices]
        )
        s_value = analysis_s.evaluate()
        calculated_s_parameters.append(s_value)
        print(f"{T:<15.1f} | {s_value:<25.4f}")
       
        # Calculate Orientation Function (only for the first and last temperatures for plotting)
        if T == temperatures[0] or T == temperatures[-1]:
            molecular_axes = []
            for i in range(first_8cb_atom_index, last_8cb_atom_index, atoms_per_8cb_molecule):
                atom1_index = i + axis_atom_indices_local[0]
                atom2_index = i + axis_atom_indices_local[1]
               
                pos1 = configuration.cartesianCoordinates()[atom1_index]
                pos2 = configuration.cartesianCoordinates()[atom2_index]
                vector = pos2 - pos1
                unit_vector = vector / numpy.linalg.norm(vector)
                molecular_axes.append(unit_vector)
           
            analysis_angular = OrientationFunction(vectors=molecular_axes, axis=[0,0,1])
            theta, probability = analysis_angular.evaluate()
           
            if T == temperatures[0]:
                first_temp_data = (theta, probability, T)
            else:
                last_temp_data = (theta, probability, T)

    except Exception as e:
        print(f"ERROR: Could not read or analyze data for T={T}K. Check the object_id. Error: {e}")
        calculated_s_parameters.append(None) # Append None in case of an error

print("\nGenerating plots...")

# Plot 1: S Parameter vs. Temperature
pylab.figure()
pylab.plot(temperatures, calculated_s_parameters, 'o-', label='S Parameter')
pylab.xlabel("Temperature (K)")
pylab.ylabel("Nematic Order Parameter (S)")
pylab.title("Order Parameter vs. Temperature")
pylab.ylim(0, 1)
pylab.grid(True)
pylab.legend()
pylab.savefig(s_parameter_plot_filename)
print(f"-> Saved plot: '{s_parameter_plot_filename}'")

# Plot 2: Angular Distribution
pylab.figure()
if first_temp_data:
    theta_first, prob_first, T_first = first_temp_data
    pylab.plot(theta_first * 180 / numpy.pi, prob_first, label=f'{T_first} K (Low Temperature)')
if last_temp_data:
    theta_last, prob_last, T_last = last_temp_data
    pylab.plot(theta_last * 180 / numpy.pi, prob_last, label=f'{T_last} K (High Temperature)')
pylab.xlabel("Angle with Z-axis (Degrees)")
pylab.ylabel("Probability Density")
pylab.title("Molecular Orientational Distribution")
pylab.grid(True)
pylab.legend()
pylab.savefig(angular_dist_plot_filename)
print(f"-> Saved plot: '{angular_dist_plot_filename}'")

print("\nANALYSIS COMPLETE!")
78
Dear sir,

Good morning, Hope this msg finds you well. PFA the snap shot for linearity analysis. How to perform this using quantum atk
Thank you.

If I provide the .opju ( Origin file ) or CSV file of ID-VGS Data of each devices(5 devices) . Can I get those analysis or someone can guide me once.  Then I can do the rest. Thank you.
79
Hello,

I am trying to use the Defect Diffusion workflow template to calculate the dopant diffusion rate in silicon, and I have a few questions about the setup.

I created an MTP using defect training and used that potential for pre-optimization, phonon calculation, and the LCAO calculator for bandgap and reference calculations. I also added an Element Reference Material block for the dopant chemical potential calculation. Since there is no tutorial available for this workflow template, I am not sure if this setup is correct.

The calculation finished successfully and a diffusion rate result was generated. However, when I click on it, the results table appears empty.
Has anyone experienced this issue before or could provide some guidance on how to resolve it?

Thank you in advance!
80
Plugin Development / Re: QATK 2024-09 IV Curve
« Last post by techenthusiast on September 9, 2025, 13:05 »
Yes, use IVCharacteristics, it works fine without gate too.

Not sure about IVCurve, is your problem that you can't read and plot old files?

Facing the same problem. Kindly advise.
Pages: 1 ... 6 7 [8] 9 10