amorphousPrebuilder

amorphousPrebuilder(configuration, density=None, sigma=0.1)
Parameters:
  • configuration (BulkConfiguration) – The base configuration to use when creating the amorphous structure. The final structure will have the same name of each element and the same shape unit cell.

  • density (PhysicalQuantity of type mass per volume**3) – The density of the amorphous material.
    Default: same density as configuration

  • sigma (float) – The position of each atom has Gaussian noise added to it. The standard deviation is sigma times the average volume per atom.
    Default: 0.1

Returns:

The amorphous configuration.

Return type:

BulkConfiguration

Usage Examples

Use the amorphous prebuilder to create an initial configuration for amorphous silica from an initial quartz unit cell:

# Setup a quartz cell.
lattice = Hexagonal(4.916*Angstrom, 5.4054*Angstrom)

elements = [Silicon, Silicon, Silicon, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
            Oxygen]

fractional_coordinates = [[ 0.4697        ,  0.            ,  0.            ],
                          [ 0.            ,  0.4697        ,  0.666666666667],
                          [ 0.5303        ,  0.5303        ,  0.333333333333],
                          [ 0.4135        ,  0.2669        ,  0.1191        ],
                          [ 0.2669        ,  0.4135        ,  0.547567      ],
                          [ 0.7331        ,  0.1466        ,  0.785767      ],
                          [ 0.5865        ,  0.8534        ,  0.214233      ],
                          [ 0.8534        ,  0.5865        ,  0.452433      ],
                          [ 0.1466        ,  0.7331        ,  0.8809        ]]

bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# Repeat the primitive cell to make a larger configuration.
bulk_configuration = bulk_configuration.repeat(3, 3, 3)

# Make the amorphous SiO2 cell with a density of 2.2 gram/cm**3.
bulk_configuration = amorphousPrebuilder(bulk_configuration, density=2.2*gram/cm**3)

In the full script, this configuration is then equilibrated by a 10 ps NVT molecular dynamics simulation at 2000 K and a 50 ps NPT molecular dynamics simulation at 1500 K.

amorphous_sio2.py

Notes

The amorphousPrebuilder function creates a rough initial guess for an amorphous structure. The function will return a new configuration with the same number and type of atoms as the original, but with the unit cell vectors scaled to give the requested density. Each atom is repositioned along a FCC grid with Gaussian noise added to its position.

The resulting configuration requires additional optimization and equilibration in order to create a realistic amorphous structure.