Current (C++/CUDA)

The current version of PSCF is a package of C++/CUDA programs for using SCFT to describe inhomogeneous structures formed by liquids containing block polymers.

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, 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 are both based on algorithms similar to those used in the older Fortran code, and provide similar features.  

Features

All PSCF programs are designed to treat an incompressible mixture containing any number of block polymers, homopolymers and small molecule solvent species. All polymeric species are treated using the standard Gaussian model of each polymer block as a continuous random walk.

Features that are common to all of the PSCF programs include:

  • Ability to treat mixtures of any number of block polymers, homopolymers, and solvent species
  • Ability to treat acyclic branched block polymers, in addition to linear block polymers
  • Canonical, grand-canonical or mixed statistical ensembles - users may specify either a volume fraction or a chemical potential for each molecular species
  • Efficient simulation of sequences of parameter choices along a path in parameter space (a "sweep"), using extrapolation of previous solutions
  • Efficient Anderson-mixing iteration algorithms
  • Examples of converged solutions and input scripts
  • Thorough user and developer documentation provided as a web manual
  • Open source, well documented code written in object oriented C++

Features specific to programs for periodic structures include:

  • High accuracy pseudo-spectral solution of the modified diffusion equation'
  • Simulation of ordered phases with 1, 2 or 3 dimensional periodicity
  • All possible 2D and 3D lattice systems (i.e., orthorhombic, monoclinic, etc.)
  • Automatic optimization of unit parameters (lengths and angles) so as to minimize free energy
  • Imposition of any user-selected space-group symmetry
  • Built-in "database" of all 230 3D space groups and 17 2D plane groups
  • Availability of a companion package Polymer Visual for visualization of periodic structures

Features specific to the pscf_pc CPU programs for periodic structures are:

  • Inhomogeneous density constraints (a "mask")
  • External fields
  • Thin polymer films

The mask and external field features are used in the pscf_pc programs to implement simulations of thin films. A mask is used to constrain a polymer material to a slit within a periodic supercell. Localized external fields are used to represent selective interactions with the top and bottom surfaces.

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 open source 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

Support:

Development of the C++/CUDA version of PSCF is currently supported by NSF grant CSSI-2103267, and was previously supported by NSF grant DMR-1725272.