Difference between revisions of "Manual:Linear Response"

From OctopusWiki
Jump to navigation Jump to search
(revert from SPAM)
m (typos, obsolete variable names)
Line 5: Line 5:
 
===== Ground state =====
 
===== Ground state =====
  
The first thing we will need to do a linear response, it is a [[Manual:Ground State|Ground State]] calculation. Unlike other techniques, when using the Sterheimer equation you needn't do a unoccupied states calculation. To improve the convergency of the linear response calculation, it is better to use tightly converged wave functions. For example you can add this parameteres to your gs calculation:
+
The first thing we will need to do a linear response, it is a [[Manual:Ground State|Ground State]] calculation. Unlike other techniques, when using the Sterheimer equation you needn't do a unoccupied-states calculation. To improve the convergence of the linear-response calculation, it is better to use tightly converged wavefunctions. For example, you can add these parameters to your gs calculation:
  
 
<pre>
 
<pre>
Line 15: Line 15:
 
===== Input =====
 
===== Input =====
  
The {{Variable|CalculationMode|Generalities}} for polarizability calculations is {{code| pol_lr}}. The main parameter you have to specify is the frequency of the perturbation, this is given by the {{Variable|PolFreqs|Linear_Response}} block. You can also add an imaginary part to the frequency by setting the variable {{Variable|PolEta|Linear_Response}}. Adding a small imaginary part is required if you want to get the imaginary part of the polarizability or to calculate polarizabilities near resonance, a reasonable value is {{code|0.1 eV}}.
+
The {{Variable|CalculationMode|Generalities}} for polarizability calculations is {{code|em_resp}}. The main parameter you have to specify is the frequency of the perturbation, given by the {{Variable|EMFreqs|Linear_Response}} block. You can also add an imaginary part to the frequency by setting the variable {{Variable|EMEta|Linear_Response}}. Adding a small imaginary part is required if you want to get the imaginary part of the polarizability or to calculate polarizabilities near resonance; a reasonable value is {{code|0.1 eV}}.
  
To get the hyperpolarizabilties, you also have to specify the {{Variable|PolHyper|Linear_Response}} with the three coefficients with respect to the base frequency, the three values must sum zero.
+
To get the hyperpolarizabilties, you also have to specify the variable {{Variable|EMHyper|Linear_Response}} with the three coefficients with respect to the base frequency; the three values must sum to zero.
  
 
===== Output =====
 
===== Output =====
  
After running, fr each frequency in the input file, {{octopus}} will generate a subdirectory under {{file|linear/}}. In each subdirectory there is a file called {{file|alpha}} that contains the real part of the polarizability tensor <math>\alpha_{ij}</math> and the average polarizability
+
After running, for each frequency in the input file, {{octopus}} will generate a subdirectory under {{file|linear/}}. In each subdirectory there is a file called {{file|alpha}} that contains the real part of the polarizability tensor <math>\alpha_{ij}</math> and the average polarizability
  
 
<math>
 
<math>
Line 37: Line 37:
 
==== Finite differences ====
 
==== Finite differences ====
  
In this mode only static polarizability can be obtained, the calculation is done by taking the numerical derivative of the energy with respect to an external static and uniform electric field. To use this run with {{Variable|CalculationMode|Generalities}} {{code|{{eq}}pol_fd}}. {{octopus}} will run several ground state energy calculations (2 per dimension) and then calculate the polarizability using a finite differences formula for the derivative, the resulting tensor will be in the ''linear/polarizability_fd'' file.
+
In this mode only static polarizability can be obtained. The calculation is done by taking the numerical derivative of the energy with respect to an external static and uniform electric field. To use this, run with {{Variable|CalculationMode|Generalities}} {{code|{{eq}}pol_fd}}. {{octopus}} will run several ground-state energy calculations (2 per dimension) and then calculate the polarizability using a finite-differences formula for the derivative. The resulting tensor will be in the ''linear/polarizability_fd'' file.
  
 
{{manual_foot|prev=Manual:Casida|next=Manual:Spectrum_calculations}}
 
{{manual_foot|prev=Manual:Casida|next=Manual:Spectrum_calculations}}

Revision as of 21:33, 9 June 2008

This part of the code is quite recent and it is being actively developed, so not all the features might be available in the stable version.

Octopus can calculate dynamic polarizabilities and first order hyperpolarizabilites in a linear response scheme using the Sternheimer equation. It also possible to calculate optical spectra with this technique, but it is slower than time evolution.

Ground state

The first thing we will need to do a linear response, it is a Ground State calculation. Unlike other techniques, when using the Sterheimer equation you needn't do a unoccupied-states calculation. To improve the convergence of the linear-response calculation, it is better to use tightly converged wavefunctions. For example, you can add these parameters to your gs calculation:

EigenSolverFinalTolerance = 1e-10
ConvAbsDens = 1e-9


Input

The CalculationMode for polarizability calculations is em_resp. The main parameter you have to specify is the frequency of the perturbation, given by the EMFreqs block. You can also add an imaginary part to the frequency by setting the variable EMEta. Adding a small imaginary part is required if you want to get the imaginary part of the polarizability or to calculate polarizabilities near resonance; a reasonable value is 0.1 eV.

To get the hyperpolarizabilties, you also have to specify the variable EMHyper with the three coefficients with respect to the base frequency; the three values must sum to zero.

Output

After running, for each frequency in the input file, Octopus will generate a subdirectory under linear/. In each subdirectory there is a file called alpha that contains the real part of the polarizability tensor and the average polarizability

there is also a file called cross_section_tensor that contains the photo-absorption cross section tensor for that frequency, that it is related to the imaginary part of the polarizability.

The hyperpolarizabilty will be in a file called beta, containing all the 27 components and some reduced quantities:

Finite differences

In this mode only static polarizability can be obtained. The calculation is done by taking the numerical derivative of the energy with respect to an external static and uniform electric field. To use this, run with CalculationMode =pol_fd. Octopus will run several ground-state energy calculations (2 per dimension) and then calculate the polarizability using a finite-differences formula for the derivative. The resulting tensor will be in the linear/polarizability_fd file.


Previous Manual:Casida - Next Manual:Spectrum_calculations

Back to Manual