CleanVacuumRegion

class CleanVacuumRegion(fuzz_factor=1.5, substrate_search_radius=PhysicalQuantity(2.0, Ang))

Removes any atoms that are not in the same bonding graph as the fixed atoms. Atoms whose distance is less than the fuzz factor times the sum of covalent radii are considered bonded. So a larger fuzz factor is more conservative when determining which atoms are removed.

Parameters:
  • fuzz_factor (float) – The factor by which the covalent radii are multiplied to determine the cutoff distance for a bond.
    Default: 1.5.

  • substrate_search_radius (PhysicalQuantity of type distance | None) – Search radius for finding substrate atoms that have become unbonded from the substrate structure. Unbound atoms that have substrate atoms above them within a cylinder of the given radius are considered to be part of the substrate structure and therefore not removed. Setting this argument to None disables this additional check.
    Default: 2 Angstrom.

uniqueString()

Return a unique string representing the state of the object.

Usage Examples

Run an etching simulation of nitrogen on a silica surface using a ReaxFF potential, with an additional CleanVacuumRegion hook function.

# Attach ReaxFF calculator.
potentialSet = ReaxFF_CHONSSi_2012(strict_bondpairs = None)
calculator = TremoloXCalculator(parameters=potentialSet)
calculator.setVerletListsDelta(0.25*Angstrom)
bulk_configuration.setCalculator(calculator)

surface_process_simulation = SurfaceProcessSimulation(
    substrate=bulk_configuration,
    filename='sio2_n_etching.hdf5',
    object_id='sps_0',
    random_seed=7,
    temperature=300.0*Kelvin,
    fixed_thickness=4.0*Angstrom,
    thermostat_thickness=8*Angstrom,
    log_interval=10,
)

# Run 5 deposition events, each 20 ps long.
surface_process_simulation.addSequence(
    molecule=Nitrogen,
    number_of_events=5,
    md_time=20*ps,
    time_step=1.0*fs,
    mean_kinetic_energy=25*eV,
    std_kinetic_energy=0.3*eV,
    mean_incident_angle=0*Degrees,
    std_incident_angle=2*Degrees,
    post_md_hooks=[CleanVacuumRegion()],
)

surface_process_simulation.update()

sio2_n_etching.py

The results from the simulation can be visualized using the Movie Tool on the QATK LabFloor.

See also Notes on SurfaceProcessSimulation Hooks.