The cell velocities can be computed with the weighted least-squared method as

1) \displaystyle u_c = \frac{1}{\Delta} \left( a_{2,2} b_1- a_{1,2} b_2 \right ), v_c = \frac{1}{\Delta} \left( a_{1,1} b_2- a_{1,2} b_1 \right )

in which the coefficients are:

\displaystyle a_{1,1} = \sum_k w_k n_{k,1}^2, \displaystyle a_{2,2} = \sum_k w_k n_{k,2}^2, \displaystyle a_{1,2} = a_{2,1} = \sum_k w_k n_{k,1} n_{k,2}, \Delta = a_{1,1} a_{2,2} - a_{1,2} a_{2,1}, \displaystyle b_1 = \sum_k w_k n_{k,1} u_{N,k}, \displaystyle b_1 = \sum_k w_k n_{k,2} u_{N,k}

The weights w_k are assigned to the face areas, (n_{k,1}, n_{k,2}) is the face normal unit vector, and u_{N,k} is the face normal velocity.