๐ถ Molecule resonance frequencies
Oscillating water molecule
Section titled โOscillating water moleculeโWhy does water vapor absorb in so many wavelengths? Due to its non-linear shape, it oscillates in many ways! See below how frantically a water molecule may respond to an alternating electric field.
๐ฏ Resonance frequencies of water
๐ง Original h2o.py by Paul Francis
๐ A VPython demo is available as well, see water_molecule.py
Live demo
Section titled โLive demoโGreenhouse effect of carbon dioxide
Section titled โGreenhouse effect of carbon dioxideโWhy is carbon dioxide so important to global warming?
The global warming / greenhouse effect is mainly due to particular resonance of the carbon dioxide molecules. In this animation, a carbon dioxide molecule is exposed to an alternating electric field. Discover which frequencies the molecule responds to and if so, how.
๐ฏ Resonance frequencies of carbon dioxide
๐ง Original co2.py by Paul Francis
๐ A VPython demo is available as well, see carbon_dioxide.py
Live demo
Section titled โLive demoโModel and implementation
Section titled โModel and implementationโThe carbon dioxide and water molecules are modeled as a three-body system consisting of one central and two outer atoms. For carbon dioxide, the equilibrium configuration is linear, with the carbon atom between the two oxygen atoms.
For the bond potential, we use Hookeโs law:
where is the current bond length and is the equilibrium bond length.
For the angular interaction, let
and
Because the equilibrium configuration is linear, the angular displacement is measured as the deviation from a straight line:
Thus, corresponds to a perfectly linear molecule. A bent molecule has .
The direction of the bending force is determined from the sum of the two bond vectors:
The force applied to each outer atom is
while the central atom receives the compensating force
The angular interaction is therefore a three-body force: the force on each atom depends on the positions of both bonds simultaneously. In the JavaScript implementation, the bending force is consequently applied to both bonds together, for example for carbon dioxide:
co2.bond1.and(co2.bond2).apply(bendForce);This implementation follows the force formulation used in the original VPython examples. In particular, for CO2 the angular displacement is defined as the deviation from linearity rather than as the difference from an equilibrium angle of .
Finally, the interaction with the external electric field is modeled using the electric force
where is the charge of the atom and is the local electric field.
At each simulation step, the Coulomb, bond-stretching, and angular forces are first accumulated on all three atoms. Only after all forces have been applied are the atoms integrated forward in time.