The current version of PSCF is a package of C++/CUDA programs modeling inhomogeneous structures formed by liquids containing block polymers. It can be used to perform either self-consistent field (SCFT) or stochastic field theoretic simulations that use a partial saddle-point approximation (PS-FTS).
Links:
Links for the current version of PSCF:
The user manual provides detailed explanations of how to obtain and compile the source code, and how to use the package after installation. The main page of the github source code repository also provides a less detailed summary of required steps.
Programs:
The current version of PSCF is a package of several related programs that share source code for common aspects of SCFT and PS-FTS calculations, but that allows construction of solvers that use different algorithms or hardware or treat different geometrical domains. It contains three types of program:
- CPU-based programs for periodic structures
- GPU-based programs for periodic structures
- A CPU-based program for one-dimensional problems in spherical, cylindrical or Cartesian coordinates.
The CPU- and GPU-based programs for periodic structures use algorithms similar to those used in the older Fortran code for SCFT calculations.
Features
All three PSCF programs are designed to treat an incompressible mixture containing any number of block polymers, homopolymer and small molecule (point-like) solvent molecular species. Polymer species may be modelled using either the standard Gaussian model of polymer conformations as continuous random walks (in all programs) or using a discrete bead-spring model with harmonic springs (in pscf_rpc and pscf_rpg) .
Features applicable to both SCFT and PS-FTS (all programs):
- Ability to treat acyclic branched block polymers
- Ability to use canonical, grand-canonical or mixed statistical ensembles: User specify either a volume fraction or a chemical potential for each species in a mixture
- Examples of input files for many types of calculation and structures
- Python tools for data analysis and file preparation
- User and developer documentation provided as an integrated web manual
- Well documented, open source code written in object oriented C++
Features for SCFT (all programs):
- Efficient Anderson-mixing SCFT iteration algorithms
- Parameter "sweeps": Continuation algorithms for sequences of SCFT calculations with different parameters along a 1D path through parameter space.
Features for SCFT or PS-FTS for periodic systems (pscf_rpc and pscf_rpg):
- Pseudo-spectral solution of the modified diffusion equation
- Choice of a continuous random walk or a discrete bead-spring model for polymer conformations.
- Periodic boundary conditions with 1, 2 or 3 dimensional periodicity
- Unit cells with any possible 2D and 3D Bravais lattice system (e.g., cubic, orthorhombic, monoclinic, etc.)
- A companion Matlab package for visualization of periodic structures: [Polymer Visual](<https://github.com/kdorfmanUMN/polymer_visual/>)
Features for SCFT on periodic systems (pscf_rpc and pscf_rpg):
- Automatic optimization of unit cell parameters so as to minimize the SCFT free energy density
- Optional imposition of any user-selected space-group symmetry on SCFT solutions
- Built-in database of symmetry operations for all 230 3D space groups and 17 2D plane groups
- Inhomogeneous density constraint (a "mask") for SCFT of systems in a confined geometry.
- External fields
- Tools for thin polymer films (using a mask for confinement and external fields for selective surface interactions)
Features for PS-FTS (pscf_rpc and pscf_rpg):
- Brownian dynamics (BD) and Monte Carlo (MC) sampling algorithms
- BD algorithms: Leimkuhler-Matthews and predictor-corrector BD step algorithms
- MC algorithms: real-space and "smart"/force-bias MC moves
- Efficient algorithms to adjusting the pressure-like field to find partial saddle-point states (i.e., to impose incompressibility)
- Tools for calculation of free energy differences by thermodynamic integration (TI), including the Einstein-crystal TI method
- Parameter "ramps" in which one or more parameters change continuously during a simulation
- "Analyzer" classes to compute and analyze quantities of physical interest, including the structure factor, order parameters used to identify phase transitions, and derivatives of the Hamiltonian needed to for thermodynamic integration calculations
- Tools for performing data analysis either during a simulation or by postprocessing field trajectory files that are created during a simulation
Non-features (provided by the Fortran program but not the current version):
- The only capability of the older Fortran PSCF program that is not provided by the current version is the ability to perform SCFT linear susceptibility calculations for periodic ordered phases [A. Ranjan, J. Qin, and D. Morse, Macromolecules 41, 942 (2008)].
Dependencies:
The pscf_rpc and pscf_r1d CPU-based programs are written in standard C++11, and can be compiled without access to a GPU or a CUDA compiler. These two programs depend upon the FFTW Fast Fourier Transform library and the GNU scientific library. The pscf_rpg GPU-accelerated programs can only be compiled and run on a computer with an appropriate nVidia GPU and CUDA development tools.
Citation:
If you use the current C++/CUDA version of PSCF to perform SCFT calculations in published work, please cite one or both of the following papers:
Akash Arora, Jian Qin, David C. Morse, Kris T. Delaney, Glenn H. Fredrickson, Frank S. Bates and Kevin D. Dorfman, "Broadly accessible self consistent field theory for block polymer materials discovery," Macromolecules 49, 4675-4690 (2016). pdf
Guo Kang Cheong, Anshul Chawla, David C. Morse and Kevin D. Dorfman, Open-source code for self-consistent field theory calculations of block polymer phase behavior on graphics processing units. European Physical Journal E 43, 15 (2020). free view-only version
Note: The description of PSCF given in the 2016 Macromolecules paper by Arora et al. is based on the older Fortran version, but also correctly describes most aspects of the SCFT tools provided in the pscf_rpc and pscf_rpg programs for periodic microstructures that are provided. The 2020 European physics paper documents the performance of the GPU-accelerated pscf_pg programs, and so need not be cited if you do not use these programs.
Contributors:
- David Morse
- Guo Kang Cheong
- Anshul Chawla
- Ryan Collanton
- Ben Magruder
- Kexin Chen
- Ying Zheng
Support:
Development of the C/C++ version of PSCF has been supported by several National Science Foundation (NSF) grants. The most recent of these was a grant from the Cyberinfrastructure for Sustained Scientific Development (CSSI) program, grant 2103627. Earlier work was supported by NSF Division of Materials Research (DMR), grants DMR-1725272, DMR-1333669, and DMR-1310436.