| Density Functional Theory offers various successful approaches to solve the many-body Schrodinger equation of interacting atoms. However, conventional density functionals, e.g. local density approximations and generalized gradient approximations, are not able to account for the van der Waals interactions accurately between molecules. The nonlocal correlation functional proposed by Dion et al. offers the promise to describe this kind of weak interaction under the framework of density functional theory through being paired with appropriate conventional exchange and correlation functionals. The implementation of nonlocal correlation functionals poses the challenges of dealing with singularities in the model, designing efficient algorithms for large-scale molecular dynamics simulations and formulating the corresponding self-consistent potential and stress. Recent ideas proposed by Roman-Perez and Soler point out an efficient alternative to implement nonlocal correlation that reduces the computational cost from O(N2) to O(N log N), where N is the number of grid points within a unit cell. In this work, we propose an implementation that simplifies Roman-Perez's approach and formulate the potential and stress following our new method. Five versions of van der Waals density functionals are implemented in a plane wave, pseudopotential electronic structure code. We also investigate new ways of parameterizing the kernel function used in van der Waals functionals. Simulations from small to large-scale are performed to test the accuracy of those five van der Waals density functionals. The systems studied in this work include sets of weakly interacting molecular complexes, liquid water, as well as two molecular crystals. We suggest that these systems can serve as useful benchmarks for future developments of van der Waals density functionals. |