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
An optimization usually refers to adjusting (minimizing) the total energy by moving atoms.
Using the lattice constraint one does this for fixed lattice (existing unitcell whatever strain is present).
If you also want to adjust the unitcell by varying the strain while minimizing the total energy, then you don't need the lattice constraint.

The KpointDensity is first introduced in 2020 but you can use the older conventional MonkHorstPack sampling for k-points.
If you follow the scripter workflow (add SiC from database + add PlaneWaveCalculator +  add BaderCharge) the script generated will be consistent with the version that you currently use.

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

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

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:

General 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:

General 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(
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.

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:

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.

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.

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,

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

Dear Maley,
I assume that you refer to the script "" in the manual.
Specifically last shared script here:

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.

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:
The gui has an infrared spectrum analysis tool that allows to plot the infrared signals (adsorption, dielectric constant etc).

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.

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?

Pages: [1] 2 3