# Linear response#

## Polarizability#

The linear electric-dipole polarizabilty is determined from the linear response function [NRS18]

The frequencies of the perturbing electric field is specfied as a `list`

or in terms of a frequency region with a frequency point separation in parenthesis.

```
@jobs
task: response
@end
@method settings
basis: aug-cc-pvdz
@end
@response
property: polarizability
frequencies: 0-0.25 (0.05)
@end
@molecule
charge: 0
multiplicity: 1
xyz:
...
@end
```

## General linear response functions#

A general linear response function

can be requested, referring to the linear response of the molecular property associated with \(\hat{\Omega}\) due to the perturbation associated with \(\hat{V}\) and oscillating with the angular frequency \(\omega\). The damping term \(\gamma\) is associated with the inverse lifetime and enters into the calculation only if a complex response function is requested by setting `complex`

to `yes`

.

```
@jobs
task: response
@end
@method settings
basis: def2-svpd
xcfun: b3lyp
@end
@response
property: custom
order: linear
complex: no
a_operator: electric dipole
a_components: xyz
b_operator: electric dipole
b_compontents: xyz
frequencies: 0.0, 0.0656
@end
@molecule
charge: 0
multiplicity: 1
xyz:
...
@end
```

## C6 dispersion coefficients#

The \(C_6\) dispersion coefficient relates to the electric-dipole polarizability according to

where \(\bar{\alpha}_A{i\omega}\) is the isotropic average of the polarizability tensor for molecular system \(A\).

The integral over the positive imaginary frequency axis is performed in VeloxChem using a Gauss–Legendre quadrature after substituting the integration variables according to

where a transformation factor of \(\omega_0 = 0.3\) a.u. is used. The user may specify the number of frequency points used in the quadrature, or otherwise a default value is adopted. The polarizabilities are calculated from the complex polarization propagator (CPP), or complex linear response function [NRS18].

```
@jobs
task: response
@end
@method settings
xcfun: b3lyp
grid_level: 4
basis: def2-svpd
@end
@response
property: C6
conv_thresh: 1.0e-3
n_points: 7
@end
@molecule
charge: 0
multiplicity: 1
xyz:
...
@end
```

## Laser pulse propagation#

VeloxChem allows for calculation of the linear electric dipole response for the frequency region of a single Gaussian-envelope pulse deemed sufficiently large (using the @pulses module).

The time-domain shape parameters for this pulse may be specified by the user, optionally storing a collection of pertinent results in an HDF5-formatted file or a plaintext ASCII file whose name may be specified by the user.

An example of an input file that when run will carry out such a calculation is given below. For more documentation about the available keywords, please consult the source file whose path from the VeloxChem root folder is src/pymodule/pulsedrsp.py. Note in particular that the default of carrier envelope phase may need adjustment to match your desired setup.

```
@jobs
task: pulses
@end
@method settings
basis: aug-cc-pvdz
@end
@molecule
charge: 0
multiplicity: 1
xyz:
...
@end
@pulses
envelope: gaussian
field_max : 1.0e-5
number_pulses: 1
centers: 300
field_cutoff_ratio: 1e-5
frequency_range : 0.2-0.4(0.001)
carrier_frequencies: 0.325
pulse_widths: 50
pol_dir: xyz
h5 : pulsed
ascii : pulsed
@end
```

If HDF5-formatted data was produced during this calculation, that data may used for plot generation using the script located at `utils/pulsed_response_plot.py`

from the VeloxChem root folder.

Also note that other standard python modules such as `matplotlib`

must be installed on the system from which this script is run. The script will take the HDF5-formatted data produced during the VeloxChem calculation and generate a plot of the real and imaginary frequency-domain electric dipole polarizability, a representation of the perturbing field in the frequency domain, the resulting (real-valued) first-order dipole moment correction in the time domain and a representation of the perturbing field in the time domain.

For more information and further description of how to run this script, please consult the documentation written inside it.