Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Tue Gunst

Pages: 1 [2] 3 4
16
General Questions and Answers / Re: photocurrent
« on: August 3, 2021, 10:45 »
The photon mediated transmission is not plotted in the gui but you can obtain the data from the object as you are suggesting.

energies = photocurrent.energies().inUnitsOf(eV)
transmission = photocurrent.photonMediatedTransmission(photon_mode=0)

and then plot these two variables with pylab or other prefered plotting tools (select wanted photon_mode index for which you want to plot the transmission).
Please see the object description here for further details:
https://docs.quantumatk.com/manual/Types/Photocurrent/Photocurrent.html#NL.Analysis.Photocurrent.Photocurrent

17
Hi,
Important here: Notice that the DielectricTensor only depends on and uses on the q=0 (long wavelength) phonons.
If you have a well-converged DFT calculator in terms of k-point sampling one will obtain the correct q=0 vibrations with repetitions=(1,1,1).
This should solve your memory problem.
I would still recommend to use repetitions for checking/validating the phonon band structures but if your setup does not allow for that then doing repetitions=(1,1,1) gives correct results for the dielectric tensor.
Tue

18
Hi,
In the THz (infrared) regime one has to use the DielectricTensor object.
It takes in the OpticalSpectrum but then includes the low frequency coupling to vibrations.
See:
https://docs.quantumatk.com/manual/Types/DielectricTensor/DielectricTensor.html

In the section Notes you will see a functional form of the dielectric response from coupling with each phonon similar to the expression you refer to.
The numerator factor, termed mode oscillator strengths (not plasma frequencies), are calculated directly from the Born effective charges.

So in summary QuantumATK covers the full expression you show - plasma frequency can be calculated and used for interbands couplings in OpticalSpectrum. The DielectricTensor object can further calculate the THz coupling to vibrations.
Hope this answers your question,
Tue

19
Hi,
I see that you use the IVcharacteristics object so I think this is the way to do it from that point of:
The IVcharacteristics has a method ".transmissionSpectrum(gate_source_voltage, drain_source_voltage)" that retrieves the TransmissionSpectrum for the updated configuration for the given gate-source and drain-source voltages.
See: https://docs.quantumatk.com/manual/Types/IVCharacteristics/IVCharacteristics.html
The TransmissionSpectrum can the be used to evaluate the current through the method ".current(electrode_voltages=None, electrode_temperatures=None, spin=None)" function of that object.
See: https://docs.quantumatk.com/manual/Types/TransmissionSpectrum/TransmissionSpectrum.html

20
Dear Maley,
I assume that you refer to the script "mobility_isotropic_scattering_rate.py" in the manual.
Specifically last shared script here:
https://docs.quantumatk.com/manual/Types/Mobility/Mobility.html

This script runs (takes a few seconds) correctly as far as I can see so I assume that you modified it?
The requirement on the isotropic scattering rate if you want to modify the script is that it is either the same length as the energies list or a constant.
In the example
energies=numpy.linspace(-0.05, 0.05, 100)*eV
so the scattering rate needs to be 100 points long. The intended use case is where you have an analytical expression for the scattering rate as a function of energy - then you evaluate that expression in the chosen energies and use the result in the Mobility object.
Alternatively you can set the scattering rate to a constant - then the scattering rate is assumed constant as a function of energy.

21
Hi,
The photocurrent module does not rely on a specific photon flux. The solar spectrum is shipped with the software and the gui makes it easy to apply that, but any photon flux can be defined by the user.
In connection with IR detectors one would usually rely on the coupling with vibrations (generating infrared signals).
In that case I would point to the dielectric tensor analysis object:
https://docs.quantumatk.com/manual/Types/DielectricTensor/DielectricTensor.html
The gui has an infrared spectrum analysis tool that allows to plot the infrared signals (adsorption, dielectric constant etc).

22
Hi,
Converging polarized calculations can be tricky.
What we usually observe is that it is system dependent but as a general guideline try one or more of the following:
1) Increase the k-point samplings.
2) Decrease the scf threshold of the electrode calculations.
3) Increase the electronic temperature smearing in the calculator.

In general, finite bias calculation will take longer and can suddenly converge while it spend a some time with little change in the scf loop.
If you didn't already do so then increase the number of scf steps allowed to a few thousand to be sure it will converge.
Best,
Tue

23
Hi,
Your error description does not contain enough information to be reproduced.
Could you explain exactly what steps that does lead to the error? What queing system, what kind of job, at what stage in the job submission?
Is it a specific workflow that fails or did you never manage to set up a jobmanager before?
Best,
Tue

24
Hi agoldsto,
First of all - optimizations can easily take more than 24 hours. It is only a matter of the size of the system and the degree of macroscopic change to the structure.
So to speed up the calculations are only two options:
1) Give a better guess for the initial structure.
If you look at the trajectory file from your first try you might see if you are doing a bad initial guess.
But generating better guesses can be tricky.
One way would be to use a force-field for pre-optimization but for complex structures the force-field might relax to different minima than DFT and the gain is low.
2) Reduce the system size/problem:
This can for instance be done by fixing/constraining part of the system during the relaxation.
For instance it could be a good first step to fix the CNT and let the molecule perform the macroscopic movement towards the CNT.

Alternatively notice that the OptimizeGeometry object has a restart_strategy option.
So if you resubmit the job it will continue the optimization from the existing trajectory file.

Best,
Tue


25
General Questions and Answers / Re: zero point energy
« on: October 28, 2020, 19:44 »
Hi,
Some comments:
1) You need to define the tags before you replace the elements.
"
# Add tags
molecule_configuration.addTags('H2', [0,1])

# Replace all atoms tagged "H2" with hydrogen-2
for index in molecule_configuration.indicesFromTags("H2"):
    molecule_configuration.elements()[index] = H2
"
So changing the order of "Add tags" and "Replace all atoms tagged".

2) Version dependency:
In the 2019 version the Isotope method from the tutorial only works for a ForceFieldCalculator.
For a LCAOCalculator the new element class is not sufficient as it also requires basis set functions for the new element.
Once could instead use LowLevelEntities to get the dynamical matrix and rescale the result if what you want is the eigenmodes.
For more advanced analysis there is not existing solution for the 2019 version.

In the 2020 version we have implemented actual Isotope element classes. So one can for instance use Hydrogen2 instead of Hydrogen etc.
Therefore this version is required if you need LCAOCalculator based studies with advanced analysis options.

26
Hi,
There are two ways to change the fermi-level.
1) By doping:
You can model this by using the atomic compensation charge (instead of including explicit dopant atoms):
https://docs.quantumatk.com/manual/Types/AtomicCompensationCharge/AtomicCompensationCharge.html#atomiccompensationcharge-c

2) By a true gate electrode:
Adding a metallic region and an adding an explicit charge to the LCAO calculator. See this link:
https://docs.quantumatk.com/manual/technicalnotes/doping_methods/doping_methods.html#atomiccompensationcharges
At the same time you need to take case of the boundary conditions for the Poisson solver.
This is described here:
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.118.046601

I would think that the procedure in point 1) is what you seek. Changing the fermi-level and calculating the optical spectrum at each level.
Exactly what fermi-level shift the charge corresponds to can be seen in the band structure.
Alternatively the DensityOfStates analysis object has a method to evaluate the carrier density.

27
Hi,
What is the units on the axis and exactly what energy levels are you plotting? It is obtained from a peak in the pdos?
It seems that the data is more noisy at low temperature.
In general, the thermal broadening secures that less strict numerical sertings can be used. At least for k-point samplings which is however less relevant for a nanowire.
Other than that it is hard to say more without more information.
Best, Tue

28
General Questions and Answers / Re: Regarding Mobility
« on: August 18, 2020, 09:14 »
Hi,
Please check if the fermi-level is in the electron or hole band?
If you have a positive fermi-level shift, then you will have a large electron carrier density but zero holes and should focus on the electron mobility.
If you have a zero hole carrier density, you can still have a large mobility (the few carriers can move freely). But the current density is very low and it is a minority of the charge transport.
Hope it helps in your analysis.
Best regards,
Tue

29
General Questions and Answers / Re: optical spectrum
« on: August 7, 2020, 12:30 »
Hi,
The output is given as a physical quantity.
This is a class defined with units, which can be converted by request by QuantumATK.
You can use the result.inUnitsOf(...) function to do this.
Please refer to this link for available units and functionality:
https://docs.quantumatk.com/manual/includes/PhysicalQuantity.html

30
In the gui you can open the ElectronPhononCoupling widget and set the number of q-points under the section "q-point sampling".
Simply increase the sampling in the non-periodic direction from 1 to 2 q-points.
In the script instead you change the input parameter "qpoints_fractional".
The class is described in the reference manual:
https://docs.quantumatk.com/manual/Types/ElectronPhononCoupling/ElectronPhononCoupling.html
This also shows defines the query functions for the case you want to plot the result directly with pylab.
See for instance the query functions "couplingMatrixVsQ" and "unscaledCouplingMatrixVsQ" which gives the data used in the electron-phonon coupling plot.
The Gaussian method was only related to the plots in the Mobility analyzer, sorry if this was confusing.

Pages: 1 [2] 3 4