Calculate Polarizabolities and Hyperpolarizabilites with Octopus
With version 2.0rc1 the calculation of static polarizability () and the first hyperpolarizability () is supported. There are two ways to do this:
This is calculated doing a numerical derivative of the total energy with respect to and applied electric field, it only gives the polarizability. To use this run with RunMode = pol, it will do several ground state calculations. The resulting tensor is in the linear/polarizability file.
In this method the derivative of the energy is calculated analytically through Density Functional Perturbation Theory, is faster and more reliable that the previous method and also calculates the first hyperpolarizability tensor.
To use this you first need a gs calculation for the system with very well converged wave functions, the following parameters are recommended:
EigenSolverFinalTolerance = 1e-10 ConvAbsDens = 0 ConvRelDens = 0 ConvAbsEv = 1e-10 ConvRelEv = 0
After that you can calculate the hyperpolarizabity using RunMode = pol_lr. Results will be in the linear/ directory in files polarizability_lr and beta_lr.