Hi all,
I’m encountering some strange behavior that I can’t seem to fix. For background, I’m looking at bonding two SiO2 surfaces together. Using version 11 Feb 2026.
From bottom up, I have the following:
- Bottom hydroxylated SiO2 “wafer”, with the lower 1 nm of it fixed with setforce 0.0 0.0 0.0 to prevent movement during the simulation.
- Top hydroxylated SiO2 “wafer”, with the upper 1 nm of it set as a single rigid body to apply a load to compress the two wafers together.
The “free” layers of each wafer are updated with time through fix nvt. I move the top wafer towards the bottom wafer and attempt to bond them by simulating a pressure with setforce or addforce. My current protocol is shown below:
# ----------------------- DEFINE REGIONS AND GROUPS ----------------------------
region bottomrigidlayer block EDGE EDGE EDGE EDGE EDGE 10 # rigid layer, bottom 1 nm of bottom wafer
group bottomrigidlayer region bottomrigidlayer
region toprigidlayer block EDGE EDGE EDGE EDGE 92.969602 EDGE # rigid layer, top 1 nm of top wafer
group toprigidlayer region toprigidlayer
group wafers subtract all bottomrigidlayer toprigidlayer
# ----------------------- EQUILIBRATE AT T = 300 K ----------------------------
reset_timestep 0
timestep 0.25
variable forceperatom equal -0.002199 # 10 MPa
compute com_toprigidlayer toprigidlayer com
fix toprigidfix toprigidlayer rigid single force 1 off off on torque 1 off off off
velocity bottomrigidlayer set 0.0 0.0 0.0
fix freezebottom bottomrigidlayer setforce 0.0 0.0 0.0
fix toprigidcompressionforce toprigidlayer addforce 0.0 0.0 v_forceperatom
fix equilibrate wafers nvt temp 300 300 25
When I use addforce on the rigid layer, it appears to split into quadrants and tilt. Using fix rigid delays this behavior until ~70 ps into the simulation, whereas using fix rigid/nvt or rigid/nve shows the behavior within the first couple ps of the simulation. Using setforce instead keeps the rigid layer parallel to the wafers, however the rigid layer accelerates and “infinitely” compresses the two wafers together until the simulation ends. Examples shown below.
Addforce, throughout the simulation:
Setforce, throughout the simulation:
The only thing I haven’t yet tried is:
velocity toprigidlayer zero linear rigid toprigidfix
velocity toprigidlayer zero angular rigid toprigidfix
, as perhaps this could help to prevent the rotation / splitting. My thought process is that since this didn’t happen with setforce, maybe there are some forces acting on the rigid layer that I have not accounted for.
Is there some way to keep the “pressure” through addforce, without this strange splitting behavior occurring? I have thought about switching to fix move and measuring pressure instead of directly applying it, but this would complicate the methodology for future steps of my simulations.
Thanks,
Scott





