Build Initial HII Phase Configurations

Classes

class hexagonal_build.BuildHexagonal(name, npores, p2p, pore_alpha, pore_radius, tilt=0)

Bases: object

__init__(name, npores, p2p, pore_alpha, pore_radius, tilt=0)

Initialize geometry of columnar pore structure

Parameters:
  • name (str) – name of monomer with which the system will be built.
  • npores (int) – number of pores in the system
  • p2p (float) – absolute pore-to-pore distance
  • pore_alpha (float) – angle between x and y box vector. For example if pore_alpha = 120 or 60, you’ll get hexagonally packed pores
  • pore_radius (float) – distance from pore center to place monomer head groups (nm)
  • tilt (float) – tilt monomer head group with respect to xy plane
build_column(pore, z, theta, correlation=True, var=0, correlation_length=0, pd=0, random_shift=True, mole_fraction=(1.0, ))

Place a column at angle theta on xy plane with respect to a pore center

Parameters:
  • pore – pore number (0 : npores - 1)
  • z – mean z-positions of monomers in column
  • theta – angle, with respect to pore center where column should be placed (degrees)
  • correlation – adjust z positions so there is a correlation length
  • var – variance in multivariate normal distribution used to make correlated points
  • correlation_length – length for which correlation between stacked monomers to persist
  • pd – Angle of wedge created between vertically adjacent monomers. Defined by angle between vectors extending from pore center to monomer head groups.
  • random_shift – if True, randomly shift columns in z-direction by choosing a displacement from a uniform distribution bounded by (0, d), where d is the vertical distance between stacked monomers
  • seed – random seed if you want to reproduce randomly displaced structures
  • mole_fraction – mol fraction of each type of monomer. This only has meaning if the system is built with a

mixture of monomers.

reorder()

reorder coordinate, residues and atom names so that all residues are separated. Some scripts (might) still rely on this ordering.

write_gro(out, ucell)

Write coordinate file in .gro format

Parameters:
  • out (str) – name of output .gro file
  • ucell (np.ndarray, shape(3,3)) – unitcell vectors

Functions

hexagonal_build.z_correlation(z, L, v=0.1)

Calculate where to place monomers on the z-axis so that a given correlation length is obtained

Parameters:
  • z (np.array) – mean z-positions where monomers will be placed with gaussian probability
  • L (float) – desired correlation length
  • v (float) – variance in z position of monomer head groups
Returns:

locations [np.array[nlayers])