QuantumATK Forum
QuantumATK => General Questions and Answers => Topic started by: naash on April 4, 2011, 06:22
-
# Set up configuration
central_region = BulkConfiguration(
bravais_lattice=central_region_lattice,
elements=central_region_elements,
cartesian_coordinates=central_region_coordinates
)
device_configuration = DeviceConfiguration(
central_region,
[left_electrode, right_electrode]
)
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
LDABasis.Gold_SingleZetaPolarized,
LDABasis.Carbon_DoubleZetaPolarized,
]
#----------------------------------------
# Numerical Accuracy Settings
#----------------------------------------
left_electrode_numerical_accuracy_parameters = NumericalAccuracyParameters(
k_point_sampling=(10, 10, 100),
)
right_electrode_numerical_accuracy_parameters = NumericalAccuracyParameters(
k_point_sampling=(10, 10, 100),
)
device_numerical_accuracy_parameters = NumericalAccuracyParameters(
k_point_sampling=(10, 10, 100),
)
#----------------------------------------
# Poisson Solver Settings
#----------------------------------------
device_poisson_solver = MultigridSolver(
boundary_conditions=[[PeriodicBoundaryCondition,PeriodicBoundaryCondition],
[PeriodicBoundaryCondition,PeriodicBoundaryCondition],
[DirichletBoundaryCondition,DirichletBoundaryCondition]]
)
#----------------------------------------
# Electrode Calculators
#----------------------------------------
left_electrode_calculator = LCAOCalculator(
basis_set=basis_set,
numerical_accuracy_parameters=left_electrode_numerical_accuracy_parameters,
)
right_electrode_calculator = LCAOCalculator(
basis_set=basis_set,
numerical_accuracy_parameters=right_electrode_numerical_accuracy_parameters,
)
#----------------------------------------
# Device Calculator
#----------------------------------------
voltagelist=[0.2*i for i in range(26)]
for myvolt in voltagelist:
calculator = DeviceLCAOCalculator(
basis_set=basis_set,
numerical_accuracy_parameters=device_numerical_accuracy_parameters,
electrode_calculators=
[left_electrode_calculator, right_electrode_calculator],
electrode_voltages=( 0.0*Volt, myvolt*Volt)
)
device_configuration.setCalculator(calculator)
nlprint(device_configuration)
device_configuration.update()
if(myvolt<0.3):
nlsave('/home/hassan/C80/C80mr61.nc', device_configuration)
# -------------------------------------------------------------
# Transmission spectrum
# -------------------------------------------------------------
transmission_spectrum = TransmissionSpectrum(
configuration=device_configuration,
energies=numpy.linspace(-5,5,100)*eV,
kpoints=MonkhorstPackGrid(1,1),
energy_zero_parameter=AverageFermiLevel,
infinitesimal=1e-06*eV,
self_energy_calculator=KrylovSelfEnergy(),
)
nlsave('/home/hassan/C80/C80mr61.nc', transmission_spectrum)
nlprint(transmission_spectrum)
what is wrom with the above script for it does not generate the specified number of transmission curves
-
In the line:
nlsave('/home/hassan/C80/C80mr61.nc', transmission_spectrum)
you had better to add different "object_id" for each calculated transmission spectrum to distinguish. Otherwise, only the transmission spectrum of the last bias voltage is saved.
http://www.quantumwise.com/documents/manuals/latest/ReferenceManual/XHTML/ref.nlsave.html
-
This is incorrect. If no object_id is given it will automatically be generated. Only if the line is not properly indented you would get the effect that only the last one is saved, but specifying the object_id doesn't help for that.
Naash, you don't write clearly what the problem is. When you run the script, inspect the log file: are there multiple transmission spectra printed? In the generated NC file, are there multiple transmission spectra?
Or is the problem that when you try to plot the spectra in the NC file in the Analyzer, that you only see one (or no) transmission?
In general, it is recommended not to insert large amounts of code directly in a post. First of all it's hard to read, second it's hard to troubleshoot because vital formatting - namely the indentation - is very hard to see and tabs can get converted to spaces. So, attach scripts, unless your question in on a few specific lines, in which case you should wrap them in [code=python]...[/code].