Energy Diffusion through a Crystal Lattice

No preview image

1 collaborator

Default-person Daniel Kim (Author)

Tags

diffusion 

Tagged by Forrest Stonedahl over 9 years ago

hydrogen 

Tagged by Forrest Stonedahl over 9 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 4.1 • Viewed 322 times • Downloaded 20 times • Run 5 times
Download the 'Energy Diffusion through a Crystal Lattice' 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?

Complex metal hydrides are a class of materials heavily investigated worldwide for hydrogen storage applications. These are solid state, reversible alloys that absorb hydrogen at high pressures, and release hydrogen at high temperatures. The kinetics of desorption are not well understood. There are many competing parameters that affect the rate of diffusion, including:

Bond break probability

Diffusion Speed

Diffusion through a different phase

Reabsorption property

Kinetics tend to be a serious problem in this field of materials, and it is not clearly understood which of these reactions are rate limiting. This project models hydrogen diffusion through a lattice with the ability to adjust the parameters. In doing so, we are able to investigate the affect of different properties on the material.

The simulation begins with a fully saturated lattice with all available hydrogen in compound form. As the hydrogens begin to free themselves, they will diffuse freely through the lattice until they reach the surface of the material, where they must pair off in order to leave the lattice as a H2 gas molecule.The simulation terminates when the available hydrogen reaches a user-set termination percent.

HOW IT WORKS

The SETUP button initializes the model.

The square lattice is represented by each patch representing a XH4 molecule in the lattice, where X marks some central anion atom, like Al, B, or N.

The GO button begins the diffusion process.

At each tick, the hydrogens will begin to desorb and diffuse until they leave the system.

Free hydrogens within the lattice will move to one of their four neighboring patches with equal probability unless one of them is a depleted (black) patch, where the probability is altered by a factor of blackDiffuse.

When the free hydrogens reach the surface of the lattice, they still move once per tick, but can only move to other patches on the surface of the material.

The shade of the patches indicate the amount of available desorbable hydrogen.

The XH4 patches start at the brightest shade of green, and gradually darken to black (XH molecules).

The desorbed hydrogens are represented by white circles that both move from patch to patch, and experience a slight vibration factor for visualization purposes.

HOW TO USE IT

The probability for desorption and absorption of free hydrogens can be changed using their corresponding sliders.

By varying the desorption sliders, one can control the probability for hydrogens to free themselves from the compound at each of the three stages (4->3, 3->2, 2-1).

Similarly, the absorption sliders control the probability for hydrogens to be re-absorbed back into molecular form (causing the lattice patch to change color accordingly).

h2Count:

Displays total of both desorbable and free hydrogens remaining in the system at every tick.

EXTENDING THE MODEL

There are many interesting properties that are used to accelerate kinetics that this model could eventually be modeled to study.

First, the properties that are being investigated (bond breaking, diffusion speed, etc), these are are calculable using first-principles Density Functional Theory methods. Having a built in converter that for example, changed binding energy directly to a bond-breaking probability, would allow the model to be greatly extended to model a great number of realistic systems.

Second, there are several catalytic means that could be investigated by this model. There is the 'magic dust' idea, where some very small percentage of a catalyst can dramatically reduce desorption time. There is alloy seeding, where the existence of depleted patches nearby promote the formation of similar patches nearby, depleting hydrogen. There is finally a size-effect - it is known that nanoparticle materials desorb hydrogen at much lower temperatures (albeit with lower gravimetric capacity), but it is not known why - on a fully parallelized model, size effects could be examined.

CREDITS AND REFERENCES

This section could contain a reference to the model's URL on the web if it has one, as well as any other necessary credits or references.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

patches-own [class hCount] 
;class 0 - inner lattice
;class 1 - fast surface lattice
;class 2 - air - black

; total hydrogen available in patches and free-roaming 
globals[ hTotal ]

breed [hydrogens hydrogen]  ;;hydrogen
breed [skulls skull]  ;;hydrogen
breed [borders border]  ;;hydrogen

to setup
  clear-all
  
  
  ;patch setup
  ask patches 
  [ set pcolor 32
    set class 2
    sprout-borders 1
    [ set shape "border"
      set color black
      set heading 0]]
  ask patches with [(pxcor > min-pxcor) and (pxcor < max-pxcor) and (pycor > min-pycor) and (pycor < max-pycor)]
  [ set pcolor 76
    set class 1 ]  
  ask patches with [(pxcor > min-pxcor + 1) and (pxcor < max-pxcor - 1) and (pycor > min-pycor + 1) and (pycor < max-pycor - 1)]
  [ set pcolor 76
    set class 0 ]
  ask patches with [class < 2]
  [ set hCount 4 ]
  
  set hTotal ((count patches with [class < 2]) * 3)
end 

to go
  
  ; STOP CONDITIONS
  ;==============================================================================
  if (hTotal < (2883 * endPercent / 100)) 
  [ ask patch 0 0 [set pcolor red]
    stop ]
  
  if (hTotal = 1) 
  [ ask hydrogens [ set size 0 ]
    stop ]
  
  
  
  ; FREEDOM
  ;==============================================================================
  ask patches with [hCount = 2]
  [ if random-float 1.0 < p2to1
    [ set pcolor pcolor - 2
      set hCount hCount - 1
      sprout-hydrogens 1
      [ set shape "circle3"
        set color white
        set size .5]]]
  ask patches with [hCount = 3]
  [ if random-float 1.0 < p3to2
    [ set pcolor pcolor - 2
      set hCount hCount - 1
      sprout-hydrogens 1
      [ set shape "circle3"
        set color white
        set size .5]]]
  
  ask patches with [hCount = 4]
  [ if random-float 1.0 < p4to3
    [ set pcolor pcolor - 2
      set hCount hCount - 1
      sprout-hydrogens 1
      [ set shape "circle3"
        set color white
        set size .5]]]
  
  ; PAIRING-UP AND LEAVING
  ;==============================================================================
  ask patches with [class = 1]
  [ if ((count hydrogens-here) > 1) ; when there are two hydrogens on one surface lattice patch, combine and leave system
    [ ask n-of 2 hydrogens-here
      [ set hTotal hTotal - 1
        die ]]]
  
  
  ; REABSORPTION
  ;==============================================================================
  ask hydrogens
  ;2 to 3 absorption
  [ ifelse ((hCount = 2) and (random-float 1.0 < p2to3))
    [ set hCount hCount + 1 ; patch variable
      set pcolor pcolor + 2 ; patch variable
      die]
  ;3 to 4 absorption
    [ if ((hCount = 3) and (random-float 1.0 < p3to4))
      [ set hCount hCount + 1 ; patch variable
        set pcolor pcolor + 2 ; patch variable
        die]]]
  
  
  ; HYDROGEN MOVEMENT
  ;==============================================================================
  ; lattice hydrogens
  ask hydrogens-on patches with [class = 0]
  [ 
    let norm (count neighbors4 with [hCount = 1]) * blackDiffuse + (count neighbors4 with [hCount > 1]) + 0.00000001
    let pBlack (count neighbors4 with [hCount = 1]) * blackDiffuse / norm ;percent chance to move to black
    
    ifelse (random-float 1.0 < pBlack)
    [ face one-of neighbors4 with [hCount = 1]
      fd 1 ]
    [ ifelse count (neighbors4 with [hCount > 1]) > 0
      [ face one-of neighbors4 with [hCount > 1]
        fd 1 ]
      [ face one-of neighbors4
        fd 1 ]]]
    
  ; surface hydrogen movement
  ask hydrogens-on patches with [class = 1]
  [ setxy pxcor pycor
    face one-of neighbors4 with [class = 1]
    fd 1 ]

  ; VISUALIZATION
  ;==============================================================================
  ; recenter and jiggle
  ask hydrogens
  [ setxy pxcor pycor
    rt random 360
    fd .15 ]
  
  ; MONITORS
  ;==============================================================================
  set-current-plot "h2Count"
  set-current-plot-pen "hydrogens"
  plot hTotal
  
  tick
end 

There are 6 versions of this model.

Uploaded by When Description Download
Daniel Kim over 9 years ago Reverted to older version Download this version
Daniel Kim over 9 years ago 3d Version Download this version
Daniel Kim over 9 years ago (Default description) Download this version
Daniel Kim over 9 years ago 3d version Download this version
Daniel Kim over 9 years ago discreet movement Download this version
Daniel Kim over 9 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.