24小时热门版块排行榜    

查看: 446  |  回复: 3
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

huangyc

木虫 (正式写手)

[交流] 【求助】atk出错

试运行了vnl2008tutorial中的双电极体系(au-dabp45-au),结果出错

Traceback (most recent call last):
  File "c:/docume~1/huang/locals~1/temp/tmp39wpev.nl", line 295, in ?
    mulliken_population = calculateMullikenPopulation(self_consistent_calculation = scf)
NLTypeError: The population must contain non-negative numbers only.
Terminated Abnormally

请问什么原因,谢谢
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangyc

木虫 (正式写手)

from ATK.TwoProbe import *
from ATK.MPI import processIsMaster

# Generate time stamp
if processIsMaster():
    import platform, time
    print '#',time.ctime()
    print '#',platform.node(),platform.platform()+'\n'

# Opening vnlfile
if processIsMaster(): file = VNLFile('audabp45au_20091116223048.vnl')

# Scattering elements and coordinates
scattering_elements = [Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Hydrogen, Hydrogen, Hydrogen, Nitrogen,
                       Hydrogen, Hydrogen, Carbon,   Carbon,   
                       Carbon,   Carbon,   Carbon,   Carbon,   
                       Nitrogen, Hydrogen, Hydrogen, Hydrogen,
                       Hydrogen, Hydrogen, Carbon,   Carbon,   
                       Carbon,   Carbon,   Carbon,   Carbon,   
                       Hydrogen, Hydrogen, Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold]
scattering_coordinates = [[  0.00000000e+00,   0.00000000e+00,   6.11700010e+00],
                          [  0.00000000e+00,   2.88358140e+00,   6.11700010e+00],
                          [  2.88358140e+00,   0.00000000e+00,   6.11700010e+00],
                          [  2.88358140e+00,   2.88358140e+00,   6.11700010e+00],
                          [  1.44179070e+00,   4.32537222e+00,   8.15600014e+00],
                          [  1.44179070e+00,   1.44179070e+00,   8.15600014e+00],
                          [  4.32537222e+00,   4.32537222e+00,   8.15600014e+00],
                          [  4.32537222e+00,   1.44179070e+00,   8.15600014e+00],
                          [  1.60086274e-01,  -9.67610180e-01,   2.05394861e+01],
                          [  2.01193213e+00,   8.63351941e-01,   1.42820068e+01],
                          [  1.99148810e+00,   8.42127383e-01,   1.17814972e+01],
                          [ -1.89441778e-02,  -8.51594284e-03,   1.01856329e+01],
                          [ -2.00306058e+00,  -8.31739187e-01,   1.18283054e+01],
                          [ -1.98261642e+00,  -8.10514867e-01,   1.43288158e+01],
                          [  1.59706529e-02,   2.77248267e-02,   1.44547799e+01],
                          [  1.12803686e+00,   4.90180582e-01,   1.37419685e+01],
                          [  1.11672044e+00,   4.78353053e-01,   1.23422050e+01],
                          [ -7.09924707e-03,   3.88790248e-03,   1.16555326e+01],
                          [ -1.11916542e+00,  -4.58568066e-01,   1.23683443e+01],
                          [ -1.10784888e+00,  -4.46740210e-01,   1.37681078e+01],
                          [  2.89612487e-02,  -2.04552617e-02,   2.02142112e+01],
                          [ -1.98882377e+00,   8.17189336e-01,   1.86205718e+01],
                          [ -2.00961518e+00,   8.44308078e-01,   1.61201218e+01],
                          [ -8.49456787e-01,   3.36450189e-01,   2.05622060e+01],
                          [  1.99886203e+00,  -7.95792818e-01,   1.60689443e+01],
                          [  2.01965380e+00,  -8.22910905e-01,   1.85693950e+01],
                          [  1.65651944e-02,  -4.44326876e-03,   1.87443506e+01],
                          [ -1.11093760e+00,   4.62091446e-01,   1.80589754e+01],
                          [ -1.12270451e+00,   4.77325112e-01,   1.66592482e+01],
                          [ -6.52637938e-03,   2.58399248e-02,   1.59451657e+01],
                          [  1.12097657e+00,  -4.40694392e-01,   1.66305413e+01],
                          [  1.13274348e+00,  -4.55927581e-01,   1.80302686e+01],
                          [  7.36190081e-01,  -5.87917387e-01,   9.84774752e+00],
                          [ -8.99853408e-01,  -3.79354864e-01,   9.85917110e+00],
                          [  1.44179070e+00,   4.32537222e+00,   2.23060002e+01],
                          [  1.44179070e+00,   1.44179070e+00,   2.23060002e+01],
                          [  4.32537222e+00,   4.32537222e+00,   2.23060002e+01],
                          [  4.32537222e+00,   1.44179070e+00,   2.23060002e+01],
                          [  2.88358140e+00,   2.88358140e+00,   2.43450003e+01],
                          [  2.88358140e+00,   0.00000000e+00,   2.43450003e+01],
                          [  0.00000000e+00,   2.88358140e+00,   2.43450003e+01],
                          [  0.00000000e+00,   0.00000000e+00,   2.43450003e+01]]*Angstrom
        

electrode_elements = [Gold, Gold, Gold]
electrode_coordinates = [[ 0.        ,  0.        ,  0.        ],
                         [ 1.44179073,  1.44179073,  2.039     ],
                         [ 0.        ,  0.        ,  4.078     ]]*Angstrom

electrode_cell = [[ 2.88358145,  0.        ,  0.        ],
                  [ 0.        ,  2.88358145,  0.        ],
                  [ 0.        ,  0.        ,  6.117     ]]*Angstrom

# Set up electrodes
electrode_configuration = PeriodicAtomConfiguration(
    electrode_cell,
    electrode_elements,
    electrode_coordinates
    )

# Set up two-probe configuration
twoprobe_configuration = TwoProbeConfiguration(
    (electrode_configuration,electrode_configuration),
    scattering_elements,
    scattering_coordinates,
    electrode_repetitions=[[2,2],[2,2]],
    equivalent_atoms=([0,0],[2,41])
    )
if processIsMaster(): nlPrint(twoprobe_configuration)
if processIsMaster(): file.addToSample(twoprobe_configuration, 'audabp45au')

######################################################################
# Central region parameters
######################################################################
exchange_correlation_type = LDA.PZ

iteration_mixing_parameters = iterationMixingParameters(
    algorithm = IterationMixing.Pulay,
    diagonal_mixing_parameter = 0.1,
    quantity = IterationMixing.Hamiltonian,
    history_steps = 6
)

electron_density_parameters = electronDensityParameters(
    mesh_cutoff = 150.0*Rydberg
)

basis_set_parameters_Common = basisSetParameters(
    type = SingleZeta,
    radial_sampling_dr = 0.001*Bohr,
    energy_shift = 0.01*Rydberg,
    delta_rinn = 0.8,
    v0 = 40.0*Rydberg,
    charge = 0.0,
    split_norm = 0.15
)

basis_set_parameters_Carbon = basisSetParameters(
    type = DoubleZetaPolarized,
    energy_shift = 0.005*Rydberg,
    delta_rinn = 0.8,
    v0 = 40.0*Rydberg,
    charge = 0.0,
    split_norm = 0.15,
    element = Carbon
)

basis_set_parameters = [
    basis_set_parameters_Common,
    basis_set_parameters_Carbon
    ]

iteration_control_parameters = iterationControlParameters(
    tolerance = 1e-005,
    criterion = IterationControl.TotalEnergy,
    max_steps = 100
)

electrode_voltages = (0.0,0.0)*Volt

two_probe_algorithm_parameters = twoProbeAlgorithmParameters(
    electrode_constraint = ElectrodeConstraints.Off,
    initial_density_type = InitialDensityType.EquivalentBulk
)

energy_contour_integral_parameters = energyContourIntegralParameters(
    circle_points = 30,
    integral_lower_bound = 3*Rydberg,
    fermi_line_points = 10,
    fermi_function_poles = 4,
    real_axis_infinitesimal = 0.01*electronVolt,
    real_axis_point_density = 0.02*electronVolt
)

two_center_integral_parameters = twoCenterIntegralParameters(
    cutoff = 2500.0*Rydberg,
    points = 1024
)

######################################################################
# Left electrode parameters
######################################################################
left_electrode_electron_density_parameters = electronDensityParameters(
    mesh_cutoff = 150.0*Rydberg
)

left_electrode_iteration_control_parameters = iterationControlParameters(
    tolerance = 1e-005,
    criterion = IterationControl.TotalEnergy,
    max_steps = 100
)

left_electrode_brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters(
    monkhorst_pack_parameters = (1, 1, 500)
)

left_electrode_iteration_mixing_parameters = iterationMixingParameters(
    algorithm = IterationMixing.Pulay,
    diagonal_mixing_parameter = 0.1,
    quantity = IterationMixing.Hamiltonian,
    history_steps = 6
)

left_electrode_eigenstate_occupation_parameters = eigenstateOccupationParameters(
    temperature = 300.0*Kelvin
)

######################################################################
# Collect left electrode parameters
######################################################################
left_electrode_parameters = ElectrodeParameters(
    brillouin_zone_integration_parameters = left_electrode_brillouin_zone_integration_parameters,
    electron_density_parameters = left_electrode_electron_density_parameters,
    eigenstate_occupation_parameters = left_electrode_eigenstate_occupation_parameters,
    iteration_mixing_parameters = left_electrode_iteration_mixing_parameters,
    iteration_control_parameters = left_electrode_iteration_control_parameters
)

######################################################################
# Right electrode parameters
######################################################################
right_electrode_electron_density_parameters = electronDensityParameters(
    mesh_cutoff = 150.0*Rydberg
)

right_electrode_iteration_control_parameters = iterationControlParameters(
    tolerance = 1e-005,
    criterion = IterationControl.TotalEnergy,
    max_steps = 100
)

right_electrode_brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters(
    monkhorst_pack_parameters = (1, 1, 500)
)

right_electrode_iteration_mixing_parameters = iterationMixingParameters(
    algorithm = IterationMixing.Pulay,
    diagonal_mixing_parameter = 0.1,
    quantity = IterationMixing.Hamiltonian,
    history_steps = 6
)

right_electrode_eigenstate_occupation_parameters = eigenstateOccupationParameters(
    temperature = 300.0*Kelvin
)

######################################################################
# Collect right electrode parameters
######################################################################
right_electrode_parameters = ElectrodeParameters(
    brillouin_zone_integration_parameters = right_electrode_brillouin_zone_integration_parameters,
    electron_density_parameters = right_electrode_electron_density_parameters,
    eigenstate_occupation_parameters = right_electrode_eigenstate_occupation_parameters,
    iteration_mixing_parameters = right_electrode_iteration_mixing_parameters,
    iteration_control_parameters = right_electrode_iteration_control_parameters
)

######################################################################
# Initialize self-consistent field calculation
######################################################################
two_probe_method = TwoProbeMethod(
    electrode_parameters = (left_electrode_parameters,right_electrode_parameters),
    exchange_correlation_type = exchange_correlation_type,
    iteration_mixing_parameters = iteration_mixing_parameters,
    electron_density_parameters = electron_density_parameters,
    basis_set_parameters = basis_set_parameters,
    iteration_control_parameters = iteration_control_parameters,
    energy_contour_integral_parameters = energy_contour_integral_parameters,
    two_center_integral_parameters = two_center_integral_parameters,
    electrode_voltages = electrode_voltages,
    algorithm_parameters = two_probe_algorithm_parameters
)
if processIsMaster(): nlPrint(two_probe_method)

runtime_parameters = runtimeParameters(
    verbosity_level = 10,
    checkpoint_filename = 'audabp45au.nc'
)

# Perform self-consistent field calculation
scf = executeSelfConsistentCalculation(
    twoprobe_configuration,
    two_probe_method,
    runtime_parameters = runtime_parameters
)

######################################################################
# Calculate physical properties
######################################################################
atomic_forces = calculateAtomicForces(self_consistent_calculation = scf)
if processIsMaster(): nlPrint(atomic_forces)
if processIsMaster(): file.addToSample(atomic_forces, 'audabp45au', 'Atomic Forces')

current = calculateCurrent(
    self_consistent_calculation = scf,
    brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((1, 1)),
    green_function_infinitesimal = 1.0e-5*electronVolt,
    number_of_points = 100
)
if processIsMaster(): nlPrint(current)
if processIsMaster(): file.addToSample(current, 'audabp45au', 'Current')

electron_density = calculateElectronDensity(self_consistent_calculation = scf)
if processIsMaster(): file.addToSample(electron_density, 'audabp45au', 'Electron Density')

mulliken_population = calculateMullikenPopulation(self_consistent_calculation = scf)
if processIsMaster(): nlPrint(mulliken_population)
if processIsMaster(): file.addToSample(mulliken_population, 'audabp45au', 'Mulliken Population')

# Set verbosity level so that all energy components are printed
import ATK
verbosity_level=ATK.verbosityLevel()
ATK.setVerbosityLevel(10)
total_energy = calculateTotalEnergy(self_consistent_calculation = scf)
ATK.setVerbosityLevel(verbosity_level)

if processIsMaster(): nlPrint(total_energy,'Total energy')
if processIsMaster(): file.addToSample(total_energy, 'audabp45au', 'Total energy')

transmission_spectrum = calculateTransmissionSpectrum(
    self_consistent_calculation = scf,
    energies = (0.0,)*electronVolt,
    brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((1, 1)),
    green_function_infinitesimal = 1.0e-5*electronVolt
)
if processIsMaster(): nlPrint(transmission_spectrum)
if processIsMaster(): file.addToSample(transmission_spectrum, 'audabp45au', 'Transmission Spectrum')

лл
3楼2009-11-17 19:22:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

TIGERYZZ

金虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
zxzj05(金币+1,VIP+0):讨论奖励! 11-17 21:53
LZ可以把整个py脚本传上来看一下吗?
2楼2009-11-17 13:12:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iamddba

铁杆木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
yjmaxpayne(金币+3,VIP+0):谢谢 11-18 15:04
从你的模型来看,很明显出现了电极层堆叠错误(stacking fault),可以看出你的模型和tutorial中的例子不一样,是因为你将surface cell 中的layers设置为3的缘故。这和教程中说的是不一样的。
4楼2009-11-17 23:12:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见