# Software

Scientific software development plays a central role in my research. Along with my research, I have developed various scientific computing software to carry out the actual task. The software are coded in various programming languages, such as C/C++, Julia, Python, Matlab, and Fortran. Most software listed here are open source software.

## Polyorder

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

### Features

• 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.

## cheb++

cheb++ is a C++ library which implements a set of functions dealing with Chebyshev polynomials.

### Features

• Compute chebyshev differential matrix
• Compute derivatives of Chebyshev expanded functions
• Compute 1D interpolation based on Chebyshev-Gauss-Lobatto grid
• Work with PolyOrder seamlessly

## scftpy

scftpy is a python package for performing polymer self-consistent field theory calculations.

### Features

• New features are experimented here before implemented in PolyOrder
• SCFT simulations of confined polymers.
• SCFT simulations of polymer brushes.

## chebpy

chebpy is a python package for spetral methods of PDEs based on Chebyshev series.

### Features

• New features are experimented here before implemented in cheb++
• Chebyshev series construction
• Fast Chebyshev transform
• Chebyshev differentiation
• Chebyshev interpolation
• Chebyshev applications in solution of PDEs

## PyDiagram

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.

### Features

• 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

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

### Features

• Support 1D, 2D and 3D symmetry groups.
• Has a structure renderer.
• Prepare input data for polyorder.
• Install with pip/easy_install
• Well documented.

## NGPy

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.

### Features

• Run multiple simulation instances.
• Analyze simulation data online.
• Retrieve result data online.
• Install with pip/easy_install

## mpltex

mpltex is a python package for creating publication-quality plots using matplotlib. Inspired by Olga Botvinnik’s python package prettyplotlib. mpltex now has 45 stars and has been forked 16 times at github.com!

### Features

• 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.

Updated on