You are on page 1of 22

Hamaker2.

Acolloidalstabilitytoolkit

May2010

UliAschauer
Laboratoiredetechnologiedespoudres
EcolepolytechniquefdraledeLausanne
Lausanne,Switzerland
ChemistryDepartment
PrincetonUniversity
Princeton,USA

TableofContents
Introduction...................................................................................................................................................3
Howtocite....................................................................................................................................................3
Theinterface.................................................................................................................................................3
Menus........................................................................................................................................................4
Doubleclickfilestoopen......................................................................................................................4
Controllingtheplot...................................................................................................................................5
Theplotpane.............................................................................................................................................5
Creatingandmodifyingseries...................................................................................................................6
Theoreticalbackground.................................................................................................................................9
Interactioncalculations.............................................................................................................................9
Stabilityevaluation....................................................................................................................................9
Thebuiltinmodels......................................................................................................................................11
Dispersion(vdW).....................................................................................................................................11
Hamaker..............................................................................................................................................11
Gregory................................................................................................................................................11
Vincent................................................................................................................................................11
Effective...............................................................................................................................................12
Electrostatic.............................................................................................................................................12
HHF......................................................................................................................................................12
LSA.......................................................................................................................................................12
Steric........................................................................................................................................................13
Bergstrom............................................................................................................................................13
Writingpluginmodels................................................................................................................................14
Setupyourenvironment.........................................................................................................................14
Implementtheinteractionfunctions......................................................................................................14
Compiletheplugin..................................................................................................................................17
Contact........................................................................................................................................................18
Annex...........................................................................................................................................................19
Annex1:Exceldataformat.....................................................................................................................19
Annex2:APIdefinition............................................................................................................................20
hamaker2.Serie...................................................................................................................................20
hamaker2.Particle...............................................................................................................................20
hamaker2.Medium..............................................................................................................................20
Versionhistory............................................................................................................................................21
Version2.0.0............................................................................................................................................21
Version2.1.0............................................................................................................................................21
Version2.1.1............................................................................................................................................21
References...................................................................................................................................................22

Introduction
Hamaker2.0isaprogramforthepredictionofthecolloidalstabilityofsuspensions.Itallowsthestudyof
interactionbetweendissimilarparticlesasafunctionofanyvariableofthesystem,thereforeenabling
scientistsandengineerstounderstandwhataspectscontrolthestability(orinstability)oftheirsystems
andhowtoachievetherequireddegreeofstability.

Howtocite
AnarticlefeaturingHamaker2iscurrentlyinpress.Pleaseciteasfollows:
U.Aschauer;O.BurgosMontes;R.Moreno;P.Bowen,JournalofDispersionScienceandTechnologyin
Press
Please check back with the author (uli.aschauer@epfl.ch) for the latest status of this paper prior to
submittingyourworkwiththeabovecitation.

Theinterface
After double clicking the Hamaker2 application, you will see the main window. The Hamaker 2.0
windowisdividedintothreemainparts(Figure1).Inthetopmostpartonecontrolstheplotdisplayand
axes. Below follows the plotting pane where the graphics are displayed (and manipulated for the 3D
case).Thebottommostpartfinallyallowstocontrolthedifferentseriestodisplay.ContrarytoHamaker
1.xitisnowpossibletocontrolallaspectsofthesystemforeachoftheseries.

Figure1:TheHamaker2.0mainwindow

Menus
For the moment Hamaker 2.0 is mostly controlled trough elements in the main window and contains
onlyonemenuwiththemostessentialitems(Figure2).

Figure2:The"File"menu

Open allows reopening a previously saved .ham2 file. The same can also be achieved by
doubleclickinga.ham2file(seebelow).
Savewillsavethecurrentlyopenfiletodisk.Ifnolocationhasbeenspecified(bypreviously
savingtodiskoropeningfromdisk),apromptforthelocationwillappear.
Save as will save the currently open file to disk as well, however the location prompt will
appearinanycase,allowingtosavetoadifferentlocation(i.e.preventingapreviousversionof
thefilefrombeingoverwritten).
Exportwillsavethefileinadifferentformat,readablebyanotherapplication.Thefollowing
choicesareavailable:
o Excel:Savesthedatainatabseparatedtextformat,whichcanbereadusingMicrosoft
Excel.Thedataformatcanbefoundintheannex.
QuitwillterminateHamaker2.0.Incasethereareunsavedchangedyouwillbepromptedto
saveyourdocument.

Doubleclickfilestoopen
Inordertoopen.ham2filesbydoubleclickingthem,the.ham2filetypehastobeassociatedwith
theHamaker2.exeapplication.Thisstepisoperatingsystemdependent.

OnMicrosoftWindows:Rightclickthe.ham2fileandchooseOpenwithfromthepopup
menu.ThenbrowsefortheHamaker2.exeapplicationonyourharddriveandselecttheAlways
usetheselectedprogramtoopenthiskindoffilecheckbox.
On Mac OS X: Right click the .ham2 file and choose Get Info. Under Open With: select
Other then browse to the Hamaker2.app application on your hard drive and then click the
ChangeAllbutton.
OnLinux:Windowsystemdependent.Pleaseconsultyoursystemsmanualfordetails.

Nowyoucanopen.ham2filesbydoubleclickingthefile.

Controllingtheplot
Theplotappearancecanbecontrolledinthefollowingpanel(Figure3).

Figure3:Theplotcontrolpanel

Thefollowingoptionsareavailable:

Plottype:
o 2D:plotstheinteractionpotentialasafunctionofasinglevariable(specifiedusingthe
pulldownmenuVariable1,seebelow).
o 3D:plotstheinteractionpotentialasafunctionoftwovariables(specifiedbythetwo
pulldownmenusVariable1andVariable2respectively)asasurface.
o Potential:plotstheinteractionpotentialontheyaxis(normalizedbykT)
o Force:plotstheforce (firstderivativeofthepotentialwithrespect toseparation)on
theyaxis(normalizedbykT/nm)
Variable 1: The (primary) plot variable. In case of a 2D plot the interaction potential will be
plottedasafunctionofthisvariable.Incaseofa3Dplotthisvariablewillbethefirstcoordinate
axis.
o Range:givestherangeofthefirstvariable,whichwillbecalculated.
Variable2:Thesecondaryplotvariable.Onlyactiveincasea3Dplotisselected.
o Range:givestherangeofthesecondvariable.
Interaction axis:givestherangeoftheinteractionpotentialtobedisplayed.Use thistocap
theplotandnottodisplayverylargevalues(interactionminima).

Theplotpane
Theplotpaneiswherethecurrentlyactiveplotisdisplayed(andmodifiedinthecaseofa3Dplot).

Figure4:Exampleofa2Dand3Dplot

A2DplotshowstheinteractionpotentialasafunctionoftheselectedVariable1inthegivenrange.A
3D plot shows the interaction potential as a function or Variable 1 and Variable 2 in the selected
rangesrespectively.Inthecaseofa3Dplotthefollowingactionscanmodifythewaytheplotisviewed:

Dragleftmousebutton:Translatethegraphinthewindow
Drag right mouse button: Rotate the graph. The rotation is done using trackball mode. This
meansthatwhendragginginthecenterofthescreenthegraphwillberotatedaroundthetwo
axeslyinginthescreenplanewhereasclosetothebordersofthescreenarotationaroundthe
axisnormaltothescreenwillbeperformed.
Mousewheel:Zoominoroutofthegraph.

Creatingandmodifyingseries
Seriesarecreatedandmodifiedinthebottommostsectionofthewindow(Figure5).

Figure5:Theseriespane

ThepopupmenuSeriecontrolsonwhichoftheseriesthemodificationswillbeapplied.
ByclickingtheAddbuttonyoucanaddanewserie.Thenewseriewillbeplacedattheend
andbenamedUntitledSerieNwhereNisaconsecutivenumber.
TheDuplicatebuttoncreatesacopyofthecurrentlyactiveserie.Thenewseriewillbenames
CopyofXwhereXisthenameofthecurrentlyactiveserie.
TheDeletebuttonisonlyactivewhenmorethanoneserieexist.Itwillremovethecurrently
activeserie.

Theboxbelowcontainsallparametersaboutaserie,whichcanbechanged.

Name:thenameusedtoidentifytheserieasitwillbedisplayedintheSeries:popupmenu
andintheoutputfiles.
Visible:controlsiftheserieisdisplayedornot.
Color:Dependingonthetypeoftheplotthisparametercontrols:
o 2D:thelinecoloroftheplot
o 3D:thesurfacecoloroftheplot
Grid:hasaneffectonlyinthe3Dplot.Willchangethecolorofthelinegriddisplayedontopof
thesurface.
Dispersion:willcontrolwhichdispersionmodelisused.Foradescriptionofthebuiltinmodels
see below. Plugin models should provide their own documentation. If a model requires
additionalparameters,thesecanbeaccessedusingtheParametersbutton.
6

Electrostatic: will control which electrostatic model is used. For a description of the builtin
modelsseebelow.Pluginmodelsshouldprovidetheirowndocumentation.Ifamodelrequires
additionalparameters,thesecanbeaccessedusingtheParametersbutton.
Steric: will control which steric model is used. For a description of the builtin models see
below.Pluginmodelsshouldprovidetheirowndocumentation. Ifamodelrequiresadditional
parameters,thesecanbeaccessedusingtheParametersbutton.
Misc: gives the possibility to include interaction potentials, which are not of dispersion,
electrostaticorstericnature(i.e.magneticinteraction).Therearenobuiltinmodelsofthiskind,
onlypluginswillshowup.ClickingtheDefinebuttonwillshowthefollowingdialog(Figure
6).

Figure6:The"misc"dialog

On the left the available models are displayed. Upon selecting them they can be activated (by
checking the Active box) or deactivated and if they require additional parameters, the
AdditionalParameterscanbeclickedtosetthese.

Stability will allow setting the parameters for the stability calculation using the following
dialog(Figure7).

Figure7:Thestabilitycalculationdialog

The concentrations of particles of type 1 and 2 (for a binary system) are given in wt. %
calculatedaccordingto:

cw

m powder
mmedium

(1)

Timedefinesthe timeforwhich thesuspensionshouldremainstable.ViscousDragfinally


allows selecting a calculation model including viscous drag (not implemented yet). For more
detailonthestabilitycalculationsseefurtherdown.

The Show in plot box controls if the stability line is displayed in the plot (same color as the
seriebutdashed).
Required barrier is the value of the interaction potential barrier required to prevent
agglomerationinthespecifiedsystemforthespecifiedtime.
Constant distance is the distance to be used for interaction potential calculations in case
distanceisnotselectedasaplotvariable.
ThetemperatureofthesystemisgivenbyTemperature.
The Medium button allows defining the properties of the suspension medium using the
followingdialog(Figure8).

Figure8:Thedialogtodefinethesuspensionmedium

Densitydefinesthe densityofthefluidmedium andDielectricConstantgivesitsdielectric


constant. The table below controls the contents of the system. Species may be added and
removed using the Add and Delete buttons. Each entry has a Label which is for ease of
identification only. The Valence gives the species charge whereas the Concentration gives
themolarconcentrationofthespecies.

The Particle 1 Define and Particle 2 Define buttons allow defining the particles in the
systemusingthefollowingdialog().Pleasenotethatthebuttonforparticle2isonlyactiveifthe
HeterogeneousSystemboxisticked.

Figure9:Thedialogtodefineparticleproperties

ParameterstobegivenaretheHamakerConstant,theDensity,theParticleDiameter,the
Zeta Potential as well as the Zeta Potential Plane which is the distance from the surface
wherethezetapotentialismeasured.TheListbuttonallowsyoutoselecttheoftenhardto
findHamakerconstantsfromawebbasedrepository.

Theoreticalbackground
Interactioncalculations
Hamaker2.0calculatestheinterparticleinteractionwithintheDerjaguin,Landau,VerweyandOverbeck
(DLVO) model, adding contributions for interactions other than van der Waals and electrostatic
interaction such as steric interaction models and others. The basic equation describing the total
interparticleinteractionVinHamaker2.0isasfollows:

V VvdW Velectrostat Vsteric Vmisc

(2)

VvdW, Velectrostat and Vsteric being the contributions of the attractive van der Waals, the electrostatic and
steric interactions respectively. The sum over the Vmisc interactions allows adding a collection of other
interactions depending on the system in question. For example one could add magnetic interaction
forcesforparticlesexhibitingthisproperty.

Stabilityevaluation
Thestabilityofacolloidalsuspensionisevaluatedaccordingtothemodelpublishedby Israelachvili[1].
AparticleofdiameterdanddensitypinasuspensionattemperatureTwillhaveameanBrownian
velocitygivenby:

1 2 1 4 d
12kT

mv p v 2 kT v
d 3 p
2
2 3 2

(3)

WherekistheBoltzmannconstant.Atagivensuspensionconcentrationc(inwt.%s/l)thenumberof
particlesperunitvolumeNpisgivenasafunctionofthedensitiesoftheparticles pandthemedium m
aswellastheparticlediameterdbydividingthetotalmassofallparticlesmpTbythemassofasingle
particlemp.

c
m
100 3
Np

mp
4 d
p
3 2
m pT

(4)

For a binary system the number of particles per unit volume is given by the sum of the two particle
contributions:

N p N p ,1 N p ,2

(5)

ThenumberofparticlesalongoneedgeoftheunitvolumeisgivenbythecubicrootofNp,theinverseof
which finally gives the spacing between two particles along the edge. This is considered as the closest
interparticlespacingdatequilibrium.

Np

(6)

In order for two particles to collide, the particle has to travel the interparticle distance d which as its
meanBrownianvelocityvwillrequireatimet,thusthetimebetweencollisions.Thecollisionfrequency
fcisthengivenbytheinverseoft.

fc

1 v

t d

(7)

Whereforabinarysystemthemeanvelocityisconsidered:

1
v1 v2
2

(8)

Theprobabilitypoftwoparticleshavingakineticenergyallowingthemtoovercomeanenergybarrier
Wisgivenby

W
p exp

kT

(9)

kbeingtheBoltzmannconstantandTthetemperature.Withinatimet,tfccollisionswilloccur,which
meansthatfornoneofthesecollisionsbeingenergeticenoughtoovercomethebarrieris,aminimum
valueforWinordertoavoidenergeticcollisionsandthusagglomerationcanbecalculatedas:

1
W

ln
kT min
t fc

10

(10)

Thebuiltinmodels
Dispersion(vdW)
The user can choose from the classical unretarded interaction model by Hamaker [2] or the retarded
models by Gregory [3] and Vincent [4]. In all models AH,eff is the effective Hamaker constant for the
system,histheparticlesurfacesurfaceseparationanda1anda2aretheparticleradiirespectively.
Hamaker

Vham h

AH ,eff
6

2a1 a2
2a1 a2

h 2 2a h 2a h h 2 2a h 2a h 4a a
1
2
1
2
1 2

h 2a1 h 2a2 h
ln 2

h 2a1 h 2a2 h 4a1 a2

(11)

Gregory

Vgre h

AH ,eff
6

a1 a2
bh

1 ln 1

bh
h a1 a2

b 5.32

(12)

100 109

Vincent

AH ,eff y
u h
u h 8ba12
y

2ln
a
2 y 2u h y ln

12 u h u h y
u
h
y
C
h
u
h
y

a 1.01
2
b 0.14

Vvin h

100 109
h
x
2a1
a
y 2
a1
C a1 a2 h
u x 2 xy x

(13)

11

Effective
ThismodelimplementstheeffectivedistancedependentapproachfortheHamakerconstantbasedon
dielectricconstantsandrefractiveindices[5].TheHamakerconstantiscalculatedasgiventhefollowing
equationandthenusedintheunretardedmodel(equation11):

3h n 2p nm2
4
AH kT p m
3 p m 16 2 n 2 n 2 3 2
p m
2

3
n
2

2
2 h
m

1
n
n

p
m

c
4 2

(14)

Electrostatic
The HoggHealyFrstenau (HHF) [6] as well as the Linear Superposition Approximation (LSA) is
implemented.InallmodelstheionicstrengthIcandtheinverseDebyelengtharecalculatedas:

Ic

1
ci zi2

kT
2 0

2e I c 1000 N A

(15)

Whereciandziaretheconcentrationandvalenceofionsinsolutionrespectively,and0thedielectric
constant and the electric constant respectively, k Boltzmanns constant, T the temperature, e the
elementarychargeandNAAvogadrosnumber.
Thesurfacepotentialiscalculatedfromthemeasurablezetapotentialvia

exp d s

(16)

dsbeingthedistancefromthesurfacewherethezetapotentialismeasured.
HHF

Vhhf h

0 a1 a2
2
2
1 2 ln 1 exp h 1 2 ln 1 exp h (17)
a1 a2

LSA

Vlsa h

4 0 a1a2
1 2 exp h
a1 a2 h

12

(18)

Steric
TheclosetohardwallmodelintroducedbyBergstrom[7]isimplemented.
Bergstrom

h da :
106

2a2 a1kT 1
2

2d a h
Vber h d a h 2d a :

2
2
a1 a2 V

h 2d a :
0

(19)

The parameter da represents the thickness of the adsorbed layer, and the volume fraction of
adsorbentintheadsorbedlayer.Visthemolecularvolumeofthesolventandthesolventadsorbent
interactionparameter.

13

Writingpluginmodels
TherangeofinteractionmodelsavailableinHamaker2caneasilybeextendedbytheusertroughplugin
modules. The modules are compiled java classes, implementing a certain interface. The following is a
shortdescriptiononhowtoproceedtoimplementanewplugin.

Setupyourenvironment
YourcomputerwillneedtohaveaJDK(javadevelopmentkit)installed.Youmaydownloadthissoftware
fromhttp://java.sun.com/javase/downloads/index.jsp.

Implementtheinteractionfunctions
Lets assume you want to write a new dispersion interaction model. Our awesome new model can be
describedby

V ( h) b ah

(20)

whichcorrespondstothenotveryphysicalcaseofanlinearlyincreasingpotential.Asyoucanseewewill
needtoimplementtwoparametersaandb,whichareinternaltoourmodel.
Usingyourfavoritetexteditorcreateanewjavafile,i.e.LinearDispersion.java.Thefileisprovidedfor
yourreferenceintheplugins/plugindevelopmentdirectory.
Allpluginsdependonacertainnumberofstandardjavaclasses.Soletsstartbyimportingthese
import
import
import
import

java.util.ArrayList;
java.io.BufferedWriter;
java.io.BufferedReader;
java.io.IOException;

We then define the class, which in this case implements DispersionInteractionModel. If you were to
write another type of model, the classes would implement ElectrostaticInteractionModel,
StericInteractionModelorMiscInteractionModelrespectively.
public class LinearDispersion implements
hamaker2.models.dispersion.DispersionInteractionModel {
double a, b;
boolean needs_save;
}

Wedefinethetwoneededvariablesaandbasdoubleprecisionrealnumbersjustinsidetheclass.We
alsodefinethevariableneeds_save,whichindicatesifthevariablesaandbhavechangedandneedto
besaved;
Withinthisclassweimplementacertainnumberoffunctions:
Public LinearDispersion () {
/*default values: potential raises linearly from -5kT and becomes repulsive
at 10nm*/
a = 5/1E-8;
b= 5;
needs_save = false;
}

14


Istheconstructorandshouldinitializeallinternalvariablesyourpluginrequirestotheirdefaultvalues.

public String name() {


return "Linear Dispersion Interaction";
}

Returnsthenameoftheinteractionfunction(displayedinthecorrespondingHamaker2menuoncethe
pluginisinstalled).

public String reference() {


return "Hyper Colloids, 12(4), 150-153, (2008)";
}

Return the reference, where the model can be found. This is displayed as the user hovers over the
correspondingmenuitem.

public boolean additionalParameters() {


return true;
}

If the model has additional parameters, which can be set using the more dialog (see below), this
functionshouldreturntrue.

public void showMoreDialog() {


MoreDialog dialog = new MoreDialog();
}

Wesimplycallthemoredialog,whichisdefinedfurtherdownintheclass.

public double
return
}
public double
return
}

interactionPotential(hamaker2.Serie serie) {
b + a * serie.getDistance();
interactionForce(hamaker2.Serie serie) {
a;

These are the main workhorses of the plug in: They return the interaction potential and the force
respectively. The builtin models implement the force as analytic functions; plugins may also use a
numericalwaytoobtaintheforce,whichishoweverdiscouragedforreasonsofprecision.Seeannex2
for a list of function exported by Serie and contained objects, which are likely to be used in the
calculationofthepotentialandforce.

15


public ArrayList plotVariables() {
return new ArrayList();
}

Returnanarrayofvariablesagainstwhichtheusermayplot.Wedontwanttoplotagainsteitheraorb
sowereturnanemptyarray.

public boolean getNeedsSave() {


return needs_save;
}

Wereturnifthemodelparametershavechangedandifasaconsequencesavingisrequired(i.e.Doyou
wanttosavedialoguponclosingofHamaker2).

public void save(BufferedWriter output) {


output.write(String.valueOf(a));
output.newLine();
output.write(String.valueOf(b));
output.newLine();
}
public void load(BufferedReader input) {
a = hamaker2.Utils.StringToDouble(input.readLine());
b = hamaker2.Utils.StringToDouble(input.readLine());
}

Herewewriteandreadthemodelparameterstoorfromafile.Itisimportanttowriteandreadinthe
samesequence.

public LinearDispersion duplicate() {


LinearDispersion copy = new LinearDispersion ();
copy.a = a;
copy.b = b;
copy.needs_save = true;
return copy;
}

Toallowfordeepcopyingofseriestheduplicatefunctionisused.Herethepluginshouldcreatea
new Instance of itself and fill the values by making a deep copy of itself. Objects (if any) should be
cloned, while primitive values (double, int, boolean) may be assigned as usual using the = operator.
Theneeds_savevariableistobesettotrueasduplicatingconsistsinanoperationrequiringsavingof
data.

Thefollowingisaverysimpleimplementationofthemoredialog.Acompletedescriptionisbeyondthe
scope of this manual, however a programmer proficient with java and swing should not have any
problemswiththiscode.Pleaserefertocommentsinthecodeforbasicexplanations.

16

private class MoreDialog extends javax.swing.JDialog {


public MoreDialog() {
//initialize the dialog and components
super((java.awt.Frame)null, true);
javax.swing.JLabel a_label = new javax.swing.JLabel("A:");
javax.swing.JLabel b_label = new javax.swing.JLabel("B:");
a_field = new javax.swing.JFormattedTextField(String.valueOf(a));
b_field = new javax.swing.JFormattedTextField(String.valueOf(b));
//create the ok and cancel buttons and attach the corresponding actions
javax.swing.JButton okButton = new javax.swing.JButton("OK");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
//extract changed values
a = hamaker2.Utils.StringToDouble(a_field.getText());
b = hamaker2.Utils.StringToDouble(b_field.getText());
//close the dialog
setVisible(false);
//notify hamaker 2 that we need to save new data
needs_save = true;
}
});
javax.swing.JButton cancelButton = new javax.swing.JButton("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
//simply close the dialog
setVisible(false);
}
});
//create a simple grid layout and pack in the components
java.awt.GridLayout layout = new java.awt.GridLayout(3,2);
getContentPane().setLayout(layout);
getContentPane().add(a_label);
getContentPane().add(a_field);
getContentPane().add(b_label);
getContentPane().add(b_field);
getContentPane().add(cancelButton);
getContentPane().add(okButton);
pack();
//set the dialog to destroy when closing
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
//make it visible
setVisible(true);
}
//fields that need to be accessible in the action methods
private javax.swing.JFormattedTextField a_field;
private javax.swing.JFormattedTextField b_field;
}

Compiletheplugin
Place the LinearDispersion.java file in the plugins directory within your Hamaker2 directory. Now
open a terminal (Windows: Start Menu>Run, type cmd, Mac: Open Applications/Utilities/Terminal,
Linux: Depends on window system, most often right click and select New Terminal from menu).
NavigatetoyourHamaker2/pluginsdirectory(usingthecommandcd).Thenexecuteonwindows
C:\Program Files\Java\jdk1.6.0_11\bin\javac" -classpath plugin
development\classes LinearDispersion.java

oronmac/linux
javac classpath plugin development/classes LinearDispersion.java

Ifyourcodecontainsnoerrors,youshouldgetafileLinearDispersion.classinthepluginsdirectoryand
uponstartingofHamaker2youshouldseeyourbrandnewplugininthecorrespondingmenu.

17

Contact
Please contact the author at uli.aschauer@epfl.ch or aschauer@princeton.edu in case you have
questions or comments. If emails remain unanswered or bounce (I may have moved to a new post)
pleaseaddressemailstopaul.bowen@epfl.ch.

18

Annex
Annex1:Exceldataformat
For a 2D plot the data will be saved as follows (vi is the ith variable value and Pij is the interaction
potentialoftheithvariablevalueforthejthserie):
VariableName
v1
v2

vn

NameSeries1
P11
P21

Pn1

NameSeries2
P12
P22

Pn2

Thismeansthefirstcolumncontainstheinterparticledistance(surfacetosurface),whicharethexaxis
values for all series. The following columns contain the interaction potentials (in units of kT) for the
differentseries,onepercolumn.
Fora3Dplotthedataissavedasfollows(v1iistheithvariablevalueofvariable1,v2j isthejthvariable
value of variable 2 and Pij is the potential for the ith and jth variable value for variable 1 and 2
respectively):
Series1Name

Variable2Name

Series2Name

v21
v22

v2m

Variable1Name
v11
v12

P11 P21
P12 P22

P1m P2m

v1n
Pn1
Pn2

Pnm

This means that there is one block (bold border) per series. In the block is the top left cell the series
name.Thenfollowsinthe3rdlineand2ndcolumnthevariablevalueswiththeirrespectivenamesinline2
andcolumn1respectively.Theinsideofthematrixthencontainsthevaluesforeachvariablevaluepair.

19

Annex2:APIdefinition
hamaker2.Serie
//return the interparticle distance in m
public double getDistance() ;
//return the temperature in K
public double getTemperature();
//returns if the system contains two types of particles
public boolean getHeterogeneous();
//return the particle 1 or 2 respectively
public hamaker2.Particle getParticle1();
public hamaker2.Particle getParticle2();
//return the medium
public hamaker2. Medium getMedium();

hamaker2.Particle
//returns the hamaker constant in J
public double getHamakerConstant();
//returns the density in kg/m3
public double getDensity();
//returns the particle diameter or radius in m
public double getDiameter();
public double getRadius();
//returns the zeta potential in V
public double getZetaPotential();
//returns the origin of the electrostatic interaction wrt the surface in m
public double getElectrostaticOrigin();

hamaker2.Medium
//return the density in kg/m3
public double getDensity();
//return the dielectric constant
public double getDielectricConstant();
//returns the number of species in the electrolyte
public int getNumElectrolyteComponents();
//returns the label, valence and concentration of electrolyte component i
//according to java standard (i=0..n-1) where n = getNumElectrolyteComponents();
public String getElectrolyteComponentLabel(int i);
public double getElectrolyteComponentValence(int i);
public double getElectrolyteComponentConcentration(int i);

20

Versionhistory
Version2.0.0
Initialrelease

Version2.1.0
Bugfixes:

Fixed a shallowcopy bug in models with More dialogs, which resulted in parameters to
changeforallseriessimultaneouslywhenchangingoneserie.

Fixedabugintheformattingoftherequiredbarrierwhenchangingstabilityparameters.

Newfeatures:

Addedforceplotting

AddedtheEffectiveDispersionmodel,whichcalculatesHamakerconstantsontheflybasedon
dielectricconstantsandrefractiveindices.

Version2.1.1
BugFixes:

Electrostatic,StericandMiscPluginsnothandledcorrectly.

PluginAPIwasmissingclassesforparticleandmedium.

21

References
[1]
[2]
[3]
[4]
[5]
[6]
[7]

J.N.Israelachvili,IntermolecularandSurfaceForces.AcademicPress:SanDiego,1991.
H.C.Hamaker,Physica1937,4,10581072.
J.Gregory,JournalofColloidandInterfaceScience1981,83,(1),138145.
B.Vincent,JournalofColloidandInterfaceScience1973,42,(2),270285.
W.B.Russel;D.A.Saville;W.R.Schowalter,ColloidalDispersions.CambridgePress:Cambridge,
U.K.,1985.
R. Hogg; T. W. Healy; D. W. Fuerstenau, Transactions of the Faraday Society 1966, 62, (522P),
16381651.
L.Bergstrom;C.H.Schilling;I.A.Aksay,JournaloftheAmericanCeramicSociety1992,75,(12),
33053314.

22

You might also like