**Charge density difference analysis** takes the difference between charge densities of the system of interest and a reference one and plots charge redistribution due to chemical bonds.
$\Delta \rho = \rho_{AB} - \rho_{A} - \rho_{B}$
where $\rho_{AB}$ is the total charge (or electron) density of the whole system, $\rho_{A}, \rho_{B}$ are the density of the corresponding isolated system.
It requires three single-point calculations of system AB, A, and B to print the [[https://manual.cp2k.org/cp2k-2022_1-branch/CP2K_INPUT/FORCE_EVAL/DFT/PRINT/E_DENSITY_CUBE.html|electron density]] or [[https://manual.cp2k.org/cp2k-2022_1-branch/CP2K_INPUT/FORCE_EVAL/DFT/PRINT/TOT_DENSITY_CUBE.html|total density]].
One can use [[https://www.cp2k.org/tools:cubecruncher | Cubecruncher]] to manipulate the CUBE files.
cubecruncher.x -i AB.cube -subtract A.cube -o AB_A.cube
cubecruncher.x -i AB_A.cube -subtract B.cube -o chg_dif.cube
This type of analysis is also useful in the case of time-dependent calculations. In this case, the difference would be taken over time, with respect to some reference snapshot (e.g. ground state).
$\Delta \rho (t-t_0) = \rho(t) - \rho(t_0)$,
where $\rho(t)$ is the electron density at time $t$, and $\rho(t_0)$ is the reference electron density.
cubecruncher.x -i elec_dens_t.cube -subtract elec_dens_t0.cube -o diff_t-t0.cube