# Charge flipping

## Definition

Charge flipping is a structure solution method from the class of dual-space algorithms. The key component of the charge flipping algorithm is the charge flipping operation. In this operation, all scattering density pixels with density lower than a small positive threshold δ are multiplied by -1 (flipped). In the classical charge flipping algorithm, this direct-space modification is combined with simple resubstitution of structure-factor amplitudes by experimental values, but other modifications and iteration schemes have been proposed and successfully used.

Given a trial scattering density $\rho$ sampled on a regular grid, and a set of measured structure-factor amplitudes $F^{obs}(\mathbf{H})$, the basic charge flipping algorithm follows this scheme:

First, the algorithm is initiated in the zeroth cycle by assigning random starting phases $\varphi_{rand}(\mathbf{H})$ to all experimental amplitudes and making all unobserved amplitudes equal to zero:

The iteration cycle then proceeds as follows:

1. The density $\rho^{(n)}$ is calculated by inverse Fourier transform of $F^{(n)}$.
2. The modified density $g^{(n)}$ is obtained by flipping the density of all pixels with density values below a certain positive threshold $\delta$ and keeping the rest of the pixels unchanged:

3. Temporary structure factors $G^{(n)}(\mathbf{H})=|G^{(n)}(\mathbf{H})|\exp{(i\varphi_{G}(\mathbf{H}))}$ are calculated by Fourier transform of $g^{(n)}$.
4. New structure factors $F^{(n+1)}$ are obtained by combining the experimental amplitudes with the phases $\varphi_{G}$ and setting all non-measured structure factors to zero:

These modified structure factors then enter the next cycle of iteration.