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
1
Questions and Answers / Re: Raman spectra calculation
« on: September 16, 2021, 17:29 »
I assume that the mechanism that you refer to is the peak position shift in Raman peaks?
The Raman peaks will shifts position due to anharmonic effects with temperature.
The best option currently would be to perform MD for a supercell to include anharmonic interaction.
In general, ensemble averaging the Raman spectra should do the job but that will of cause be computational heavy for a supercell.
A better solution would be to calculate anharmonic shifts in the phonon frequencies directly. QuantumATK currently doesn't support that but it is in the pipeline so stay tuned.

2
Questions and Answers / Re: CNT Schottky diode
« on: August 12, 2021, 09:42 »
In the Builder->interface builder:
When you have added the two structures there is the option to click "Shift Surfaces" before clicking 'Create'.
If a valid force-field is available the "Shift Surfaces" menu can suggest a displacement (Click calculate displacement).
If not then one needs to manually substract a z-displacement to select a sensible interface distance (which can then be optimized separately if not known from experimental data etc).

3
Hi,
The gate voltage in the just the actual value of the potential in the metallic regions applied.
In the double gate setup you apply the same value to both metallic regions. Having double gates in 2D or gate-all-around in 1D makes gating more effective.
An example of the double gate configuration can be found here:
https://docs.quantumatk.com/tutorials/inas_p-i-n_junction/inas_p-i-n_junction.html

4
Questions and Answers / Re: second harmonic generation
« on: August 10, 2021, 09:47 »
Not all materials are nonlinear optical materials. SHG is zero in systems with inversion symmetry for instance.
I recommend checking the GaAs example for instance on the object to learn about typical parameter settings:
https://docs.quantumatk.com/manual/Types/SecondHarmonicsGenerationSusceptibility/SecondHarmonicsGenerationSusceptibility.html

5
Questions and Answers / Re: Raman Spectra
« on: August 3, 2021, 10:59 »
The momentum matrix elements is available as a low level entity in QuantumATK and can be accesses in the following way:
"
p_matrix = calculateMomentumMatrixElements(
        configuration,
        kpoint=None,
        number_of_states=None):
"
The function calculates the momentum matrix elements for a bulk configuration at a specified k-point (fractional).
The x-component of the momentum matrix elements is defined as
p_nm(k) = <mk | -i * hbar * d/dx | nk>,
where |nk> is a Bloch state in band 'n' at the k-point 'k', and likewise for the y- and z-components.
For Unpolarized, Noncolliner and Spin-orbit calculations, each matrix has a shape (3, *N*, *N*), where *N* is the number of bands included.
For Polarized calculations, the shape is (2, 3, *N*, *N*) with the first index corresponding to Spin.Up and Spin.Down.

6
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

7
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

8
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

9
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

10
Questions and Answers / Re: Mobility Isotropic scattering
« on: April 27, 2021, 13:28 »
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.

11
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).

12
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

13
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

14
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


15
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.

Pages: [1] 2 3