Contributors

David Morse is the primary architect of both the Fortran and C++ versions of PSCF. He wrote an initial version of the original Fortran program in 2002-2003 and began designing a C++ version in 2015.  He wrote most of the C++ building blocks of the current C++/CUDA package other than those attributed below to other contributors.

Contributors to current C++/CUDA version:

Guo-Kang Cheong wrote the original code for GPU-accelerated self-consistent field calculations, including all of the required CUDA kernels. He also wrote a separate prototype code for field theoretic Monte-Carlo simulations using a partial saddle point field theoretic simulation.

Anshul Chawla wrote the original Anderson mixing algorithm for the GPU-accelerated SCFT. 

Ryan Collanton was responsible for development of parameter sweep functionality, implementation of support for grand canonical and mixed ensemble calculations, improving support for small molecule solvents, and expanding unit testing. Ryan also made several major improvements to program design and maintainability, including re-factorization and abstraction of the Anderson mixing iterator algorithm as a template, an improved scheme for GPU resource allocation, and more robust GPU kernels for mathematical operations.

Benjamin Magruder developed the thin film feature of the pscf_pc programs, which included implementation of the underlying features that allow users to use a "mask" to impose a constrained geometry and to introduce external fields.  Ben also made a variety of contributions that improve the user experience and provide more detailed simulation output. Finally, Ben compiled a host of disparate visualization codes into a modular, highly customizable suite of MATLAB functions (PolymerVisual) for visualizing 2D and 3D SCFT solutions in a variety of formats.

Kexin Chen is currently developing code to implement a Monte-Carlo (MC)  algorithm for performing field-theoretic simulations (FTSs) based on a partial saddle point approximation within the pscf_pc and pscf_pg programs.  This includes development of the MC simulation algorithm itself, several types of MC move, and classes to analyze simulation results either on-the-fly or by post-processing of simulation trajectories. 

Contributors to legacy Fortran version:

Chris Tyler wrote a set of SCFT codes for his Ph.D. work that were based on a spectral algorithm for solving the modified diffusion equation (MDE), expansion of fields in a symmetry-adapted Fourier basis, and a Newton-Raphson iterator. In this early version, specialized code to construct basis functions was written for each space group of interest.  The resulting codes were functionally similar to those used in earlier seminal work on SCFT by Mark Matsen. They served as prototypes for the first version of PSCF, which was written by David Morse shortly after Chris defended his Ph.D. thesis.

Jian Qin converted PSCF to use a pseudo-spectral rather than fully spectral algorithm for solving the MDE, developed a new high-accuracy Richardson-extrapolation algorithm for stepping the contour length variable, and developed the Newton-Broyden iteration algorithm with backstepping.

Amit Ranjan developed the code used to compute the spectrum of fluctuation eigenmodes for an ordered structure, which can be used to analyze local stability and describe diffuse scattering. This is currently the only feature of the Fortran PSCF program that has not been ported to the C++/CUDA package.

Akash Arora wrote the Anderson-mixing iteration algorithm used in the Fortran program, including the extension to allow simultaneous relaxation of chemical potential fields and unit cell parameters.