QuantumATK Forum
QuantumATK => General Questions and Answers => Topic started by: fangyongxinxi on April 13, 2013, 04:42
-
the calculation results of two version ATK
Dear,
I use atk 2010.8 (with official license) and 2012.8 (temp license)
to calculate the energy of one system, but get a small difference
version_2012: -4931.6453 eV (version 2011 get the same result)
version_2010: -4931.63 eV
what caused the difference ?
because some default setting are different ?
Thanks
# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------
# Set up lattice
vector_a = [3.55, -4.03779418951e-13, 1.2407414431e-10]*Angstrom
vector_b = [-4.03779421568e-13, 3.55, 8.05456427157e-11]*Angstrom
vector_c = [4.77081609186e-10, 3.09914276141e-10, 14.22]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
elements = [Potassium, Potassium, Iron, Iron, Iron, Iron, Selenium, Selenium, Selenium, Selenium]
# Define coordinates
fractional_coordinates = [[ 1.14468617e-11, 8.78736620e-12, -9.23438392e-04],
[ 5.00000000e-01, 5.00000000e-01, 4.99103142e-01],
[ 9.41847484e-11, 5.00000000e-01, 2.49187516e-01],
[ 5.00000000e-01, 9.56876004e-11, 2.49187512e-01],
[ 5.28106589e-10, 4.99999999e-01, 7.48865737e-01],
[ 4.99999999e-01, 4.12406619e-10, 7.48865716e-01],
[ -4.40822247e-11, -4.24698793e-11, 3.67582854e-01],
[ 5.00000000e-01, 5.00000000e-01, 8.67292159e-01],
[ -1.73557970e-10, -1.40654216e-10, 6.30480239e-01],
[ 5.00000000e-01, 5.00000000e-01, 1.30763705e-01]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
LDABasis.Potassium_SingleZetaPolarized,
LDABasis.Iron_SingleZetaPolarized,
LDABasis.Selenium_SingleZetaPolarized,
]
ex = LDA.PW
numerical_accuracy_parameters = NumericalAccuracyParameters(
grid_mesh_cutoff=50.0*Hartree,
k_point_sampling=(9, 9, 3),
)
calculator = LCAOCalculator(
basis_set=basis_set,
exchange_correlation = ex,
numerical_accuracy_parameters=numerical_accuracy_parameters,
)
bulk_configuration.setCalculator(calculator)
# bulk_configuration.update()
# -------------------------------------------------------------
# Total energy
# -------------------------------------------------------------
total_energy = TotalEnergy(bulk_configuration)
nlsave('2010.nc', total_energy)
nlprint(total_energy)
# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------
# Set up lattice
vector_a = [3.55, -4.03779418951e-13, 1.2407414431e-10]*Angstrom
vector_b = [-4.03779421568e-13, 3.55, 8.05456427157e-11]*Angstrom
vector_c = [4.77081609186e-10, 3.09914276141e-10, 14.22]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
elements = [Potassium, Potassium, Iron, Iron, Iron, Iron, Selenium, Selenium, Selenium, Selenium]
# Define coordinates
fractional_coordinates = [[ 1.14468617e-11, 8.78736620e-12, -9.23438392e-04],
[ 5.00000000e-01, 5.00000000e-01, 4.99103142e-01],
[ 9.41847484e-11, 5.00000000e-01, 2.49187516e-01],
[ 5.00000000e-01, 9.56876004e-11, 2.49187512e-01],
[ 5.28106589e-10, 4.99999999e-01, 7.48865737e-01],
[ 4.99999999e-01, 4.12406619e-10, 7.48865716e-01],
[ -4.40822247e-11, -4.24698793e-11, 3.67582854e-01],
[ 5.00000000e-01, 5.00000000e-01, 8.67292159e-01],
[ -1.73557970e-10, -1.40654216e-10, 6.30480239e-01],
[ 5.00000000e-01, 5.00000000e-01, 1.30763705e-01]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
LDABasis.Potassium_SingleZetaPolarized,
LDABasis.Iron_SingleZetaPolarized,
LDABasis.Selenium_SingleZetaPolarized,
]
ex = LDA.PW
numerical_accuracy_parameters = NumericalAccuracyParameters(
grid_mesh_cutoff=50.0*Hartree,
k_point_sampling=(9, 9, 3),
)
calculator = LCAOCalculator(
basis_set=basis_set,
exchange_correlation = ex,
numerical_accuracy_parameters=numerical_accuracy_parameters,
)
bulk_configuration.setCalculator(calculator)
bulk_configuration.update()
# -------------------------------------------------------------
# Total energy
# -------------------------------------------------------------
total_energy = TotalEnergy(bulk_configuration)
nlsave('2012.nc', total_energy)
nlprint(total_energy)
-
I think the main reason is a change in the default mixing parameters. But as a general rule, if you want to compare total energies (which by themselves, as absolute values, are meaningless, so only comparisons matter, for instance for different basis sets for configurations, etc) you should always use the same version of any code, and hence the difference doesn't really matter.