AmorphousLayer

class AmorphousLayer(material_specifications, length, melt_temperature=None, melt_time=None, quench_temperature=None, quench_rate=None, time_step=None, method=None)

Class to represent an amorphous layer material in MultilayerBuilder.

The amorphous layer is generated using a melt-quench MD procedure. First the system is melted and equilibrated at a high temperature. Then it is quenched from the melt_temperature to the quench_temperature at a rate of quench_rate. Then the system is quenched to zero Kelvin using a geometry optimization.

Parameters:
  • material_specifications (MaterialSpecifications.) – A descriptor of a bulk material, plus the information needed to perform the calculations.
  • length (PhysicalQuantity of type length) – The target length (thickness) of the layer. A length of zero will generate the smallest possible layer.
  • melt_temperature (PhysicalQuantity of type temperature) –

    Deprecated since version 2019.12.

    The temperature used during the melt.
    Default: 5000*Kelvin

  • melt_time (PhysicalQuantity of type time) –

    Deprecated since version 2019.12.

    The length of the melt MD simulation.
    Default: 40*picosecond

  • quench_temperature (PhysicalQuantity of type temperature) –

    Deprecated since version 2019.12.

    The target temperature during the quenching MD simulation.
    Default: 600*Kelvin

  • quench_rate (PhysicalQuantity of type temperature per time) –

    Deprecated since version 2019.12.

    The rate of temperature change during the quenching. This rate will be used to calculate the length of the quenching MD simulation.
    Default: 400*Kelvin/picosecond

  • time_step (PhysicalQuantity of type time) –

    Deprecated since version 2019.12.

    The MD time step.

  • method (MolecularDynamicsMeltQuench | TimeStampedForceBiasMonteCarloMeltQuench) – Technique to perform the amorphization and associated parameters.
    Default: MolecularDynamicsMeltQuench
length()
Returns:The target length (thickness) of the layer.
Return type:PhysicalQuantity of type length
materialSpecifications()
Returns:The descriptor of a bulk material, plus the information needed to perform the calculations.
Return type:MaterialSpecifications
method()
Returns:The method to perform amorphization
Return type:TimeStampedForceBiasMonteCarloMeltQuench | MolecularDynamicsMeltQuench

Usage Example

Example of a customized AmorphousLayer object to generate an amorphous silica layer.

custom_layer = AmorphousLayer(
    MaterialSpecificationsDatabase.MULTILAYER_MATERIALS['Silica'],
    length=10.0*Angstrom,
    melt_temperature=6000*Kelvin,
    melt_time=60*picosecond,
    quench_temperature=1000*Kelvin,
    quench_rate=60*Kelvin/picosecond,
    time_step=0.5*femtosecond,
)

amorphous_layer_example.py

Notes

The AmorphousLayer class defines how an amorphous layer should be generated by the MultilayerBuilder. The amorphous structure is generated using a melt quench procedure.

The first step is to melt the structure. This is done by running a NVT MD simulation at a temperature of melt_temperature for time of melt_time. This temperature should be hot enough to ensure that the material can thoroughly melt.

Note

The MD simulations are performed using the material_specifications.amorphizationCalculator() calculator. This is normally a classical force-field calculator. Force-field calculators often do not properly reproduce the melting temperature of many materials and so it is recommended that a very high melting temperature is used.

The second step is quenching. A NVT MD simulation is run starting at a temperature of melt_time and cooling at a rate of quench_rate until the temperature is equal to the quench_temperature.

Note

A slower quenching rate may give more realistic amorphous structures, but it is not often possible to simulate experimental cooling rates due to the number of MD steps that would be required.

The final step is geometry optimization, using a DFT calculator, which represents instantaneous quenching from the quench_temperature to zero Kelvin.