Polyorder.jl Logo

Welcome to Polyorder.jl

Polyorder.jl is a high-performance, next-generation Self-Consistent Field Theory (SCFT) simulation platform for polymer systems, written entirely in pure Julia. It is the modern successor to the C++ library polyorder, redesigned from the ground up to leverage Julia's powerful type system, multiple dispatch, and extensive package ecosystem.

Note: This package is under active development. While robust for research, APIs may evolve as we introduce new features.

Why Polyorder.jl?

Polyorder.jl aims to bridge the gap between rapid prototyping and high-performance computing in polymer physics. Whether you are exploring novel block copolymer architectures on your laptop or running massive 3D simulations on a GPU cluster, Polyorder.jl provides a unified, efficient, and extensible platform.

Key Features

  • ⚡ State-of-the-Art Algorithms: Polyorder.jl implements several bleeding edge MDE solvers (ETDRK4) and preconditioned accelerators (Anderson-ETD, NGMRES, OACCEL). It also features SOTA methods (RQM4, Anderson) and a vast library of iterative algorithms—spanning baseline (SD), spectral (SIS, ETD), predictor-corrector (ETDPEC, EMPEC, PO), accelerators, and custom preconditioned accelerators.
  • 🚀 GPU Acceleration: Seamless, device-agnostic support via AcceleratedKernels.jl. Write your simulation code once and run it on CPUs, NVIDIA GPUs, and other hardware accelerators without modification.
  • 💾 Low Memory Mode: Advanced Checkpointing and Shared Cache algorithms allow you to run high-resolution 3D simulations (e.g., $128^3$ or larger) on consumer-grade hardware by trading a small amount of compute time for massive memory savings (up to 80% reduction).
  • 🧩 Flexible Architectures: Support for arbitrary block copolymer topologies (linear, star, comb, cyclic) and multicomponent blends via a graph-based molecular representation.
  • 📦 Modern Ecosystem: Easily extensible and fully compatible with the Julia scientific stack (e.g., Optim.jl for free energy minimization, FFTW.jl for spectral transforms).
  • 🔄 Variable Cell Optimization: Built-in routines for unit cell optimization to find equilibrium domain periods and symmetries.
  • 💎 Symmetry Adapted Solution: Support for all 1D/2D/3D space groups to enforce symmetries of phase structures in a unit cell.

Getting Started

Ready to dive in?

Contribute

We welcome contributions from the community!

  • 🌟 Star the repository on GitHub to show your support.
  • 🐛 Report issues or feature requests on the Issue Tracker.
  • 🔧 Submit pull requests to improve code or documentation.

Author: Yi-Xin Liu (lyx@fudan.edu.cn) and Polyorder Lab @Fudan University.