# 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

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
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

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