# Time-dependent coupled cluster calculation¶

Explicitly time-dependent coupled cluster calculations are currently available for CCS and CCSD methods. A general description of how to perform generic coupled cluster calculations is given in the `Coupled cluster calculation`

tutorial. In addition to the sections that are needed for a ground state coupled cluster calculation with multipliers, the `time dependent state`

keyword must be specified in the `do`

section:

```
do
time dependent state
end do
```

## Propagation¶

Real-time propagation will be done if it is specified in the `td cc`

section:

```
cc td
propagation
end cc td
```

The details of the real-time propagation must be given in the `solver cc propagation`

section. In this section, the keywords `initial time`

, `final time`

and `time step`

must be specified together with corresponding arguments in Hartree atomic units, as in the following example:

```
solver cc propagation
initial time: 0.0
final time: 10.0
time step: 0.01
end solver cc propagation
```

This is all the additional information you are required to specify in order to run a real-time propagation with the default settings. A minimal working example is the following:

```
system
name: H2OHe
end system
do
time dependent state
end do
method
hf
ccsd
end method
cc td
propagation
end cc td
solver cc propagation
initial time: 0.0
final time: 10.0
time step: 0.05
end solver cc propagation
geometry
basis: cc-pVDZ
H 0.86681 0.60144 5.00000
H -0.86681 0.60144 5.00000
O 0.00000 -0.07579 5.00000
He 0.10000 -0.02000 7.53000
end geometry
```

It is possible to produce output files containing the time series for the energy, dipole moment, density matrix, cluster amplitudes and Lagrange multipliers of the calculation, by adding the corresponding keywords, namely `energy output`

, `dipole moment output`

, `density matrix output`

, `amplitudes output`

and `multipliers output`

in the `solver cc propagation`

section. For example, if an output file containing the energy time series is desired, one can write the `solver cc propagation`

section as:

```
solver cc propagation
initial time: 0.0
final time: 10.0
time step: 0.05
energy output
end solver cc propagation
```

In the output files, the first column contains the time in Hartree atomic units, while the other columns contain the time-dependent value(s) of the required quantity, in Hartree atomic units or without units. For example, the second and following columns of a dipole moment file are, in order: real part of dipole moment along x-axis, imaginary part of dipole moment along x-axis, real part of dipole moment along y-axis, imaginary part of dipole moment along y-axis, real part of dipole moment along z axis and imaginary part of dipole moment along z axis.

The default is that the values of the quantities requested for output are written to file at each time step. However, it is possible to decide how many time steps should pass between each time they are written to file by giving the desired number of passes as an argument to the keyword `steps between output`

, as in the following example:

```
solver cc propagation
initial time: 0.0
final time: 10.0
time step: 0.05
steps between output: 20
energy output
end solver cc propagation
```

Another parameter that can be set is the convergence threshold for the solution of equations in implicit integration methods. The default is 1.0e-11, but this value can be given as the argument of the keyword `implicit threshold`

, as in the following example:

```
solver cc propagation
initial time: 0.0
final time: 10.0
time step: 0.05
implicit threshold: 1.0d-10
energy output
end solver cc propagation
```

Finally, the integration can be done using the Euler method, the most well-known four-step fourth-order explicit Runge-Kutta method known as RK4 (default), and the 2nd, 4th and 6th order Gauss-Legendre methods. The integration method is chosen by writing respectively `euler`

, `rk4`

, `gl2`

, `gl4`

or `gl6`

as the argument of the keyword `integrator`

in the `solver cc propagation`

section. This is illustrated in in the following example:

```
solver cc propagation
initial time: 0.0
final time: 10.0
time step: 0.05
integrator: gl4
energy output
end solver cc propagation
```

## External electric field¶

It is possible for the user to specify any number of classical electric field pulses within the dipole approximation that should interact with the molecule during the real-time propagation. Each pulse is defined by a set of parameters, which must be specified through keywords in the `electric field`

section as follows:

```
electric field
keyword: {argument for pulse 1, argument for pulse 2, ...}
end electric field
```

The parameter keywords that can be specified in the electric field section are the following:

`envelope`

: 1 for Gaussian envelope, 2 for sine squared envelope

`x polarization`

: x component of the unit polarization vector

`y polarization`

: y component of the unit polarization vector

`z polarization`

: z component of the unit polarization vector

`central time`

: central time of both the Gaussian and sine squared envelopes, in Hartree atomic units

`width`

: Gaussian RMS width/standard deviation of Gaussian envelopes, single period (truncated outside this) for sine squared envelopes, in Hartree atomic units

`central angfreq`

: central angular frequency of the carrier wave, in Hartree atomic units

`peak strength`

: peak electric field strength of the pulse, in Hartree atomic units

`phase shift`

: (carrier-envelope) phase shift, given as the shift between the maxima of the carrier wave and the central time of the envelope

`repetition`

: number of repetitions of given pulse (default is 1)

`separation`

: temporal separation between each of the repeated pulses (needed only when the number of repetitions is greater than one)

When the interaction with a classical electric field is requested, all of the above parameters apart from `repetition`

and `separation`

must be specified. The corresponding arrays of arguments also must have the same length, as in the following example:

```
electric field
envelope: {1, 1}
x polarization: {0.0, 0.0}
y polarization: {0.0, 0.0}
z polarization: {1.0, 1.0}
central time: {100.0, 200.0}
width: {10.0, 20.0}
central angular frequency: {0.1, 0.2}
peak strength: {0.01, 0.02}
phase shift: {0.0, 0.0}
end electric field
```

## Fast Fourier Transform¶

In a time-dependent calculation, it is possible to request the complex Fast Fourier Transform (FFT) of the time-dependent dipole moment and electric field in a specified interval.
For example, to compute the FFT of the dipole moment, the section `solver fft dipole moment`

should be requested.

The keywords that must be specified with corresponding arguments in the `solver fft dipole moment`

section are the following:

`initial time`

: the first temporal value to be considered in the FFT

`final time`

: the first last temporal value to be considered in the FFT

`time step`

: should equal the product between the value of`time step`

and`steps between output`

, both from the`solver cc propagation`

section

The same holds for the fast Fourier transform of the electric field, with the only difference that in this case the section name should be changed to `solver fft electric field`

.