Hello,
I want to get the lattcie parameters of the B2 phase of TiNi alloys (BCC structure, with Ti(0, 0, 0), Ni(0.5,0.5,0.5)), other peoples' works show that the lattice constant is 3.009-3.012 Angstrom,
( Ref: 1.
http://www.nature.com/nmat/journal/v2/n5/pdf/nmat884.pdf 2.
http://prb.aps.org/pdf/PRB/v79/i2/e020202 )
I redo the structure relax by VASP, almost get the same lattice constant.
My problem is: when I relax the structure with ATK with different input parameters (such as SZP, DZP, spin-polarized), get the lattice constant is:2.59-2.64 Angstrom. It seems the error is big.
Could you help me about this question? Thanks.
my input file for atk is :
# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------
# Set up lattice
vector_a = [3.009, 0.0, 0.0]*Angstrom
vector_b = [0.0, 3.009, 0.0]*Angstrom
vector_c = [0.0, 0.0, 3.009]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
elements = [Titanium, Nickel]
# Define coordinates
fractional_coordinates = [[ 0, 0, 0 ],
[ 0.5, 0.5, 0.5 ]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
GGABasis.Titanium_SingleZetaPolarized,
GGABasis.Nickel_SingleZetaPolarized,
]
#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SGGA.BLYP
numerical_accuracy_parameters = NumericalAccuracyParameters(
k_point_sampling=(10, 10, 12),
)
calculator = LCAOCalculator(
basis_set=basis_set,
exchange_correlation=exchange_correlation,
numerical_accuracy_parameters=numerical_accuracy_parameters,
)
bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('tini_unit_opt.nc', bulk_configuration)
bulk_configuration = OptimizeGeometry(
bulk_configuration,
max_forces=0.02*eV/Ang,
max_stress=0.02*eV/Ang**3,
max_steps=200,
max_step_length=0.5*Ang,
trajectory_filename=None,
optimizer_method=QuasiNewton(),
)
nlsave('tini_unit_opt.nc', bulk_configuration)
nlprint(bulk_configuration)