Energy Diffusion through a Crystal Lattice
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
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.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.