24小时热门版块排行榜    

查看: 1340  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

tsh8167

木虫 (小有名气)

[交流] 【求助】算分子能谱的时候结果全都为负数,是问题引起的? 已有4人参与

我在计算双探针体系中的分子能谱的时候,得出的数据是从-9942.9到-5474.78,这是我加入一个硝基后出现的错误。
    但是加另一种氨基和没加侧基团所计算的结果都是正常的。这三种体系都是用同一种方法构建,都用SZP基组进行了优化。
    请问,我的计算是什么地方发生了错误?有哪些原因可以导致上述的错误发生??
    期待高手指教。

[ Last edited by tsh8167 on 2010-6-28 at 11:29 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsh8167

木虫 (小有名气)

[quote]Originally posted by redhaier at 2010-06-28 19:54:31:
It is hard to say why since there is no input file.


输入文件的参数设置、计算部分:


# 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=[[3,3],[3,3]],
    equivalent_atoms=([0,0],[2,77])
    )
if processIsMaster(): nlPrint(twoprobe_configuration)
if processIsMaster(): file.addToSample(twoprobe_configuration, 'twoprobe_configuration')

######################################################################
# 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 = basisSetParameters(
    type = SingleZetaPolarized,
    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
)

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 = (3, 3, 100)
)

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 = (3, 3, 100)
)

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)

# Restore self consistent calculation from check point file
scf = restoreSelfConsistentCalculation(
    filename = 'D:/VNL/newmolecule/newmolecule-Au-NO2/newmolecule-Au-NO2-opt.nc'
)

runtime_parameters = runtimeParameters(
    verbosity_level = 5,
    checkpoint_filename = 'D:/VNL/newmolecule/newmolecule-Au-NO2/newmolecule-Au-NO2.nc'
)

# Using initial density from self consistent calculation
scf = executeSelfConsistentCalculation(
    twoprobe_configuration,
    two_probe_method,
    initial_calculation = scf,
    runtime_parameters = runtime_parameters
)
######################################################################
# Calculate physical properties
######################################################################
projected_hamiltonian_energy_spectrum = calculateProjectedHamiltonianEnergySpectrum(
    self_consistent_calculation = scf,
    projection_atoms = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77)
)
if processIsMaster(): nlPrint(projected_hamiltonian_energy_spectrum)
if processIsMaster(): file.addToSample(projected_hamiltonian_energy_spectrum, 'twoprobe_configuration', 'Projected Hamiltonian Energy Spectrum')

import numpy
transmission_spectrum = calculateTransmissionSpectrum(
    self_consistent_calculation = scf,
    energies = numpy.arange(-2.0, 2.0+0.002, 0.02)*electronVolt,
    brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((1, 1)),
    green_function_infinitesimal = 0.0001*electronVolt
)
if processIsMaster(): nlPrint(transmission_spectrum)
if processIsMaster(): file.addToSample(transmission_spectrum, 'twoprobe_configuration', 'Transmission Spectrum')




[ Last edited by tsh8167 on 2010-6-30 at 11:18 ]
7楼2010-06-30 11:16:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

redhaier

金虫 (小有名气)


tsh8167(金币+1): 2010-06-25 09:36:22
qasd(金币+1):谢谢 2010-06-28 20:11:38
what data?DOS?
引用回帖:
Originally posted by tsh8167 at 2010-06-24 15:41:57:
我在计算双探针体系中的分子能谱的时候,得出的数据是从-9942.9到-5474.78,这是我加入一个硝基后出现的错误。
    但是加另一种氨基和没加侧基团所计算的结果都是正常的。这三种体系都是用同一种方法构建,都用 ...

2楼2010-06-24 17:15:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsh8167

木虫 (小有名气)

是Energy Spectrum
引用回帖:
Originally posted by redhaier at 2010-06-24 17:15:00:
what data?DOS?


[ Last edited by tsh8167 on 2010-6-24 at 17:44 ]
3楼2010-06-24 17:43:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

redhaier

金虫 (小有名气)


hedaors(金币+1):谢谢交流 2010-06-25 22:47:19
tsh8167(金币+1):谢谢,我试试 2010-06-26 17:31:22
Ok, they should be the same, try to decrease the lower energy bound in the green function
integral contour.
引用回帖:
Originally posted by tsh8167 at 2010-06-24 17:43:19:
是Energy Spectrum


[ Last edited by tsh8167 on 2010-6-24 at 17:44 ]

4楼2010-06-25 22:41:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见