Buffer

Buffer preview image

2 collaborators

Uri_dolphin3 Uri Wilensky (Author)
Mike Stieff (Author)

Tags

chemical reactions 

Tagged by Reuven M. Lerner about 12 years ago

chemistry and physics 

Tagged by Reuven M. Lerner about 12 years ago

Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 885 times • Downloaded 157 times • Run 0 times
Download the 'Buffer' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This model demonstrates the behavior of a buffered solution. A buffer is a solution that resists change in pH when either acid or base are added into it, within limits. It is best viewed as the third model in the ACID-BASE package.

Chemists and biologists use the properties of acids and bases to create buffer solutions. It is often desirable to keep the acidity, or hydronium ion concentration of a solution, as nearly constant as possible. Examples of such situation would be: measuring the velocity of a reaction, selectively dissolving certain salts, or studying the growth of bacteria or plants. In our body, the blood has a buffering capacity, keeping the pH at 7.35. If the pH goes above 7.7 (alkalosis) or below 7.0 (acidosis), the results are fatal.

HOW IT WORKS

To accomplish this feat, buffers depend on the presence of both a weak acid and its conjugate base. With both of these species in the solution, additional acids and bases are neutralized according to the following chemical equations. H-A denotes the weak acid and A- denotes its conjugate base.

H-A + OH- —> H2O + A- A- + H3O+ —> H2O + H-A

The pH of a buffer is determined in the same manner that the pH of a weak acid is determined - by counting the number of hydronium and hydroxide ions and calculating their ratio with total number of ions and molecules in the solution.

When there are more hydroniums, pH = - log ( hydronium concentration )

When there are more hydroxides, pH = 14 - pOH = 14 - log ( hydroxide concentration )

Buffers are effective only within their unique buffering range. This range is determined by the concentrations of the weak acid and its conjugate base. Outside of its buffering range, the solution behaves as a strong acid or base.

HOW TO USE IT

Decide how many acid molecules should be present at the start of the simulation with the STARTING-ACID slider. Set the number of conjugate base molecules with the STARTING-CONJ-BASE slider.

Press SETUP. The turtles will distribute randomly across the world.

YELLOW turtles are acid molecules (HA)
ORANGE turtles are conjugate base molecules (A-)
GREEN turtles represent hydronium ions (H30+)
RED turtles are hydroxide molecules (OH-)
BLUE turtles represent water molecules (H20)

In this model we are assuming that 2% of the original acid molecules are dissociated into 2 conjugate base molecules and 2 hydronium molecules. This is true only before the molecules start interacting between themselves.

Press GO. The molecules will move randomly across the world.

When two turtles occupy the same patch, the following rules apply:
1. When a weak acid and a water molecule collide, the acid molecule dissociates into its conjugate base and the water molecule transforms to a hydronium ion.
2. When hydroxide and hydronium ions collide, they always form two water molecules.
3. When a weak acid and hydroxide collide, they have a high probability of transforming into a conjugate base and a water molecule.
4. When hydronium and conjugate base collide, they have a high probability of transforming into a weak acid molecule and a water molecule.

To observe the effect of adding base or acid to the solution, set the number of acid molecules you want to add with the ADDED-ACID slider and press ADD-ACID (H30+)
Do the same for adding base with the ADDED-BASE slider and ADD-BASE button.

A number of plots and monitors can be observed:
The pH of the solution is plotted over time on the PH plot, and at each time tick on the PH monitor. pH is calculated using the ratio of the number of hydronium and hydroxide molecules to the total number of turtles. This is different from the chemistry calculation that relates this number to solution volume.
You can see the number of hydroniums and hydroxides in the solution in their monitors (# HYDRONIUMS, # HYDROXIDES).
You may follow the number of molecules of each species over time in the MOLECULE COUNTS plot.

You may choose to see the initial water molecules or not with the SEE-STARTING-WATER? switch.

THINGS TO NOTICE

After you press SETUP, the buffer solution is not yet in equilibrium. After the model starts running, the molecules react until the system is equilibrated, and the pH doesn't change anymore.

Observe the pH curve. How are the numbers of hydronium and hydroxide molecules in the monitors below related to the pH?

Examine the shape of the pH curve. Notice how the pH changes with respect to the amount of base or acid added. Does the buffer resist change in pH?

Observe the number of molecules in the plot. When acid or base is added to the solution, they quickly disappear as they react. Can you determine which molecules react with each other? What is the relationship between the two plots: pH and number of molecules?

What happens when large amounts of base or acid are added to the system? Is it the same as adding small amounts? Does the pH curve reflect this?

THINGS TO TRY

Add a large amount of acid or base to the solution and observe the effect. Why does the pH change dramatically outside of the buffering range? Would it be useful to add large amounts of base all at once to a solution in the laboratory if you were trying to adjust the pH?

Can you relate the idea of a "buffering range" to the molecules and their behavior in the model?

Try running the model with different amounts of acid or conjugate base. The buffering range of the solution should shift. How is the shift related to the changes you made? Does changing the proportion between the number of weak acid and conjugate base molecules have an effect on the buffering capacity?

How does changing the amount of buffer molecules influence the buffering capacity?

Try pressing SETUP a number of times with the same initial settings, and observe the number of hydroniums. Is the number always the same? Press GO and watch the change in pH. Why is the same equilibrium reached in each case?

EXTENDING THE MODEL

Increase the amount of hydronium originally generated upon SETUP by increasing the chance of dissociation in the procedures. What effect does this have on the initial pH?

Add a button and procedure to add more conjugate base to the reaction. How could this help a chemist who is trying to keep the pH of a solution at a constant value?

Add a procedure that allows you to plot a titration curve for a buffer. Is it similar to any other titration curves you have seen? What additional information can you learn from the titration curve?

Additional interactions could take place in a solution in addition to those stated in the rules. These were omitted because their probability of occurring is low. Try including one of these rules to the procedure. For example, two water molecules could transform into a hydronium and hydroxide ions. Does it make a change?

CREDITS AND REFERENCES

Thanks to Mike Stieff for his work on this model.

HOW TO CITE

If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

  • Stieff, M. and Wilensky, U. (2001). NetLogo Buffer model. http://ccl.northwestern.edu/netlogo/models/Buffer. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
  • Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.

COPYRIGHT AND LICENSE

Copyright 2001 Uri Wilensky.

CC BY-NC-SA 3.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

This model was created as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227.

Comments and Questions

Click to Run Model

breed [waters water]             ;; water molecules
breed [hydroniums hydronium]     ;; hydronium ions (green)
breed [hydroxides hydroxide]     ;; base molecules (red)
breed [acids acid]               ;; parent acid molecules (yellow)
breed [conj-bases conj-base]     ;; conjugate base molecules of parent acid (orange)

globals [
  pH
]

to setup
  clear-all
  set-default-shape waters "molecule2"
  set-default-shape hydroniums "molecule3"
  set-default-shape hydroxides "molecule1"
  set-default-shape acids "molecule2"
  set-default-shape conj-bases "molecule1"
  create-acids starting-acid  ;; creates variable amount of acid
    [ set color yellow ]
  ask acids [
    ;; initializes amount of dissociated acid
    if random-float 100 > 98
      [ dissociate ] ]
  if see-starting-water?
    [ create-waters 100    ;; creates constant volume of water
        [ set color blue ] ]
  create-conj-bases starting-conj-base  ;; creates variable amount of conjugate base
    [ set color orange ]
  ask turtles                   ;; randomize position and heading of turtles
    [ setxy random-xcor random-ycor ]
  calculate-pH
  reset-ticks
end 

;; dissociate an acid molecule into hydronium and conj-base
;; this should only be called by turtles that are acids

to dissociate  ;; turtle procedure
  hatch-hydroniums 1 [ set color green ]
  set breed conj-bases
  set color orange
end 

to go
  ask hydroxides [ react-hydroxide ]
  ask hydroniums [ react-hydronium ]
  ;; move turtles randomly around the world
  ask turtles
    [ fd 1
      rt random 10
      lt random 10 ]
  tick
  calculate-pH
end 

to react-hydroxide  ;; hydroxide procedure
  let partner one-of hydroniums-here
  ifelse partner != nobody
    [ react partner ]
    [ set partner one-of acids-here
      if partner != nobody
        [ react partner ] ]
end 

to react-hydronium  ;; hydronium procedure
  let partner one-of hydroxides-here
  ifelse partner != nobody
    [ react partner ]
    [ set partner one-of conj-bases-here
      if partner != nobody
        [ react partner ] ]
end 

to react [ partner ]  ;; turtle procedure
  ;; all hydroxide molecules will instantly react with
  ;; hydronium molecules and form water
  ifelse ([breed] of partner) = hydroniums or ([breed] of partner) = hydroxides
    [ set breed waters
      set color blue
      ask partner
        [ set breed waters
          set color blue ] ]
    [ ;; hydroxide molecules have a high probability of
      ;; reacting with acid molecules
      ifelse ([breed] of partner) = acids
        [ if random-float 100 > 80
          [ set breed waters
            set color blue
            ask partner
              [ set breed conj-bases
                set color orange ] ] ]
        ;; hydronium ions will react with conjugate base to form acid
        [ if ([breed] of partner) = conj-bases
          [ if random-float 100 > 80
            [ set breed waters
              set color blue
              ask partner
                [ set breed acids
                  set color yellow ] ] ] ] ]
end 

;; calculates the pH from the amount of the various ions in solution;
;; note that for simplicity the calculations don't take the true molar
;; concentration of water into account; instead we simply divide by
;; a factor of 1000 to bring the numbers into a reasonable range

to calculate-pH
  let volume count turtles
  let concH (count hydroniums / volume)
  let concOH (count hydroxides / volume)
  ifelse (concH = concOH)
    [ set pH 7 ]
    [ ifelse (concH > concOH)
      [ set pH (- log (concH / 1000) 10) ]
      [ let pOH (- log (concOH / 1000) 10)
        set pH 14 - pOH ] ]
end 

;; add more base to the system

to add-base
  create-hydroxides added-base
    [ set color red
      fd 1 ]
end 

;; add more acid to the system

to add-acid
  create-hydroniums added-acid
    [ set color green
      fd 1 ]
end 


; Copyright 2001 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky over 12 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky almost 13 years ago Updated version tag Download this version
Uri Wilensky almost 13 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 13 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 15 years ago Model from NetLogo distribution Download this version
Uri Wilensky over 15 years ago Buffer Download this version

Attached files

File Type Description Last updated
Buffer.png preview Preview for 'Buffer' over 12 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.