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 (produced from a README file) also provides a brief 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 spatially 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 or (in pscf_rpc and pscf_rpg) using a discrete
bead-spring model with harmonic springs.
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: Users may specify either a volume fraction or a chemical potential for each molecular 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 to represent 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 for adjusting the pressure-like field so as 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:
Programs that are executed on a CPU are written in standard-compliant C++11, and can be compiled without access to a GPU or a CUDA compiler. These CPU-based programs depend upon the opensource FFTW Fast Fourier Transform library and the GNU scientific library. The pscf_pg 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 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 was based on the older Fortran version, but also correctly describes most aspects of the pscf_pc and pscf_pg programs for periodic microstructures that are provided in the current version. The 2020 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.