Example: Molecular gun with the hybrid engineΒΆ

In this example we are going to really stretch the use of the Hybrid Engine, and shoot bullets (treated with a QM engine) at a surface described at the MM level.

The choice of bullets are HF molecules and the target is a two dimensional BN sheet, that looks like a graphene sheet, with half of the C atoms turned into N and the other half into B atoms. In a BN sheet the atoms have of course a small charge, which we pre calculate with a QM engine (DFTB).

It is important to understand the role of bonds in this example, because the number of atoms is not constant during the simulations, as bullets are fired (and hence appear), ricochet off the surface and hence disappear after a while. They may as well stick to, or penetrate into the surface, but this is beyond the hybrid engine concept.

In this example there are fixed bond orders withing the target and within the bullets. This is because we specify GuessBonds in the two system blocks (target and bullet). When a bullet is added its bonds are automatically added. The hybrid engine itself will never guess bonds and always use what is specified on input. No bonds are ever formed between the bullet and the surface (the QM and MM regions).

Download HybridGun.run

#!/bin/sh


# In this example we use the hybrid engine in a molecular gun MD application, shooting HF molecules at a BN surface

# The BN slab represents the MM region and the "bullets" are the QM region
# The regions are defined in the xyz files using end of line strings (atom attributes)

# First we do two dftb calculations to get a guess of the charges to be used by the force field.

STRUCTDIR=$AMSHOME/examples/Hybrid/HybridGun/molecules

export AMS_JOBNAME=BNSlab.dftb

rm -rf $AMS_JOBNAME.results

$AMSBIN/ams << eor

Task SinglePoint

System
   GeometryFile $STRUCTDIR/BNSlab.xyz
End

Engine DFTB
EndEngine

eor


export AMS_JOBNAME=HF.dftb

rm -rf $AMS_JOBNAME.results

$AMSBIN/ams << eor

Task SinglePoint

System
   GeometryFile $STRUCTDIR/HF.xyz
End

Engine DFTB
EndEngine

eor

# now we can run our MD simulation using both mechanical and electrostatic embedding

for embedding in mechanical electrostatic
do

# because electrostatic embedding is more expensive we limit here the number of steps

steps=1400

if [ $embedding = electrostatic ]
then
  steps=300
fi

export AMS_JOBNAME=SinkBox.embedding=$embedding

rm -rf $AMS_JOBNAME.results

$AMSBIN/ams << eor

Task MolecularDynamics

System
    GeometryFile $STRUCTDIR/BNSlab.xyz
    GuessBonds true
    LoadForceFieldCharges file=BNSlab.dftb.results
End

System H2
   GeometryFile $STRUCTDIR/HF.xyz
   GuessBonds true
   LoadForceFieldCharges file=HF.dftb.results
End

RNGSeed -1341016088 83513668 1764626453 -87803069 -1149690266 1963370818 -1393571175 1985130742

MolecularDynamics
    NSteps $steps

    Trajectory
        SamplingFreq 20
    End

    InitialVelocities
        Temperature 300
    End

    AddMolecules
        System H2
        Frequency 159
        CoordsBox 0 3 0 8.57 6 7
        VelocityDirection 0.45752820 0 -0.5540656
        Velocity 0.07
        Rotate Yes
        MinDistance 3.0
    End

    Preserve
        Momentum No
        AngularMomentum No
    End

    RemoveMolecules
      Formula *
      Frequency 101
      SinkBox FractionalCoordsBox="0 1 0 1 8 1000"
   End
End

Constraints
  Atom 1
End

Engine Hybrid
   QMMM  qmRegion=qm mmEngineID=ForceField qmEngineID=dftb embedding=$embedding

   Engine dftb
   EndEngine

   Engine ForceField
      NonBondedCutoff 50 [Bohr]
   EndEngine
EndEngine


eor
done