Scientific software development plays a very important role in my research. Along with my research, I have developed some computing software to carry out the actual task. The software are coded in various programming languages, such as C/C++, Python, Matlab, Fortran and so on. All software listed here are open source software. They are licensed by either BSD or GPL v3.


Polyorder is a C++ library which aims to ease the development of polymer self-consistent field theory (SCFT) programs.


  • Flexibility. All components can be replaced.

  • Extensibility. The OO design enables one add new features smoothly.

  • Non-orthogonal unit cell calculations are supported.

  • Weakly charged polymers are supported natively.

  • Supporting scripts.

Getting Started


PyDiagram is a python package for generating phase diagrams from results output by polymer field-theoretic simulations. PyDiagram also provides functions for analysis of simulation results.


  • Processor: support Polyorder and PolyFTS output files, and a general dgm file containing all simulation results.

  • Plotter: provide plots of raw, invalid, phase boundary, and standard phase diagrams.

  • Analyzer: the trend of the free energy, stretch-free cell size, and accuracy.

  • A project configuration file provides full control of the processor, plotter, and analyzer.


Gyroid is a python package that generates symmetry adapted basis functions based on the space group of a unit cell.


  • Support 1D, 2D and 3D symmetry groups.

  • Has a structure renderer.

  • Output data as input data for polyorder.

  • Install with pip/easy_install

  • Well documented.


NGPy is a web application that enable online performing and analyzing Monte-Carlo simulation on nucleation and growth phenomena. It can be also used as a web framework to develop your own web applications.


  • Multiple simulation instances.

  • Analyze simulation data online.

  • Retrieve result data online.

  • Install with pip/easy_install


mpltex is a python package for creating publication-quality plots using matplotlib. Inspired by Olga Botvinnik’s python package prettyplotlib.


  • Create plots for American Chemical Society.

  • Create plots for presentation slides.

  • Create plots for webpages.

  • The internal matplotlib color cycle is replaced by ColorBrewer Set1 scale which looks less saturated and more pleasing to eyes.

  • enable cycle line styles and a selected set of line markers including hollow type markers.

Getting Started