Ball and Spring Model: Difference between revisions
No edit summary |
|||
Line 108: | Line 108: | ||
spring.atoms[1].momentum = spring.atoms[1].momentum - Fdt | spring.atoms[1].momentum = spring.atoms[1].momentum - Fdt | ||
[[File:Ball Spring Trim 1.gif| | [[File:Ball Spring Trim 1.gif|200px|thumb|right|Example of Coded Simple Cubic Lattice]] | ||
==Examples== | ==Examples== |
Revision as of 09:43, 3 December 2015
Page created by Ashley Fleck.
The Interactions of atoms can be modeled using balls to represent the atoms and a spring to represent the chemical bond between them.
Introduction
- Everything that has mass (solids, liquids, gases, etc.) is made of matter, which is made up of atoms. Each atom is composed of a dense positively charged nucleus and a much less dense negatively charged electron cloud (1). [Insert picture of a breakdown of an atom]. The charges of the atom affect how they interact with other atoms. Simply, the positive charge of one positively charged nucleus of one atom is attracted to the negatively charged electron cloud of the other atom, which bounds the two atoms together. This interaction is known as the electric force. However, this attraction only occurs up to a specific point. Once the atoms near too close to one another, the attractive forces of the nucleus and electron cloud are outweighed by the repulsive forces of the two atoms’ electron clouds (while opposite charges attract, negative charges repel). Therefore, if the atoms are pushed too close to one another, they will repel each other rather than attract. (1).
The Main Idea
- These interactions can be modeled using a familiar object: a spring! Every spring has a relaxed length. Once the spring is stretched past this relaxed length, the spring exerts a force inward in order to restore it to its original, relaxed length. If the spring is compressed smaller than the relaxed length, then it exerts a force outward in order to restore it to its original, relaxed length. Atoms can be modeled in the same way. Suppose two balls represent two atoms. These two atoms are connected by a spring, which represents the chemical bond (a bond between atoms that is a result of electric forces that bind protons and electrons to each other) between the two atoms (5).
- This simple model of just two atoms connected by a spring can then be extended to represent an entire solid! If each atom was connected to six atoms (each at a 90 degree angle to the others), it would form a cube, or what’s known as a simple cubic lattice. A simple cubic lattice is the simplest model of a solid. A model of this can be seen below. If one of the atoms is moved in any direction, it has a ripple effect with the other atoms (causing some to move away and some to come closer). Because they are all connected by these springs (which again, represents the electric forces between the atoms through a chemical bond), the movement of one atom affects all the other atoms (4).
Macroscopic Stretch
- That force exerted by a spring, mentioned earlier, in order to restore it back to its relaxed length after it has been compressed or stretched can be calculated. Every spring has a specific stiffness that is unique to that particular spring known as the spring constant (stiffness), k. It has units N/m. The stretch or compression of the spring is modeled by the difference in the final length minus the initial (relaxed length) and is denoted as ∆L = L – L0, where L is the final length and L0 is the relaxed length. Change in L is referred to as the macroscopic stretch. The force the spring exerts is a direct relationship between the spring stiffness and the macroscopic stretch, and is therefore:
- Fspring = k*∆L
Microscopic Stretch
- The ball-and-spring model of a solid consists of balls that represent atoms held together by springs representing chemical bonds as a result of electric forces. As with a spring, a relaxed length is needed as a reference point to determine stretch or compression; the relaxed length of the spring between the two atoms is the center-to-center distance between the atoms, d. This distance would simply be twice the radius since the atoms would fill the space up entirely, minimizing the space between atoms. Since these bonds are modeled as springs, they also maintain a spring stiffness, k, specific to the spring and how much it will stretch. This stretch is defined as s, and is referred to as the microscopic stretch.
Young’s modulus
Recall that the stiffness of a wire depends on how long the wire is and the thickness of that wire only; it does not depend on the material of wire, so different wires from the same material could still have different stiffnesses. Calculating Young’s modulus is a way to measure the “springiness” of a material and factor out the size and shape of the particular wire. Young’s modulus is the ratio of the force exerted per square meter of area (F/A) and the stretch of the wire (∆L/L). It is a way to measure the “springiness” of a material.
A Mathematical Model
What are the mathematical equations that allow us to model this topic. For example [math]\displaystyle{ {\frac{d\vec{p}}{dt}}_{system} = \vec{F}_{net} }[/math] where p is the momentum of the system and F is the net force from the surroundings.
A Computational Model
This model of a solid can be simulated using VPython (written by Bruce Sherwood and licensed under Creative Commons 4.0).
N = 3
k = 1
m = 1
spacing = 1
atom_radius = 0.3*spacing
L0 = spacing-1.8*atom_radius
V0 = pi*(0.5*atom_radius)**2*L0
scene.background = color.white
scene.center = 0.5*(N-1)*vector(1,1,1)
dt = 0.04*(2*pi*sqrt(m/k))
axes = [vector(1,0,0), vector(0,1,0), vector(0,0,1)]
class crystal:
def atomAt(self, np):
if (np.x>=0 and np.y>=0 and np.z>=0 and np.x<N and np.y<N and np.z<N):
return self.atoms[int(np.x + np.y*N + np.z*N*N)]
w = box()
w.visible = False
w.radius = atom_radius
w.pos = np*spacing
w.momentum = vector(0,0,0)
return w
def __init__(self, N, atom_radius, spacing, momentumRange ):
self.atoms = []
self.springs = []
for z in range(N):
for y in range(N):
for x in range(N):
atom = sphere()
atom.pos = vector(x,y,z)*spacing
atom.radius = atom_radius
atom.color = vector(0,0.58,0.69)
px = 2*random()-1 # ranges from -1 to +1
py = 2*random()-1
pz = 2*random()-1
atom.momentum = momentumRange*vector(px,py,pz)
self.atoms.append( atom )
for d in range(3):
for z in range(-1,N):
for y in range(-1,N):
for x in range(-1,N):
atom = self.atomAt(vector(x,y,z))
neighbor = self.atomAt(vector(x,y,z)+axes[d])
if (atom.visible or neighbor.visible):
spring = helix()
spring.visible = atom.visible and neighbor.visible
spring.thickness = 0.05
spring.radius = 0.5*atom_radius
spring.length = spacing
spring.up = vector(1,1,1)
spring.atoms = [ atom, neighbor ]
spring.color = vector(1,0.5,0)
self.springs.append(spring)
c = crystal(N, atom_radius, spacing, 0.1*spacing*sqrt(k/m))
while True:
rate(30)
for atom in c.atoms:
atom.pos = atom.pos + atom.momentum/m*dt
for spring in c.springs:
spring.axis = spring.atoms[1].pos - spring.atoms[0].pos
L = mag(spring.axis)
spring.axis = spring.axis.norm()
spring.pos = spring.atoms[0].pos+0.5*atom_radius*spring.axis
Ls = L-1*atom_radius
spring.length = Ls
Fdt = spring.axis * (k*dt * (1-spacing/L))
spring.atoms[0].momentum = spring.atoms[0].momentum + Fdt
spring.atoms[1].momentum = spring.atoms[1].momentum - Fdt
Examples
Be sure to show all steps in your solution and include diagrams whenever possible
Simple
Middling
Difficult
Connectedness
- How is this topic connected to something that you are interested in?
- How is it connected to your major?
- Is there an interesting industrial application?
History
Put this idea in historical context. Give the reader the Who, What, When, Where, and Why.
See also
Are there related topics or categories in this wiki resource for the curious reader to explore? How does this topic fit into that context?
Further reading
Books, Articles or other print media on this topic
External links
Internet resources on this topic
References