Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
|''Type:''|file|
|''URL:''|http://mptw.tiddlyspot.com/|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
|''Type:''|file|
|''URL:''|http://tiddlytools.com/#ImagePathPlugin|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
|''Type:''|file|
|''URL:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
|''Type:''|file|
|''URL:''|http://www.tiddlytools.com|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
|''Type:''|file|
|''URL:''|http://www.tiddlytools.com/#MatchTagsPluginInfo|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
|''Type:''|file|
|''URL:''|http://www.tiddlytools.com/#SinglePageModePlugin|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
|''Type:''|file|
|''URL:''|http://www.tiddlytools.com/#ToggleRightSidebar|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
We have just had a paper, concerning climate change and global modelling of the multiscale problem of industrial emissions, accepted to appear (Spring 2007) in the academic journal Chinese Journal of Population, Resources and Environment.
We will be running workshops on behalf of our partner company ~GridCore, for their industrial customer companies in the engineering sector, at the SIMDI '07 conference and workshop event in May, on the topics of optimization, data mining and materials modelling.
Images from our research were presented at the ~SMART-ART exhibition vernissage at Innovatum, Trollh&auml;ttan.
~SMART-ART exhibition vernissage at Innovatum, Trollh&auml;ttan
Research presentation given to our department at University West.
Research meeting at Eka Chemicals AB (Rollsbo, Sweden) - presentation of work by our Masters thesis student Nicolce Murgovski
Professor Paul W. Ayers, our research collaborator from ~McMaster University, Ontario, Canada, visited us in University West. Drafts of two research papers were created during his enjoyable and productive visit. 
Our student, Nikolce Murgosvki, has completed a very successful thesis project in collaboration with Eka Chemicals AB, concerned with particle-swarm optimization (PSO) of nonlinear multivariable production process models for paper pulp. Other students have successfully completed thesis projects with direct commercial interest are Jordanka Kovaceva (Findwise AB) [optimal graph visualization of search engine results], and for our project partner company ~GridCore AB, Michal Rusin, Muris Borovac, Michael Freeman, Mikael Mellgren and Kumar Prasantha Sannikommu.[projects in the areas of Grid interoperability, parallel filesystems, portal test integration and ~GPUs for scientific computing]. The theses will be publicly archived [[here| http://sofia.hv.se/F/-?func=find-c&ccl_term=wse=datavetenskap+not+%28wse=maskinteknik+or+wse=lantm?teriteknik+or+wse=elektroteknik+or+wse=robottekniskt+or+wse=milj?vetenskap+or+programvarutekni*%29+and+wld=htud]] and [[here|http://sofia.hv.se/F/-?func=find-c&ccl_term=wse=programvarutekni*+and+wld=htud]].
[[Swedish Production Symposium '07|http://alf6.ppd.chalmers.se/Home.html]], Volvo Torslanda, Goteborg.
'Molecular dynamics simulation of nanocolloidal amorphous silica particles -Part I: Interparticle mean forces', S. Jenkins, S.R. Kirk, M. Persson and J. Carlen, presented at ~CCP2007 Conference on Computational Physics, Brussels
'Molecular dynamics simulation of nanocolloidal amorphous silica particles -Part II: Potential of mean forces', S. Jenkins, S.R. Kirk, M. Persson and J. Carlen, presented at ~CCP2007 Conference on Computational Physics, Brussels
'Molecular dynamics simulation of nanocolloidal amorphous silica particles -Part III: Structure of double layer', S. Jenkins, S.R. Kirk, M. Persson and J. Carlen, presented at ~CCP2007 Conference on Computational Physics, Brussels
'Molecular dynamics simulation of nanocolloidal amorphous silica particles -Part III: Structure of double layer', S. Jenkins, S.R. Kirk, M. Persson and J. Carlen, presented at ~CCP2007 Conference on Computational Physics, Brussels
~CCP2007 Conference on Computational Physics, Brussels, Belgium.
~SMART-ART exhibition vernissage at Volvo Aero, Trollh&auml;ttan
Our work has been presented as part of [[University West's contribution|http://trollhattan.forskarfredag.se/]] to [[Researcher's Night|http://ec.europa.eu/research/researchersineurope/index_en.htm]], an ~EU-wide presentation of science research to the public, through our involvement in the [[SMART-ART|http://www.ptc.hv.se/extra/pod/?id=1088&module_instance=1&action=pod_show]] exhibition. This work has also been featured an exhibition at the main industrial plant of [[Volvo Aero|http://www.volvo.com/volvoaero/global/en-gb/]] in Trollhättan.
 We will be submitting images generated from our research through the [[SMART-ART|http://www.ptc.hv.se/extra/pod/?id=1088&module_instance=1&action=pod_show]] initiative at University West to a competition run by Swedish popular science magazine [[Forskning & Framsteg|http://www.fof.se/]].
We presented a summary of our research to the EI institution within University West.
Details have been finalized for presentation of our research in a seminar at [[School of Biomedical Sciences, University of Ulster, UK|http://www.science.ulster.ac.uk/biomed/research/]]. The invitation to this internationally-recognised grade 5* (highest in the UK system) research institution was extended in September 2007
 Invited [[research seminar and presentation|http://cumulus.ei.hv.se/~srk/research/beacon/UlsterDec2007.pdf]] given at the [[Centre for Molecular Biosciences, University of Ulster, UK|http://www.science.ulster.ac.uk/cmb/]].
''This project has been accepted for funding by the [[KK Stiftelsen (Knowledge Foundation)|http://www.kks.se/]] !''
We have recently visited the [[Northern Ireland Technology Centre|http://www.nitc.qub.ac.uk/]] at [[Queen's University|http://www.qub.ac.uk/]], Belfast, which has an internationally-recognised grade 5* (highest in the UK system) research grading for its Engineering Department. The NITC is a centre for technology transfer and co-production with ~SMEs and larger industrial companies. During the enjoyable visit we discussed collaborative research opportunities with the [[Production Technology Centre|http://www.ptc.hv.se/]] at [[University West|http://www.hv.se/]], along with student exchange initiatives via [[ERASMUS|http://www.esn.org/]].
Research presentation at Production Technology Centre, Trollh&auml;ttan, Sweden
Research presentation at Simulation and Data Intensive Fair: ~SIMDI08, Gothenburg, Sweden
Simulation and Data Intensive Fair: ~SIMDI08, Gothenburg, Sweden (in collaboration with Gridcore AB)
Research presentation by Zareen Abbas at Production Technology Centre, Trollh&auml;ttan, Sweden
Dr. Steven R. Kirk and Dr. Samantha Jenkins made a collaborative research visit to the [[research group|http://www.seas.harvard.edu/weitzlab/]] of Prof. David A. Weitz, Department of Physics, School of Engineering and Applied Sciences, Harvard University, Cambridge, USA. There we worked on collaborative projects with Prof. Weitz and Peter J. Lu, another member of the Weitz Group.
Dr. Samantha Jenkins and Dr. Steven R. Kirk made a collaborative research visit to Prof. Paul W. Ayers, Department of Chemistry, ~McMaster University, Ontario, Canada.
Invited research presentation 'BEACON -an Industrial partnership', at Chemistry Department, ~McMaster University, Ontario, Canada.
~SMT22 International Conference on Surface Modification Technologies, Trollh&auml;ttan, Sweden.
Research presentation 'Surface Tension of liquid Ni', S. Jenkins and S.R. Kirk , ~SMT22 International Conference on Surface Modification Technologies,  Trollh&auml;ttan, Sweden, available [[here|http://www.slideshare.net/sjenkins/surface-tension-in-liquid-nickel-presentation]]
Research presentation 'Viscosity of liquid Nickel',  S.R. Kirk  and S. Jenkins, ~SMT22 International Conference on Surface Modification Technologies,  Trollh&auml;ttan, Sweden, available [[here|http://www.slideshare.net/srkirk/viscosity-of-liquid-nickel-presentation]]
IBM Cell workshop, Gothenburg, Sweden (in association with Gridcore AB).
Presentation of research to division at University West, Trollh&auml;ttan, Sweden
Research presentation and planning meeting at Eka Chemicals AB, Bohus, Sweden. 
''Our research has been prominently featured in the worldwide Eka Chemicals AB company magazine, 'Eka Echo'  !''
We have given a presentation of our research to the research group of [[Aleksandar Matic|https://www.chalmers.se/ap/EN/research/condensed-matter-physics/people/aleksandar-matic]] in the [[Condensed Matter Physics Group|https://www.chalmers.se/ap/EN/research/condensed-matter-physics]], Chalmers University, Gothenburg, Sweden.
We have presented our research in a mini-symposium with the research group of [[Professor Magnus Nyden|http://www.chalmers.se/chem/SV/amnesomraden/teknisk-ytkemi/personal/forskare/magnus-nyden]], Chalmers University, Gothenburg, Sweden.
Our recent research paper describing our simulation work [["Molecular dynamics simulation of nanocolloidal amorphous silica particles: Part III," published in The Journal of Chemical Physics 130, 134702 (2009)|http://dx.doi.org/10.1063/1.3102957]] (see Publications section for preprint, or request by email) has been selected for the [[April 13, 2009 issue|http://www.vjnano.org/dbt/dbt.jsp?KEY=VIRT01&Volume=19&Issue=15]] of [[Virtual Journal of Nanoscale Science & Technology|http://www.vjnano.org]].  The Virtual Journal, which is published by the American Institute of Physics and the American Physical Society in cooperation with numerous other societies and publishers (including journals such as Nature and Science), is an edited compilation of links to articles from participating publishers, covering a focused area of frontier research.  
We have taken participated in, and sat on the scientific committee for, the [[Scientific and Data Intensive 2009 conference| http://www.simdi.se/]], 6th and 7th May 2009 at Chalmer University, Gothenburg, co-organised with our research partner company Gridcore AB. This was a very interesting event, placing scientific researchers alongside representatives from industry (including speakers from Microsoft and AMD), and providing tutorial sessions in simulation software and HPC hardware. Our talks can be downloaded [[here|./files/SIMDI09Presentation.pdf]] (S.Jenkins & S.R.Kirk) and [[here|./files/SIMDI-Cement.pdf]] (Zareen Abbas).  
''[[Dr. Peter Lu|http://www.peterlu.org]], our research collaborator from Harvard University, USA will be making a research visit to our group at University West in early June, and will give a pair of public talks on 'Early technological advances in ancient Chinese art' and 'Modern math in medieval Islamic architecture' at the [[Innovatum Science Centre|http://www.innovatum.se/]] 1830-2030 Jun 9. Further details can be found [[here|./files/PeterLu.pdf]]. This is a very exciting event, and places are limited. Please contact Carolina Barros (contact details are in the linked PDF file).''
SRK presented a popular science talk, [['How Gamers Turned Supercomputing Green'|./files/GreenComputing.pdf]]" of the increasing use of ~GPUs (Graphics Processing Units) in ~High-Performance Computing applications, at the [[IT University|http://www.ituniv.se/]], part of [[Gothenburg University|http://www.gu.se/]], Gothenburg, Sweden.
----
SJ has presented an invited seminar describing our research, and our philosophy for co-production with industry, at [[University of Ontario Institute of Technology|http://www.uoit.ca]].
----
SJ has presented an invited talk on our research at the [[92nd Canadian Chemistry Conference|htpp://www.csc2009.ca]] in Hamilton, Ontario, Canada.
----
<<icap "[<img[Visiting research collaborator Dr. Peter J. Lu
(with permission, http://www.peterlu.org)|images/peterlu_web.jpg]]">>@@clear(left):clear(right):display(block):@@ We were very pleased to host our research collaborator [[Dr. Peter J. Lu|http://www.peterlu.org]] from Harvard University, USA for a research visit at University West. During his visit, we carried out and planned research work. We were also very pleased to be able to arrange for Dr. Lu to give a number of presentations of his research (both on his own research and on our overlapping and collaborative research interests).
In collaboration with the [[Innovatum Science Centre|http://www.kulturvast.se/kulturvast_templates/Kultur_Micro_StartPage.aspx?id=50355]], Trollh&auml;ttan, Dr. Lu has given two fascinating and very well attended talks on:
* ''Early technological advances in ancient Chinese art''
* ''Modern math in medieval Islamic architecture''
Details of these talks are listed [[here|files/PeterLu.pdf]], and further details can be found on [[Peter Lu's website|http://www.peterlu.org]].

Additionally, Dr. Lu has, in collaboration with the BEACON Partnership, given academic talks on topics of mutual research interest.
* ''Orders-of-magnitude performance increases in ~GPU-accelerated correlation of images from the International Space Station'', (University West, 09/06/10)
* [[Gelation of Particles with Short-ranged Attraction|http://www.physics.gu.se/english/research/platforms/nanoparticles/seminars/]], (Gothenburg University, 09/06/15)
----
University West has published a [[news item|HVWebArticleGels.html]] ([[Swedish version|http://www.hv.se/extra/news/?module_instance=1&id=6244]] ) outlining our collaborative research with [[Dr. Peter J. Lu|http://www.peterlu.org]], from the  [[research group of Prof. David Weitz|http://www.seas.harvard.edu/projects/weitzlab/people.html]],Harvard University, USA.
----
SJ presented our research in a [[seminar|http://www.seas.harvard.edu/projects/weitzlab/Squishy_Physics/Archive_of_Speakers.html]] at Harvard University, USA.<<icap "[>img[Dr. Samantha Jenkins, presenting research performed in the
BEACON project, in the Department of Applied Physics, Harvard University|images/BeaconHarvard090715.JPG]]">>@@clear(left):clear(right):display(block):@@
----
<<icap "[<img[Our presentation stand: demonstrations of our research with
industry, and a open-source webcam game, which we invited
visitors to download and customize themselves.|images/RF09_05.jpg]]">><<icap "[>img[Dr. Samantha Jenkins explaining concepts in nanotechnology 
to a group of high-school teachers.<br>
|images/RF09_03.jpg]]">>@@clear(left):clear(right):display(block):@@<<icap "[<img[Dr. Samantha Jenkins describing our industrially-oriented
high-performance computing work to high school students.<br>
|images/RF09_01.jpg]]">><<icap "[>img[Dr. Steven Kirk, demonstrating movies produced from our
simulation work, and one of our GPU research machines,
with hardware kindly donated by AMD Sweden.|images/RF09_15.jpg]]">>@@clear(left):clear(right):display(block):@@''We have presented our work to students, teachers and the general public as part of the [[Researcher's Night|http://ec.europa.eu/research/researchersineurope/events/researchersnight09/index_en.htm]] initiative, a Europe-wide festival of science organised by the European Union. University West organised a very well attended program of events for this day. We are grateful to [[AMD Sweden|http://www.amd.com/se/Pages/AMDHomePage.aspx]] for hardware and software donations, and to [[KK Stiftelsen|http://www.kks.se]] for supporting this event.''

----
An [[article|http://www.hv.se/extra/measurepoint/index.cgi?module_instance=3&name=V%E4stpunkt%20nr%202/2009&url=/dynamaster/file_archive/091123/ab0f090851cf0ba390b43e526cf02b19/V%e4stpunkt%20f%f6r%20webb.pdf]] (pages 18 and 19)  featuring SJ and our research within the BEACON project has been published in the University West Magazine ~VastPunkt. 
We have initiated a new research collaboration in multicore and GPU research with the research group of [[Håkan Grahn|http://www.ide.bth.se/~hgr/]], Blekinge Institute of Technology, Sweden.
We have joined the developer community to develop [[GPU|http://en.wikipedia.org/wiki/Graphics_processing_unit]] accelerated features for the massively-parallel molecular dynamics simulation code [[LAMMPS|http://lammps.sandia.gov/]].
Dr. Samantha Jenkins gave a presentation on nanotechnology to science students from Vanersborg Gymnasium, at the Innovatum Science Centre. Our thanks go to Carolina Barros and colleagues for making this possible, and to Eka Chemicals AB for kindly supplying silica nanoparticles for the demonstration.

<<icap "[<img[Dr. Samantha Jenkins demonstrating the aggregation of silica nanoparticles.|images/Innovatum091210a.png]]">><<icap "[>img[The silica nanoparticles are supplied in a clear solution that looks, and flows, like water. Adding
a little table salt makes the nanoparticles aggregate into a gel, as shown here.
This gel is solid enough to support a table fork standing vertically after a few minutes.|images/Innovatum091210b.png]]">>@@clear(left):clear(right):display(block):@@
The BEACON project has begun a major initiative to collaboratively develop teaching material in the areas of parallel, concurrent, distributed, GPU and multicore computing. The goal of this initiative is to update the educational programs and courses in Computer Science and Engineering  at University West by building a collection of 'drop-in' course modules, each encompassing an aspect of the parallel technologies mentioned above. 

The technologies mentioned above are already, and will continue to be, in extensive use in business and industry, and the members of the BEACON project feel that a powerful approach to increasing awareness, knowledge and skills in these areas is to incorporate concepts of concurrency and parallel computing into educational curricula at all levels. To this end, the ~ManyHands initiative will collaboratively build, refine and deploy a range of different sizes of continually tested and refined pedagogic resources 

This work will be carried using a newly-created website [[ManyHands|http://cumulus.ei.hv.se/~srk/manyhands/mediawiki/index.php]], using the same software as that used to run the popular Internet reference site [[Wikipedia|http://www.wikipedia.org]]. The development work will be carried out by an invited panel of academics, while also incorporating input from research and industry. Only invited users will be able to contribute and edit: however, the website is currently freely viewable by anyone.
"Nanotechology and its applications in Biology, Chemistry, Physics, Computer Science and industry and medicine", Tougaloo College, Jackson, Mississippi, USA
"Applications of Computational Chemistry to Cellulose", United States Department of Agriculture, New Orleans, Louisiana, USA.
"Computational Chemistry and the Chemical Industry", Summer Institute Lecture Series, Jackson State University, Jackson, Mississippi, USA
"Multidisciplinary research for Industry", International Symposium,  Department of Chemistry, ~McMaster University, Ontario, Canada.
We were greatly honoured to be visited by the ~Vice-Governor of Hunan Province at the Department of Chemistry and Chemical Engineering, Hunan Normal University. We presented the ~Vice-Governor with a picture generated during from our research investigations, and the Hunan TV channel carried a report on the visit.
"Towards a Dynamical Theory of Atoms in Molecules", Department of Physics, University of Salford, Salford, UK.
"Controlling the aggregation of silica nanoparticles" , International workshop on Frontiers of Silica Research, March 15-16, Chalmers University, Gothenburg, Sweden.
In partnership with Eka Chemicals AB, Gothenburg, Sweden.
We held a meeting with Michael Persson and Joachim Carlen from Eka Chemicals AB to discuss our current research
<<tiddler [[Electronic Stress as a Guiding Force for Chemical Bonding]]>>
<<tiddler [[Spanning QTAIM topology phase diagrams of water isomers W4, W5 and W6]]>>
[<img[images/sumo.gif]]Our fruitful research collaboration with Eka Chemicals AB and Professor Magnus Nyden of Chalmers University has developed into a full collaboration with the [[SUMO|http://www.chalmers.se/chem/sumo-en]] project exploring biomaterials !
<<tiddler [[Spanning Set of Silica Cluster Isomer Topologies from QTAIM]]>>
<<tiddler [[The mechanics of charge-shift bonds: A perspective from the electronic stress tensor]]>>
<<tiddler [[Pointing the way to the products? Comparison of the stress tensor and the second-derivative tensor of the electron density]]>>
"Spanning QTAIM Topology Phase Diagrams of Isomer Sets", ~ISTCP-VII, Waseda University, Tokyo, Japan.
"Spanning QTAIM Topology Phase Diagrams of Water Isomer Sets", [[International Workshop on Dynamics and Structure of Water: From Gas Phase Clusters to Condensed Phase|http://www.iams.sinica.edu.tw/ASWaterWorkshop2011/]], Academia Sinica, Taipei, Taiwan.
"Open-source educational software for Computational Chemistry", 11th National Conference for Chemistry Teaching, Changsha, Hunan, China
"Spanning QTAIM Topology Phase Diagrams of Isomer Sets", ~ICTC11, South China Normal University, Guangzhou, China ([[website|http://www.hongcam.com.cn/ICTC11/hyrc.html]]).
"AIMPAC2 -A New Open-source Project for Nanoscience", ~ICTC11, South China Normal University, Guangzhou, China ([[website|http://www.hongcam.com.cn/ICTC11/hyrc.html]]).
"Quantum Chemical Topology for the Energy and Materials Fields", Department of Chemical Sciences, National Natural Science Foundation of China, Beijing, China.
"Quantum Chemical Topology for the Energy and Materials Fields", College of Chemistry and Molecular Engineering, Peking University, Beijing, China.
"Current Developments in the ~Open-Source AIMPAC2 code for Quantum Chemistry", College of Chemistry and Molecular Engineering, Peking University, Beijing, China.
"Organizing your academic research and writing with Mendeley", Hunan Normal University, Changsha, China.
"Molecular dynamics simulations of the aggregation of nanocolloidal amorphous silica monomers and dimers",The Second SREE Conference on Chemical Engineering (CCE 2011), Regency Hotel, Macau.
“New Developments in QTAIM”, Institute of Theoretical and Computational Chemistry, Key Lab of Mesoscopic Chemistry of MOE, School of Chemistry and Chemical Engineering, Nanjing University, Nanjing, China
Committee member for Dissertation for Doctor of Science: Yang Guo, "The linear scaling algorithms for localized molecular orbitals in large systems"
Supervised by Professor Shuhua Li
Institute of Theoretical and Computational Chemistry, Key Lab of Mesoscopic Chemistry of MOE, School of Chemistry and Chemical Engineering, Nanjing University, Nanjing, China
“The AIMPAC2 code for quantum chemistry”, Institute of Theoretical and Computational Chemistry, Key Lab of Mesoscopic Chemistry of MOE, School of Chemistry and Chemical Engineering, Nanjing University, Nanjing, China
“QTAIM and Theoretical Chemistry”, Department of Chemistry, Beijing Normal University, Beijing, China.
“The AIMPAC2 code for quantum chemistry at Hunan Normal University”, Department of Chemistry, Beijing Normal University, Beijing, China
We have used QTAIM in this first exploration of excited state proton transfer phenomena and find that QTAIM is able to provide new insights into the changes in bonding character during the process of ESIPT. This is possible as we are able to quantify the changes in the bond stability, covalent and metallic character of the bonding on a bond-by-bond basis throughout the ESIPT path. QTAIM seems to be able predict the onset of the TS by the occurrence of a drastic change in the QTAIM parameters like metallicity ξ(rb) and ellipticity e and abrupt changes in the bonding character |λ1|/λ3. The process of excitation of the OHBA molecule induces metallic character in the ~O14-C4 BCP relative to the ground state and increases the metallicity in the ~O12-C11 BCP; both increase by orders of magnitude. In addition, excitation of the OHBA molecule reduces the bond ellipticities in the OH and OC ~BCPs, thus providing evidence of facilitating the motion of the H15 nuclei. In addition, we can predict the direction that the H15 atom will move by comparison of the actual direction that the H15 atom moved with the ~O14-H15 and ~O12--H15 BCP e2 eigenvectors of the stress tensor and suggests that this could be a useful area of further investigation. 

<<tiddler [[Exploring Hydrogen Bond in the Excited State Leading towards Intra-molecular Proton Transfer: Detailed Analysis of the Structure and Charge Density Topology along the Reaction Path using QTAIM]]>>
''We organised and hosted an international research workshop in theoretical and computational chemistry ([[website|http://www.beaconresearch.org/TCCWorkshop2012/index.html]]) in Changsha on June 8-9, 2012.''
We presented invited talks at [[QSCP-XVII|http://www.qscp.fi]] in Turku, Finland ([[conference program|http://www.qscp17.fi/images/QSCP-PGM.pdf]]).
''We are now supported by the National Natural Science Foundation of China.''
Professor Samantha Jenkins and Professor Steven Kirk were invited to attend the Hunan Provincial Government New Year celebrations, representing both the Hunan Foreign Experts and Hunan Normal University ([[photos and Chinese text|http://news.hunnu.edu.cn/index.php/sdywmore/10356.html]]).
Our recent paper [[Quantum Topology Phase Diagrams for Molecules, Clusters, and Solids]] has now also been [[highlighted on www.chemistryviews.org|http://www.chemistryviews.org/details/ezine/4976821/Is_Graphene_Really_a_2D_Material.html]] (English).
''Following our previous very successful research workshop [[TCC2012|http://www.beaconresearch.org/TCCWorkshop2012/index.html]] last year, we organised and hosted another very successful international research workshop in theoretical and computational chemistry ([[TCC2013|http://www.beaconresearch.org/TCCWorkshop2013/index.html]])  in Changsha on June 14-16, 2013.''
We were invited to publish a 'popular science' story (in Chinese) on our recent publication [[Quantum Topology Phase Diagrams for Molecules, Clusters, and Solids]] for the [[Materials Views China|http://www.materialsviewschina.com/2013/06/topological-quantum-materials/]] website, aimed at the Chinese materials science community. Our students Xu Tianlv and Julio Roman Maza Villegas kindly provided the Chinese translation and the artwork, respectively.
We presented invited talks on our work at the 6th Worldwide Chinese Theoretical and Computational Chemistry Conference, June 24-28 2013, Tamkang University, Taipei, Taiwan ([[abstract book|files/6thWCTCC.pdf]]).
'Recent Progress in Quantum Geometry', at the 6th Worldwide Chinese Theoretical and Computational Chemistry Conference, June 24-28 2013, Tamkang University, Taipei, Taiwan ([[abstract book|files/6thWCTCC.pdf]]).
'Overview of, and recent developments in, the AIMPAC2 code for Quantum Chemical Analysis', at the 6th Worldwide Chinese Theoretical and Computational Chemistry Conference, June 24-28 2013, Tamkang University, Taipei, Taiwan ([[abstract book|files/6thWCTCC.pdf]]). 
Invited talk and poster at ~ISTCP-VIII (Budapest, Hungary) ([[website|http://coulson.chem.elte.hu/istcp8/]], [[list of abstracts (37Mb)|http://coulson.chem.elte.hu/istcp8/istcp8_abstract_book.pdf]]).
We were deeply honoured for [[Professor Samantha Jenkins|http://en.safea.gov.cn/2013-09/30/content_17004171.htm]] to receive a 2013 [[Chinese Government Friendship Award|http://en.safea.gov.cn/2013-09/26/content_16997013.htm]] ([[Wikipedia|http://en.wikipedia.org/wiki/Friendship_Award_%28China%29]]) (in Chinese:  中华人民共和国友谊奖 ) from the [[State Administration of Foreign Experts Affairs|http://en.safea.gov.cn/]] of the People's Republic of China.
<<tiddler SJChinaGovernmentFriendshipAwardPhotos>>
Our student Xiao Chenxia was awarded the ’湖南师范大学优秀研究生干部‘ (Hunan Normal University Outstanding Graduate Cadre) award.
Invited talk and 3 posters at QSCP XVIII  International Workshop on Quantum systems in Chemistry, Physics and Biology (Paraty, Brazil) ([[website|http://www.qscp2013.iq.ufrj.br/index.php]]).
We presented 2 research talks at the Meeting on Methods for Modeling Molecules and Materials, ~McMaster University, December 17-18, 2013 ([[program|files/2013_M4_Schedule.pdf]])
We were pleased to welcome Alastair Morgan, the ~Consul-General at the British Consulate in Guangzhou, when he visited our lab. ([[British Consulate Guangzhou Weibo page (Chinese)|http://weibo.com/bcgguangzou]], [[pictures and Chinese text|http://huati.weibo.com/k/Science+is+GREAT?from=501]]) 
Congratulations to BEACON group member Xu Tianl&uuml;, who graduated with his Masters degree! (click for larger versions)
[img[images/XT_Masters_1_small.jpg][images/XT_Masters_1.jpg]] [img[images/SJXTSRK_cropped_small.jpg][images/SJXTSRK_cropped.jpg]] [img[images/XT_Masters_2_small.jpg][images/XT_Masters_2.jpg]] 
{{centeredTable{
|borderless|k
| [img[Group Photo|images/2014group2_small.jpg][images/DSC00490.jpg]] |
| Dong Jiajun, Julio Roman Maza Villegas,  Fernando Antonio Figueredo Negrete, Xu Yuning, |
| Xiao Chenxia, Prof. Samantha Jenkins, Prof. Steven R. Kirk,  visiting ~PhD students James Farrell |
| (supervisor Prof. David Wales, Dept. of Chemistry, Cambridge University, UK), |
| Anmol Kumar (supervisor Prof. Shridhar Gadre, IIT Kanpur, India), Xu Tianl&uuml; |
}}}
<html>
<div class="csl-bib-body">
  <div class="csl-entry">
    <div>S. Jenkins, Z. Liu, and S. R. Kirk, “A bond, ring and cage resolved Poincaré–Hopf relationship for isomerisation reaction pathways,” <i>Molecular Physics</i> <b>111</b>(20), 3104–3116 (2013). </div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1080%2F00268976.2013.771798&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=A%20bond%2C%20ring%20and%20cage%20resolved%20Poincar%C3%A9%E2%80%93Hopf%20relationship%20for%20isomerisation%20reaction%20pathways&amp;rft.jtitle=Molecular%20Physics&amp;rft.volume=111&amp;rft.issue=20&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Zeyu%20Liu&amp;rft.au=Steven%20R.%20Kirk&amp;rft.date=2013&amp;rft.pages=3104-3116&amp;rft.spage=3104&amp;rft.epage=3116&amp;rft.issn=0026-8976"></span></div></html>DOI: [[10.1080/00268976.2013.771798|http://www.tandfonline.com/doi/abs/10.1080/00268976.2013.771798]]. ([[eprint|http://www.tandfonline.com/eprint/wFZevZCkFhzPjz2JF8Yw/full]])
We are developing, along with a group of collaborators, an updated and greatly extended version of the original research code AIMPAC for performing analysis based on QTAIM (Quantum Theory of Atoms in Molecules) and QCT (Quantum Chemical Topology).

[[AIMPAC2 website|http://www.beaconresearch.org/AIMPAC2/index.html]]
<html>
<div class="csl-bib-body">
<div class="csl-entry">Ian Morrison, Samantha Jenkins, D.K. Ross, and J.-C. Li, “Ab Initio Investigations of the Dynamical Properties of Ice”, In <i>Proceedings of the High-Performance Computing Initiative (HPCI) Conference</i>, edited by R.J. Allan, M.F. Guest, A.D. Simpson, D.S. Henty, and D.A. Nicole. Manchester, UK: Kluwer Academic/Plenum Publishers, 1998.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=urn%3Aisbn%3A0-306-46034-3&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=Ab%20Initio%20investigations%20of%20the%20dynamical%20properties%20of%20ice&amp;rft.btitle=Proceedings%20of%20the%20High-Performance%20Computing%20Initiative%20(HPCI)%20Conference&amp;rft.place=Manchester%2C%20UK&amp;rft.publisher=Kluwer%20Academic%2FPlenum%20Publishers&amp;rft.aufirst=Ian&amp;rft.aulast=Morrison&amp;rft.au=Ian%20Morrison&amp;rft.au=Samantha%20Jenkins&amp;rft.au=D.K.%20Ross&amp;rft.au=J.-C.%20Li&amp;rft.au=R.J.%20Allan&amp;rft.au=M.F.%20Guest&amp;rft.au=A.D.%20Simpson&amp;rft.au=D.S.%20Henty&amp;rft.au=D.A.%20Nicole&amp;rft.date=1998&amp;rft.isbn=0-306-46034-3"/></div></html>
<html>
<div class="csl-bib-body">
  <div class="csl-entry">Cote, A.S., I. Morrison, X. Cui, S. Jenkins, and D.K. Ross. “Ab-initio Density-functional Lattice-dynamics Studies of Ice.” <i>Canadian Journal of Physics</i> 81 (January 1, 2003): 115–122(8).</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1139%2Fp03-003&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Ab-initio%20density-functional%20lattice-dynamics%20studies%20of%20ice&amp;rft.jtitle=Canadian%20Journal%20of%20Physics&amp;rft.volume=81&amp;rft.aufirst=A.S.&amp;rft.aulast=Cote&amp;rft.au=A.S.%20Cote&amp;rft.au=I.%20Morrison&amp;rft.au=X.%20Cui&amp;rft.au=S.%20Jenkins&amp;rft.au=D.K.%20Ross&amp;rft.date=2003&amp;rft.pages=115-122(8)&amp;rft.spage=115&amp;rft.epage=122(8)"/></div></html>DOI: [[10.1139/p03-003|http://dx.doi.org/10.1139/p03-003]].
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry" > I. Morrison, J.-C. Li, S. Jenkins, S.S. Xantheas, M.C. Payne, ''Ab-Initio Total Energy Studies of the Static and Dynamical Properties of Ice Ih'', <i>J. Phys. Chem. B.</i> 101 (1997) 6146–6150.</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1021%2Fjp963277n&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Ab-Initio%20Total%20Energy%20Studies%20of%20the%20Static%20and%20Dynamical%20Properties%20of%20Ice%20Ih&amp;rft.jtitle=Journal%20of%20Physical%20Chemistry%20B&amp;rft.stitle=J.%20Phys.%20Chem.%20B&amp;rft.volume=101&amp;rft.issue=32&amp;rft.aufirst=I.&amp;rft.aulast=Morrison&amp;rft.au=I.%20Morrison&amp;rft.au=J.-C.%20Li&amp;rft.au=S.%20Jenkins&amp;rft.au=S.S.%20Xantheas&amp;rft.au=M.C.%20Payne&amp;rft.date=1997-08-07&amp;rft.pages=6146-6150&amp;rft.spage=6146&amp;rft.epage=6150&amp;rft.issn=1520-6106"/>
</div></html>DOI: [[10.1021/jp963277n|http://pubs3.acs.org/acs/journals/doilookup?in_doi=10.1021/jp963277n]]
!!!Sweden

* Professor Per Nylen, Production Technology Centre, University West, Trollhattan, Sweden
* [[Professor Itai Panas|http://www.che.chalmers.se/~itai/]], Chalmers University, Gothenburg, Sweden
* [[Professor Magnus Nyden|http://www.chalmers.se/chem/SV/amnesomraden/teknisk-ytkemi/personal/forskare/magnus-nyden]], Chalmers University, Gothenburg, Sweden
* Professor Martin Nilsson Jacobi, Chalmers University, Gothenburg, Sweden

!!!Canada
* [[Prof. Paul W Ayers|http://www.chemistry.mcmaster.ca/faculty/ayers/]], Canada Research Chair in Theoretical Chemistry and Chemical Biology, [[McMaster University|href="http://www.mcmaster.ca/]], Canada - via the [[SHARCNET|http://www.sharcnet.ca/]] national supercomputing grid.

!!US
* [[Professor David A. Weitz|http://www.deas.harvard.edu/projects/weitzlab/]], Division of Engineering and Applied Sciences/Department of Physics, Harvard University, Cambridge MA, USA.
* [[Dr. Peter Lu|http://www.peterlu.org/]], Division of Engineering and Applied Sciences/Department of Physics, Harvard University, Cambridge MA, USA.
* [[Creon Levit|http://people.nas.nasa.gov/~creon/]], NASA Ames Research Center, CA, USA.
* [[Prof. Al French|http://www.ars.usda.gov/pandp/people/people.htm?personid=1848]], United States Department of Agriculture, New Orleans, Louisiana, USA

!!!China
* Professor Lian Shixun, Department of Chemistry and Chemical Engineering, Hunan Normal University, Changsha, China
* Xu Chang, Zhejing Business Technology Institute, Ningbo, China

!!India
* Dr. Sivaprasad Mitra, Department of Chemistry, ~North-Eastern Hill University, Shillong, Meghalaya, India

!!!Spain
* [[Dr. Ángel Martín Pendás|http://www.uniovi.es/qcg/amp/amp.html]], TU de Qu&iacute;mica F&iacute;sica, [[Quantum Chemistry Group|http://www.uniovi.es/qcg/]], [[University of Oviedo|http://www.uniovi.es/]], Spain.

!!!Colombia
* [[Prof. Albeiro Restrepo|http://quimica.udea.edu.co/~qfteorica/]], Chemistry Institute, University of Antioquia, Medellin, Colombia

!!!Japan
* Dr. James S.M. Anderson, Nuclear Theory Group (Otsuka), Department of Physics, University of Tokyo, Bunkyo-ku, Tokyo, Japan
<html>
<div class="csl-bib-body" >
  <div class="csl-entry">Ayers, Paul W., and Samantha Jenkins. “An Electron-preceding Perspective on the Deformation of Materials.” <i>The Journal of Chemical Physics</i> 130, no. 15 (April 21, 2009): 154104–154104–11.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1063%2F1.3098140&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=An%20electron-preceding%20perspective%20on%20the%20deformation%20of%20materials&amp;rft.jtitle=The%20Journal%20of%20Chemical%20Physics&amp;rft.stitle=J.%20Chem.%20Phys.&amp;rft.volume=130&amp;rft.issue=15&amp;rft.aufirst=Paul%20W.&amp;rft.aulast=Ayers&amp;rft.au=Paul%20W.%20Ayers&amp;rft.au=Samantha%20Jenkins&amp;rft.date=2009-04-21&amp;rft.pages=154104-154104-11&amp;rft.spage=154104&amp;rft.epage=154104"/></div></html>DOI: [[10.1063/1.3098140|http://dx.doi.org/10.1063/1.3098140]].
<html>
<div class="csl-bib-body" >
<div class="csl-entry">Samantha Jenkins and Steven R. Kirk, “An Investigation of the Merging and Collapsing of Software Networks”, <i>Advances in Complex Systems</i> 10, no. 3 (2007): 379–393.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1142%2FS0219525907001173&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=An%20investigation%20of%20the%20Merging%20and%20Collapsing%20of%20Software%20Networks&amp;rft.jtitle=Advances%20in%20Complex%20Systems&amp;rft.volume=10&amp;rft.issue=3&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.date=2007&amp;rft.pages=379-393&amp;rft.spage=379&amp;rft.epage=393&amp;rft.issn=0219-5259"/></div></html>DOI: [[10.1142/S0219525907001173|http://dx.doi.org/10.1142/S0219525907001173]].
<html>
<div class="csl-bib-body">
 <div class="csl-entry">Samantha Jenkins, Malcolm I. Heggie, and Roger Taylor, “Aromaticity of [60]fullerene Derivatives (C60Xn, X = H, F; n = 18, 36) Constrained to Have Planar Hexagonal Rings”, <i>Journal of the Chemical Society: Perkin Transactions 2</i> no. 12 (2000): 2415–2419.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1039%2Fb006858f&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Aromaticity%20of%20%5B60%5Dfullerene%20derivatives%20(C60Xn%2C%20X%20%3D%20H%2C%20F%3B%20n%20%3D%2018%2C%2036)%20constrained%20to%20have%20planar%20hexagonal%20rings&amp;rft.jtitle=Journal%20of%20the%20Chemical%20Society%3A%20Perkin%20Transactions%202&amp;rft.stitle=J.%20Chem.%20Soc.%2C%20Perkin%20Trans.%202&amp;rft.issue=12&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Malcolm%20I.%20Heggie&amp;rft.au=Roger%20Taylor&amp;rft.date=2000&amp;rft.pages=2415-2419&amp;rft.spage=2415&amp;rft.epage=2419"/>
</div></html>DOI: [[10.1039/b006858f|http://dx.doi.org/10.1039/b006858f]].
''This is the homepage for the BEACON group based at Hunan Normal University, Hunan Province, China (formerly in H&ouml;gskolan V&auml;st (University West), Trollh&auml;ttan, Sweden)''.

* For information on our research code for Quantum Chemical Topology (AIMPAC2), click [[here|http://www.beaconresearch.org/AIMPAC2/index.html]]. 
* We are developing a [[downloadable online reference book on scientific communication|http://scicomm.tiddlyspot.com]], based on [[TiddlyWiki|http://www.tiddlywiki.com]] technology. This is a work in progress, being progressively built based on student questions and issues encountered during undergraduate and Masters-level thesis work in technical, scientific and engineering educations. 
* [[Members]]
* [[Funding And Consortia]]   

''NOTE: [[The Third Changsha International Workshop on Theoretical and Computational Chemistry with Materials 2014|http://www.beaconresearch.org/TCCWorkshop2014/]] will take place on June 8-10 2014. Click on the link for more details.''

! Latest News
@@(for all project news, see 'News' in the left menu)@@ 
<<forEachTiddler
 where
 'tiddler.tags.contains("News")'
sortBy 
        tiddler.title
    descending
 write
 '(index < 8) ? tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n\n" : ""'
>>
<html>
<div class="csl-bib-body">
<div class="csl-entry">S. Jenkins, P.W. Ayers, S.R. Kirk, P. Mori-Sánchez, and A. Martín Pendás. “Bond Metallicity of Materials from Real Space Charge Density Distributions”, <i>Chemical Physics Letters</i> 471, no. 1–3 (March 16, 2009): 174–177. </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2Fj.cplett.2009.02.018&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Bond%20metallicity%20of%20materials%20from%20real%20space%20charge%20density%20distributions&amp;rft.jtitle=Chemical%20Physics%20Letters&amp;rft.volume=471&amp;rft.issue=1-3&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=P.W.%20Ayers&amp;rft.au=S.R.%20Kirk&amp;rft.au=P.%20Mori-S%C3%A1nchez&amp;rft.au=A.%20Mart%C3%ADn%20Pend%C3%A1s&amp;rft.date=2009-03-16&amp;rft.pages=174-177&amp;rft.spage=174&amp;rft.epage=177&amp;rft.issn=0009-2614"/></div></html>DOI: [[10.1016/j.cplett.2009.02.018|http://dx.doi.org/10.1016/j.cplett.2009.02.018]].
! Success Through Partnership

''BELOW:  A schematic of strategic knowledge exchange between project partners, enabling growth of Swedish Industry.''

[img[images/samverkan.png]]
!Contact Details

''Professor Samantha Jenkins (Docent), Ph.D., ~MInstP''

Postal address:
College of Chemistry and Chemical Engineering
Hunan Normal University
36 Lushan Road
Changsha 410081
Hunan. P.R. China.

!Online
Email: suman@hunnu.edu.cn, sj@beaconresearch.org

!Awards
<<tiddler [[SJ Awards]]>>
!Recent Publications
<<tiddler [[SJ Publications]]>>
!Invited presentations
<<forEachTiddler
 where
 'tiddler.tags.contains("Presentation") && tiddler.tags.contains("SJ")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>
!Other Qualifications
<<tiddler [[SJ OtherQualifications]]>>
!Academic Responsibilities
<<forEachTiddler
 where
 'tiddler.tags.contains("Academic") && tiddler.tags.contains("SJ")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>
''Steven Robert KIRK (Chinese name Su Wen), Docent,  Ph.D., ~MInstP''
Nationality: UK

Postal address:
College of Chemistry and Chemical Engineering
Hunan Normal University
36 Lushan Road
Changsha 410081
Hunan. P.R. China.

! Online
Email: suwen@hunnu.edu.cn, steven.kirk@cantab.net
[[ORCID|https://orcid.org/0000-0002-0462-6962]]
[[Mendeley Profile|http://www.mendeley.com/profiles/steven-kirk/]]
[[Academia.edu Profile|http://hunnu.academia.edu/StevenKirk]]
[[ResearchGate Profile|https://www.researchgate.net/profile/Steven_Kirk4/]]

!Education
<<tiddler [[SRK Education]]>>
!Other qualifications
<<tiddler [[SRK OtherQualifications]]>>
!Awards
<<tiddler [[SRK Awards]]>>
!Recent Publications
<<tiddler [[SRK Publications]]>>
!Competitive Grants
<<tiddler [[SRK Funding]]>>
!Invited presentations
<<tiddler [[SRK Presentations]]>>
!Committees
<<tiddler [[SRK Committees]]>>
!Administrative duties
<<tiddler [[SRK Administration]]>>
!Courses taught
<<tiddler [[SRK Teaching]]>>
!Other pedagogic output
<<tiddler [[SRK OtherPedagogic]]>>
!External pedagogic activities
<<tiddler [[SRK PublicScience]]>>
!Other skills
<<tiddler [[SRK Skills]]>>
!Experience (academic)
<<tiddler [[SRK Employment]]>>
!Experience (non-academic)
<<tiddler [[SRK OtherEmployment]]>>
!Pedagogic philosophy
<<tiddler [[SRK PedagogicPhilosophy]]>>
<html>
<div class="csl-bib-body">
<div class="csl-entry">S. Jenkins and I. Morrison,“Characterization of Various Phases of Ice on the Basis of the Charge Density”, <i>Journal of Physical Chemistry B</i> 103, no. 50 (December 16, 1999): 11041–11049.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1021%2Fjp992655w&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Characterization%20of%20Various%20Phases%20of%20Ice%20on%20the%20Basis%20of%20the%20Charge%20Density&amp;rft.jtitle=Journal%20of%20Physical%20Chemistry%20B&amp;rft.stitle=J.%20Phys.%20Chem.%20B&amp;rft.volume=103&amp;rft.issue=50&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=I.%20Morrison&amp;rft.date=1999-12-16&amp;rft.pages=11041-11049&amp;rft.spage=11041&amp;rft.epage=11049&amp;rft.issn=1520-6106"/</div></html>DOI: [[10.1021/jp992655w|http://dx.doi.org/10.1021/jp992655w]].
<html>
<div class="csl-entry">
    <div >C. Zhang, Z. Fu, B. Dai, S. Zen, Y. Liu, Q. Xu, S. R. Kirk, and D. Yin, “Chlorocuprate Ionic Liquid Functionalized Biochar Sulfonic Acid as an Efficiently Biomimetic Catalyst for Direct Hydrolysis of Bamboo under Microwave Irradiation,” <i>Ind. Eng. Chem. Res.</i> <b>52</b>(33), 11537–11543 (2013)</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1021%2Fie401100x&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Chlorocuprate%20Ionic%20Liquid%20Functionalized%20Biochar%20Sulfonic%20Acid%20as%20an%20Efficiently%20Biomimetic%20Catalyst%20for%20Direct%20Hydrolysis%20of%20Bamboo%20under%20Microwave%20Irradiation&amp;rft.jtitle=Industrial%20%26%20Engineering%20Chemistry%20Research&amp;rft.stitle=Ind.%20Eng.%20Chem.%20Res.&amp;rft.volume=52&amp;rft.issue=33&amp;rft.aufirst=Chao&amp;rft.aulast=Zhang&amp;rft.au=Chao%20Zhang&amp;rft.au=Zaihui%20Fu&amp;rft.au=Baohua%20Dai&amp;rft.au=Shunqin%20Zen&amp;rft.au=Yachun%20Liu&amp;rft.au=Qiong%20Xu&amp;rft.au=Steven%20Robert%20Kirk&amp;rft.au=Dulin%20Yin&amp;rft.date=2013-08-21&amp;rft.pages=11537-11543&amp;rft.spage=11537&amp;rft.epage=11543&amp;rft.issn=0888-5885"></span>
</html> DOI: [[10.1021/ie401100x|http://dx.doi.org/10.1021/ie401100x]].
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #D00
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
{{{
// Specify your account number here!

// CustomTracker as a namespace for tracking related functions
var CustomTracker = {
// store a reference to the original displayTiddler function
displayTiddler: story.displayTiddler
};

CustomTracker.track = function() {
if (readOnly) {
pageTracker._trackPageview.apply(this, arguments);
}
};

CustomTracker.trackAndDisplayTiddler = function(srcElement, titles) {
// log with the tracker
CustomTracker.track('/' + titles);
// call the original displayTiddler function
CustomTracker.displayTiddler.apply(this,arguments);
};

// replace the default displayTiddler function with a tracking version
story.displayTiddler = CustomTracker.trackAndDisplayTiddler;

// Call once for the initial page load
CustomTracker.track();
}}}
[[BEACON]]
<html>
<div class="csl-bib-body">
<div class="csl-entry">S. Jenkins, S.R. Kirk, A.S. Cote, D.K. Ross, and I. Morrison, “Dependence of the Normal Modes on the Electronic Structure of Various Phases of Ice as Calculated by Ab Initio Methods”, <i>Canadian Journal of Physics</i> 81 (January 1, 2003): 225–231(7).</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Dependence%20of%20the%20normal%20modes%20on%20the%20electronic%20structure%20of%20various%20phases%20of%20ice%20as%20calculated%20by%20ab%20initio%20methods&amp;rft.jtitle=Canadian%20Journal%20of%20Physics&amp;rft.volume=81&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=S.R.%20Kirk&amp;rft.au=A.S.%20Cote&amp;rft.au=D.K.%20Ross&amp;rft.au=I.%20Morrison&amp;rft.date=2003&amp;rft.pages=225-231(7)&amp;rft.spage=225&amp;rft.epage=231(7)"/>
</div></html>URL: [[http://www.ingentaconnect.com/content/nrc/cjp/2003/00000081/F0020001/art00030|http://www.ingentaconnect.com/content/nrc/cjp/2003/00000081/F0020001/art00030]].
<html>
<div class="csl-bib-body">
<div class="csl-entry">Samantha Jenkins, “Direct Space Representation of Metallicity and Structural Stability in SiO Solids”, <i>Journal of Physics: Condensed Matter</i> 14, no. 43 (2002): 10251–10263.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1088%2F0953-8984%2F14%2F43%2F321&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Direct%20space%20representation%20of%20metallicity%20and%20structural%20stability%20in%20SiO%20solids&amp;rft.jtitle=Journal%20of%20Physics%3A%20Condensed%20Matter&amp;rft.volume=14&amp;rft.issue=43&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.date=2002&amp;rft.pages=10251-10263&amp;rft.spage=10251&amp;rft.epage=10263&amp;rft.issn=0953-8984"/></div></html>DOI: [[10.1088/0953-8984/14/43/321|http://dx.doi.org/10.1088/0953-8984/14/43/321]].
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">S. Jenkins, S.R. Kirk, A. Guevara-García, P.W. Ayers, E. Echegaray, and A. Toro-Labbe, in Topics in Current Chemistry(<i>Electronic Effects in Organic Chemistry</i>), ed. B. Kirchner (Springer Berlin Heidelberg) 2011.</div>

  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Electronic%20Stress%20as%20a%20Guiding%20Force%20for%20Chemical%20Bonding&amp;rft.publisher=Springer%20Berlin%20Heidelberg&amp;rft.series=Topics%20in%20Current%20Chemistry&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Alfredo%20Guevara-Garci%CC%81a&amp;rft.au=Paul%20W.%20Ayers&amp;rft.au=Eleonora%20Echegaray&amp;rft.au=Alejandro%20Toro-Labbe"/>
</div></html>([[PDF reprint|publications/stressPWAchpt.pdf]])
<html>
<div class="csl-bib-body">
<div class="csl-entry">Coulter, John E., Shi Lei, and Samantha Jenkins. “Environment as the Stage for Economic Actors”, <i>Chinese Journal of Population, Resources and Environment</i> 5, no. 1 (2007): 3–8.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Environment%20as%20the%20Stage%20for%20Economic%20Actors&amp;rft.jtitle=Chinese%20Journal%20of%20Population%2C%20Resources%20and%20Environment&amp;rft.volume=5&amp;rft.issue=1&amp;rft.aufirst=John%20E.&amp;rft.aulast=Coulter&amp;rft.au=John%20E.%20Coulter&amp;rft.au=Shi%20Lei&amp;rft.au=Samantha%20Jenkins&amp;rft.date=2007&amp;rft.pages=3-8&amp;rft.spage=3&amp;rft.epage=8&amp;rft.issn=1004-2849"/></div></html>URL: [[http://www.cjpre.cn/issuesInfo.php?id=87| http://www.cjpre.cn/issuesInfo.php?id=87]].
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">S. Mitra, A.K. Chandra, P.M. Gashnga, S. Jenkins and S.R. Kirk, ''Exploring Hydrogen Bond in the Excited State Leading towards Intra-molecular Proton Transfer: Detailed Analysis of the Structure and Charge Density Topology along the Reaction Path using QTAIM'', <i>Journal of Molecular Modelling</i> 18(9), 4225-4237, 2012.</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1007%2Fs00894-012-1408-1&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Exploring%20Hydrogen%20Bond%20in%20the%20Excited%20State%20Leading%20towards%20Intra-molecular%20Proton%20Transfer%3A%20Detailed%20Analysis%20of%20the%20Structure%20and%20Charge%20Density%20Topology%20along%20the%20Reaction%20Path%20using%20QTAIM&amp;rft.jtitle=Journal%20of%20Molecular%20Modelling&amp;rft.aufirst=Sivaprasad&amp;rft.aulast=Mitra&amp;rft.au=Sivaprasad%20Mitra&amp;rft.au=Asit%20K.%20Chandra&amp;rft.au=Pynsakhiat%20Miki%20Gashnga&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk"/>
</div></html>([[Preprint PDF|publications/JMMO2834new.pdf]]) DOI:[[10.1007/s00894-012-1408-1|http://dx.doi.org/10.1007/s00894-012-1408-1]]
!Q: What kinds of size scales are of interest in multiscale modelling?

A: The range of sizes of interest for industrial applications range from small fractions of a nanometre, up to fractions of a millimetre. A good site explaining size scales can be found [[here|http://www.understandingnano.com/introduction.html]].

!Q: How big is a nanometre ?

A: A nanometre is 1/1000000000 of a metre. Another way of thinking about this size is to consider the [[Turning Torso|http://en.wikipedia.org/wiki/Turning_Torso]] building in Malmö, Sweden, which is 190 m tall. A ballpoint pen, as the name suggests, has a ball at the end which rolls, transferring ink to the paper. This diameter of this ball, in a 'fine' ballpoint pen, is around 0.6 mm.

[img[images/TurningTorso.jpg]][img[images/533629.jpg]][img[images/d10.jpg]]

The BEACON group's industrial research involves tailoring the properties of extremely small particles of amorphous silica, the same material that makes up the glass in the windows of the Turning Torso. Some of these particles (such as the one illustrated above, where individual atoms are shown as spheres) are about 2 nanometres wide.These particles have many uses in industrial applications, including the manufacture of paper!

''You would need to stack about 317,000 pen balls on top of each other to reach the height of the Turning Torso, and you would also need to stack the same number of these nanoparticles on top of each other to reach the size of the pen ball!''
<html>
<div class="csl-bib-body">
<div class="csl-entry">Ian Morrison and Samantha Jenkins, “First Principles Lattice Dynamics Studies of the Vibrational Spectra of Ice”, <i>Physica B: Condensed Matter</i> 263–264 (March 1999): 442–444.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2FS0921-4526(98)01404-5&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=First%20principles%20lattice%20dynamics%20studies%20of%20the%20vibrational%20spectra%20of%20ice&amp;rft.jtitle=Physica%20B%3A%20Condensed%20Matter&amp;rft.volume=263-264&amp;rft.aufirst=Ian&amp;rft.aulast=Morrison&amp;rft.au=Ian%20Morrison&amp;rft.au=Samantha%20Jenkins&amp;rft.date=1999-03&amp;rft.pages=442-444&amp;rft.spage=442&amp;rft.epage=444"/></div></html>DOI: [[10.1016/S0921-4526(98)01404-5|http://dx.doi.org/10.1016/S0921-4526(98)01404-5]].
//~~(Part of the [[ForEachTiddlerPlugin]])~~//

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]] is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|


''Using JavaScript''

To give you a lot of flexibility the [[ForEachTiddlerMacro]] uses JavaScript in its arguments. Even if you are not that familiar with JavaScript you may find forEachTiddler useful. Just have a look at the various ready-to-use [[ForEachTiddlerExamples]] and adapt them to your needs.

''The Elements of the Macro''

The arguments of the ForEachTiddlerMacro consist of multiple parts, each of them being optional.

<<slider chkFETInClause [[inClause]] "inClause" "inClause">>
<<slider chkFETWhereClause [[whereClause]] "whereClause" "whereClause">>
<<slider chkFETSortClause [[sortClause]] "sortClause" "sortClause">>
<<slider chkFETScriptClause [[scriptClause]] "scriptClause" "scriptClause">>
<<slider chkFETActions [[Action Specification]] "Action Specification" "Action Specification">>

''Using Macros and ">" inside the forEachTiddler Macro''

You may use other macro calls into the expression, especially in the actionParameters. To avoid that the {{{>>}}} of such a macro call is misinterpreted as the end of the {{{<<forEachTiddler...>>}}} macro you must escape the {{{>>}}} of the inner macro with {{{$))}}} E.g. if you want to use {{{<<tiddler ...>>}}} inside the {{{forEachTiddler}}} macro you have to write {{{<<tiddler ...$))}}}.

In addition it is necessary to escape single {{{>}}} with the text {{{$)}}}.

''Using {{{<<tiddler ... with: ...>>}}} to re-use ForEachTiddler definitions''

Sometimes you may want to use a certain ForEachTiddler definition in slight variations. E.g. you may want to list either the tiddlers tagged with "ToDo" and in the other case with "Done". To do so you may use "Tiddler parameters". Here an example:

Replace the variable part of the ForEachTiddler definition with $1 ($2,... $9 are supported). E.g. you may create the tiddler "ListTaggedTiddlers" like this
{{{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("$1")'
>>
}}}

Now you can use the ListTaggedTiddlers for various specific tags, using the {{{<<tiddler ...>>}}} macro:
{{{
<<tiddler ListTaggedTiddlers with: "systemConfig">>
}}}
{{{
<<tiddler ListTaggedTiddlers with: "Plugin">>
}}}


See also [[ForEachTiddlerExamples]].
/***
|''Name:''|ForEachTiddlerPlugin|
|''Version:''|1.0.8 (2007-04-12)|
|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2007 [[abego Software|http://www.abego-software.de]]|
|''TiddlyWiki:''|1.2.38+, 2.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
!Description

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]]  is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|

See details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].

!Revision history
* v1.0.8 (2007-04-12)
** Adapted to latest TiddlyWiki 2.2 Beta importTiddlyWiki API (introduced with changeset 2004). TiddlyWiki 2.2 Beta builds prior to changeset 2004 are no longer supported (but TiddlyWiki 2.1 and earlier, of cause)
* v1.0.7 (2007-03-28)
** Also support "pre" formatted TiddlyWikis (introduced with TW 2.2) (when using "in" clause to work on external tiddlers)
* v1.0.6 (2006-09-16)
** Context provides "viewerTiddler", i.e. the tiddler used to view the macro. Most times this is equal to the "inTiddler", but when using the "tiddler" macro both may be different.
** Support "begin", "end" and "none" expressions in "write" action
* v1.0.5 (2006-02-05)
** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.
** Support Firefox 1.5.0.1
** Internal
*** Make "JSLint" conform
*** "Only install once"
* v1.0.4 (2006-01-06)
** Support TiddlyWiki 2.0
* v1.0.3 (2005-12-22)
** Features: 
*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) 
*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)
** Enhancements:
*** Improved error messages on InternetExplorer.
* v1.0.2 (2005-12-10)
** Features: 
*** context object also holds reference to store (TiddlyWiki)
** Fixed Bugs: 
*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)
* v1.0.1 (2005-12-08)
** Features: 
*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".
*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.
*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).
*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .
*** Improved script evaluation (for where/sort clause and write scripts).
* v1.0.0 (2005-11-20)
** initial version

!Code
***/
//{{{

	
//============================================================================
//============================================================================
//		   ForEachTiddlerPlugin
//============================================================================
//============================================================================

// Only install once
if (!version.extensions.ForEachTiddlerPlugin) {

if (!window.abego) window.abego = {};

version.extensions.ForEachTiddlerPlugin = {
	major: 1, minor: 0, revision: 8, 
	date: new Date(2007,3,12), 
	source: "http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin",
	licence: "[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",
	copyright: "Copyright (c) abego Software GmbH, 2005-2007 (www.abego-software.de)"
};

// For backward compatibility with TW 1.2.x
//
if (!TiddlyWiki.prototype.forEachTiddler) {
	TiddlyWiki.prototype.forEachTiddler = function(callback) {
		for(var t in this.tiddlers) {
			callback.call(this,t,this.tiddlers[t]);
		}
	};
}

//============================================================================
// forEachTiddler Macro
//============================================================================

version.extensions.forEachTiddler = {
	major: 1, minor: 0, revision: 8, date: new Date(2007,3,12), provider: "http://tiddlywiki.abego-software.de"};

// ---------------------------------------------------------------------------
// Configurations and constants 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler = {
	 // Standard Properties
	 label: "forEachTiddler",
	 prompt: "Perform actions on a (sorted) selection of tiddlers",

	 // actions
	 actions: {
		 addToList: {},
		 write: {}
	 }
};

// ---------------------------------------------------------------------------
//  The forEachTiddler Macro Handler 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler.getContainingTiddler = function(e) {
	while(e && !hasClass(e,"tiddler"))
		e = e.parentNode;
	var title = e ? e.getAttribute("tiddler") : null; 
	return title ? store.getTiddler(title) : null;
};

config.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	// config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);

	if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params
	// Parse the "in" clause
	var tiddlyWikiPath = undefined;
	if ((i < params.length) && params[i] == "in") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "TiddlyWiki path expected behind 'in'.");
			return;
		}
		tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the where clause
	var whereClause ="true";
	if ((i < params.length) && params[i] == "where") {
		i++;
		whereClause = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the sort stuff
	var sortClause = null;
	var sortAscending = true; 
	if ((i < params.length) && params[i] == "sortBy") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "sortClause missing behind 'sortBy'.");
			return;
		}
		sortClause = this.paramEncode(params[i]);
		i++;

		if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {
			 sortAscending = params[i] == "ascending";
			 i++;
		}
	}

	// Parse the script
	var scriptText = null;
	if ((i < params.length) && params[i] == "script") {
		i++;
		scriptText = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the action. 
	// When we are already at the end use the default action
	var actionName = "addToList";
	if (i < params.length) {
	   if (!config.macros.forEachTiddler.actions[params[i]]) {
			this.handleError(place, "Unknown action '"+params[i]+"'.");
			return;
		} else {
			actionName = params[i]; 
			i++;
		}
	} 
	
	// Get the action parameter
	// (the parsing is done inside the individual action implementation.)
	var actionParameter = params.slice(i);


	// --- Processing ------------------------------------------
	try {
		this.performMacro({
				place: place, 
				inTiddler: tiddler,
				whereClause: whereClause, 
				sortClause: sortClause, 
				sortAscending: sortAscending, 
				actionName: actionName, 
				actionParameter: actionParameter, 
				scriptText: scriptText, 
				tiddlyWikiPath: tiddlyWikiPath});

	} catch (e) {
		this.handleError(place, e);
	}
};

// Returns an object with properties "tiddlers" and "context".
// tiddlers holds the (sorted) tiddlers selected by the parameter,
// context the context of the execution of the macro.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {

	var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);

	var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;
	context["tiddlyWiki"] = tiddlyWiki;
	
	// Get the tiddlers, as defined by the whereClause
	var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);
	context["tiddlers"] = tiddlers;

	// Sort the tiddlers, when sorting is required.
	if (parameter.sortClause) {
		this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);
	}

	return {tiddlers: tiddlers, context: context};
};

// Returns the (sorted) tiddlers selected by the parameter.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlers = function(parameter) {
	return this.getTiddlersAndContext(parameter).tiddlers;
};

// Performs the macros with the given parameter.
//
// @param parameter holds the parameter of the macro as separate properties.
//				  The following properties are supported:
//
//						place
//						whereClause
//						sortClause
//						sortAscending
//						actionName
//						actionParameter
//						scriptText
//						tiddlyWikiPath
//
//					All properties are optional. 
//					For most actions the place property must be defined.
//
config.macros.forEachTiddler.performMacro = function(parameter) {
	var tiddlersAndContext = this.getTiddlersAndContext(parameter);

	// Perform the action
	var actionName = parameter.actionName ? parameter.actionName : "addToList";
	var action = config.macros.forEachTiddler.actions[actionName];
	if (!action) {
		this.handleError(parameter.place, "Unknown action '"+actionName+"'.");
		return;
	}

	var actionHandler = action.handler;
	actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);
};

// ---------------------------------------------------------------------------
//  The actions 
// ---------------------------------------------------------------------------

// Internal.
//
// --- The addToList Action -----------------------------------------------
//
config.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;

	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);
		return;
	}

	// Perform the action.
	var list = document.createElement("ul");
	place.appendChild(list);
	for (var i = 0; i < tiddlers.length; i++) {
		var tiddler = tiddlers[i];
		var listItem = document.createElement("li");
		list.appendChild(listItem);
		createTiddlyLink(listItem, tiddler.title, true);
	}
};

abego.parseNamedParameter = function(name, parameter, i) {
	var beginExpression = null;
	if ((i < parameter.length) && parameter[i] == name) {
		i++;
		if (i >= parameter.length) {
			throw "Missing text behind '%0'".format([name]);
		}
		
		return config.macros.forEachTiddler.paramEncode(parameter[i]);
	}
	return null;
}

// Internal.
//
// --- The write Action ---------------------------------------------------
//
config.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;
	if (p >= parameter.length) {
		this.handleError(place, "Missing expression behind 'write'.");
		return;
	}

	var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);
	p++;

	// Parse the "begin" option
	var beginExpression = abego.parseNamedParameter("begin", parameter, p);
	if (beginExpression !== null) 
		p += 2;
	var endExpression = abego.parseNamedParameter("end", parameter, p);
	if (endExpression !== null) 
		p += 2;
	var noneExpression = abego.parseNamedParameter("none", parameter, p);
	if (noneExpression !== null) 
		p += 2;

	// Parse the "toFile" option
	var filename = null;
	var lineSeparator = undefined;
	if ((p < parameter.length) && parameter[p] == "toFile") {
		p++;
		if (p >= parameter.length) {
			this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");
			return;
		}
		
		filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));
		p++;
		if ((p < parameter.length) && parameter[p] == "withLineSeparator") {
			p++;
			if (p >= parameter.length) {
				this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");
				return;
			}
			lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);
			p++;
		}
	}
	
	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);
		return;
	}

	// Perform the action.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);
	var count = tiddlers.length;
	var text = "";
	if (count > 0 && beginExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);
	
	for (var i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		text += func(tiddler, context, count, i);
	}
	
	if (count > 0 && endExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);

	if (count == 0 && noneExpression) 
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);
		

	if (filename) {
		if (lineSeparator !== undefined) {
			lineSeparator = lineSeparator.replace(/\\n/mg, "\n").replace(/\\r/mg, "\r");
			text = text.replace(/\n/mg,lineSeparator);
		}
		saveFile(filename, convertUnicodeToUTF8(text));
	} else {
		var wrapper = createTiddlyElement(place, "span");
		wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);
	}
};


// ---------------------------------------------------------------------------
//  Helpers
// ---------------------------------------------------------------------------

// Internal.
//
config.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {
	return {
		place : placeParam, 
		whereClause : whereClauseParam, 
		sortClause : sortClauseParam, 
		sortAscending : sortAscendingParam, 
		script : scriptText,
		actionName : actionNameParam, 
		actionParameter : actionParameterParam,
		tiddlyWikiPath : tiddlyWikiPathParam,
		inTiddler : inTiddlerParam, // the tiddler containing the <<forEachTiddler ...>> macro call.
		viewerTiddler : config.macros.forEachTiddler.getContainingTiddler(placeParam) // the tiddler showing the forEachTiddler result
	};
};

// Internal.
//
// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of 
// the given path.
//
config.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {
	if (!idPrefix) {
		idPrefix = "store";
	}
	var lenPrefix = idPrefix.length;
	
	// Read the content of the given file
	var content = loadFile(this.getLocalPath(path));
	if(content === null) {
		throw "TiddlyWiki '"+path+"' not found.";
	}
	
	var tiddlyWiki = new TiddlyWiki();

	// Starting with TW 2.2 there is a helper function to import the tiddlers
	if (tiddlyWiki.importTiddlyWiki) {
		if (!tiddlyWiki.importTiddlyWiki(content))
			throw "File '"+path+"' is not a TiddlyWiki.";
		tiddlyWiki.dirty = false;
		return tiddlyWiki;
	}
	
	// The legacy code, for TW < 2.2
	
	// Locate the storeArea div's
	var posOpeningDiv = content.indexOf(startSaveArea);
	var posClosingDiv = content.lastIndexOf(endSaveArea);
	if((posOpeningDiv == -1) || (posClosingDiv == -1)) {
		throw "File '"+path+"' is not a TiddlyWiki.";
	}
	var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);
	
	// Create a "div" element that contains the storage text
	var myStorageDiv = document.createElement("div");
	myStorageDiv.innerHTML = storageText;
	myStorageDiv.normalize();
	
	// Create all tiddlers in a new TiddlyWiki
	// (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)
	var store = myStorageDiv.childNodes;
	for(var t = 0; t < store.length; t++) {
		var e = store[t];
		var title = null;
		if(e.getAttribute)
			title = e.getAttribute("tiddler");
		if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)
			title = e.id.substr(lenPrefix);
		if(title && title !== "") {
			var tiddler = tiddlyWiki.createTiddler(title);
			tiddler.loadFromDiv(e,title);
		}
	}
	tiddlyWiki.dirty = false;

	return tiddlyWiki;
};


	
// Internal.
//
// Returns a function that has a function body returning the given javaScriptExpression.
// The function has the parameters:
// 
//	 (tiddler, context, count, index)
//
config.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {
	var script = context["script"];
	var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";
	var fullText = (script ? script+";" : "")+functionText+";theFunction;";
	return eval(fullText);
};

// Internal.
//
config.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {
	var result = [];
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);
	tiddlyWiki.forEachTiddler(function(title,tiddler) {
		if (func(tiddler, context, undefined, undefined)) {
			result.push(tiddler);
		}
	});
	return result;
};

// Internal.
//
config.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {
	var message = "Extra parameter behind '"+actionName+"':";
	for (var i = firstUnusedIndex; i < parameter.length; i++) {
		message += " "+parameter[i];
	}
	this.handleError(place, message);
};

// Internal.
//
config.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? -1 
			   : +1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? +1 
			   : -1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {
	// To avoid evaluating the sortClause whenever two items are compared 
	// we pre-calculate the sortValue for every item in the array and store it in a 
	// temporary property ("forEachTiddlerSortValue") of the tiddlers.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);
	var count = tiddlers.length;
	var i;
	for (i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);
	}

	// Do the sorting
	tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);

	// Delete the temporary property that holds the sortValue.	
	for (i = 0; i < tiddlers.length; i++) {
		delete tiddlers[i].forEachTiddlerSortValue;
	}
};


// Internal.
//
config.macros.forEachTiddler.trace = function(message) {
	displayMessage(message);
};

// Internal.
//
config.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {
	var message ="<<"+macroName;
	for (var i = 0; i < params.length; i++) {
		message += " "+params[i];
	}
	message += ">>";
	displayMessage(message);
};


// Internal.
//
// Creates an element that holds an error message
// 
config.macros.forEachTiddler.createErrorElement = function(place, exception) {
	var message = (exception.description) ? exception.description : exception.toString();
	return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);
};

// Internal.
//
// @param place [may be null]
//
config.macros.forEachTiddler.handleError = function(place, exception) {
	if (place) {
		this.createErrorElement(place, exception);
	} else {
		throw exception;
	}
};

// Internal.
//
// Encodes the given string.
//
// Replaces 
//	 "$))" to ">>"
//	 "$)" to ">"
//
config.macros.forEachTiddler.paramEncode = function(s) {
	var reGTGT = new RegExp("\\$\\)\\)","mg");
	var reGT = new RegExp("\\$\\)","mg");
	return s.replace(reGTGT, ">>").replace(reGT, ">");
};

// Internal.
//
// Returns the given original path (that is a file path, starting with "file:")
// as a path to a local file, in the systems native file format.
//
// Location information in the originalPath (i.e. the "#" and stuff following)
// is stripped.
// 
config.macros.forEachTiddler.getLocalPath = function(originalPath) {
	// Remove any location part of the URL
	var hashPos = originalPath.indexOf("#");
	if(hashPos != -1)
		originalPath = originalPath.substr(0,hashPos);
	// Convert to a native file format assuming
	// "file:///x:/path/path/path..." - pc local file --> "x:\path\path\path..."
	// "file://///server/share/path/path/path..." - FireFox pc network file --> "\\server\share\path\path\path..."
	// "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."
	// "file://server/share/path/path/path..." - pc network file --> "\\server\share\path\path\path..."
	var localPath;
	if(originalPath.charAt(9) == ":") // pc local file
		localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file
		localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file:///") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(7));
	else if(originalPath.indexOf("file:/") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(5));
	else // pc network file
		localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");	
	return localPath;
};

// ---------------------------------------------------------------------------
// Stylesheet Extensions (may be overridden by local StyleSheet)
// ---------------------------------------------------------------------------
//
setStylesheet(
	".forEachTiddlerError{color: #ffffff;background-color: #880000;}",
	"forEachTiddler");

//============================================================================
// End of forEachTiddler Macro
//============================================================================


//============================================================================
// String.startsWith Function
//============================================================================
//
// Returns true if the string starts with the given prefix, false otherwise.
//
version.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.startsWith = function(prefix) {
	var n =  prefix.length;
	return (this.length >= n) && (this.slice(0, n) == prefix);
};



//============================================================================
// String.endsWith Function
//============================================================================
//
// Returns true if the string ends with the given suffix, false otherwise.
//
version.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.endsWith = function(suffix) {
	var n = suffix.length;
	return (this.length >= n) && (this.right(n) == suffix);
};


//============================================================================
// String.contains Function
//============================================================================
//
// Returns true when the string contains the given substring, false otherwise.
//
version.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.contains = function(substring) {
	return this.indexOf(substring) >= 0;
};

//============================================================================
// Array.indexOf Function
//============================================================================
//
// Returns the index of the first occurance of the given item in the array or 
// -1 when no such item exists.
//
// @param item [may be null]
//
version.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.indexOf = function(item) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == item) {
			return i;
		}
	}
	return -1;
};

//============================================================================
// Array.contains Function
//============================================================================
//
// Returns true when the array contains the given item, otherwise false. 
//
// @param item [may be null]
//
version.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.contains = function(item) {
	return (this.indexOf(item) >= 0);
};

//============================================================================
// Array.containsAny Function
//============================================================================
//
// Returns true when the array contains at least one of the elements 
// of the item. Otherwise (or when items contains no elements) false is returned.
//
version.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAny = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (this.contains(items[i])) {
			return true;
		}
	}
	return false;
};


//============================================================================
// Array.containsAll Function
//============================================================================
//
// Returns true when the array contains all the items, otherwise false.
// 
// When items is null false is returned (even if the array contains a null).
//
// @param items [may be null] 
//
version.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAll = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (!this.contains(items[i])) {
			return false;
		}
	}
	return true;
};


} // of "install only once"

// Used Globals (for JSLint) ==============
// ... DOM
/*global 	document */
// ... TiddlyWiki Core
/*global 	convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, 
			displayMessage, endSaveArea, hasClass, loadFile, saveFile, 
			startSaveArea, store, wikify */
//}}}


/***
!Licence and Copyright
Copyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.

Neither the name of abego Software nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
***/
[img[images/KKlogo_eng.gif]][img[images/KKlogo_sv.gif]]@@clear(left):clear(right):display(block):@@
<html>
<div id="fulvene" height="300" width="300"></div><script src="http://cactus.nci.nih.gov/chemical/structure/InChI=1S/C6H6/c1-6-4-2-3-5-6/h2-5H,1H2/twirl?div_id=fulvene" type="text/javascript"></script>
</html>
{{centeredTable{
|borderless|k
| [img[images/hnulogo.jpg]] | [img[images/bairenjihua.gif]] | [img[images/sumo.gif]] |
|>|>| [img[images/logo_nsfc_small.jpg]] |
}}}
{{centeredTable{
|borderless|k
| [img[Group Photo|images/GroupPhoto_small.jpg][images/GroupPhoto.jpg]] |
| Dong Jiajun, Xu Tianl&uuml;, Xu Yuning, Prof. Samantha Jenkins, Prof. Steven R. Kirk, |
| Fernando Antonio Figueredo Negrete, Julio Roman Maza Villegas, Xiao Chenxia |
}}}
!Introduction to TiddlyWiki
This website is built using the TiddlyWiki system, in which the entire text contents of the website are held in a single HTML file (in this case, a file called 'index.html'). Conventional websites usually either consist of so-called 'static' web pages, each page of the site being held in a separate HTML file, or the pages that the viewer sees are generated by some form of 'content management system' (CMS) that generates webpages 'dynamically' from information held on databases. Such 'dynamic' systems (which can be written in languages such as PHP, among many others) automatically generate the HTML needed to define each webpage 'on-the-fly', every time someone browses to a particular page.

Tiddlywiki is an implementation of a dynamic web page generation system that works within the web browser, where the entire text contents of the website can exist in a single (or optionally, multiple) HTML file(s),  where the text content of the site is stored, created and edited as small discrete chunks called 'tiddlers'. These tiddlers have unique names, use a vastly simplified form of conventional HTML (NB. raw HTML can also be used if desired) to control the presentation of the text (see the [[Markup Guide]]), and can be given keywords or 'tags'. 

In addition to the text held in the 'tiddlers', the HTML file also holds the heart of the TiddlyWiki system, a flexible program written in JavaScript (which must therefore be enabled in web browsers for the page to be accessed correctly). This Javascript program, among other things, controls exactly which tiddlers are displayed at any given time, acting as a dynamic CMS running within the user's web browser, and handles the generation of menus, inclusion of images in tiddlers, text formatting and much more. As well as the basic TiddlyWiki system, a Tiddlywiki can also contain 'plugins', small pieces of Javascript code created by users to implement useful additional functions.  

This ability to mix explicitly stated visible webpage text and other content (text, images, or whatever) that is generated programmatically, gives the system a lot of flexibility and can make the job of maintaining the website much easier (for example, the home page for the site contains a list of the 5 most recent news items - this information is generated dynamically from other tiddlers using commands defined within the TiddlyWiki Javascript engine).

The tiddler you are currently reading is tagged with a tag called 'Documentation'. To see other tiddlers of this type, you first need to make the rightmost column visible by clicking on the tiny triangle at the bottom of the leftmost menu. Select the tab named 'Tags' in the newly-revealed right menu, then click on 'Documentation'.

! File system layout
The directory where the Tiddlywiki file is held is regarded as the home directory of the TiddlyWiki system. In this particular TiddlyWiki, there are two important subdirectories:
*images - this drectory is intended to hold only image files (pictures, logos, etc.)
* files - this directory can hold other documents, e.g. PDF files, zip files, video files etc.
Every time you save the TiddlyWiki by clicking 'save changes' in the right-hand menu, a numbered dated backup is made of the main TiddlyWiki file. At the moment, these files sit in the same directory as the main Tiddlywiki file, and can be pruned occasionally to reduce the amount of disk space used.
<html>
<div class="csl-bib-body" >
<div class="csl-entry">Cacier Z. Hadad, Albeiro Restrepo, Samantha Jenkins, Frank Ramírez and Jorge David, “Hydrophobic meddling in small water clusters”, <i>Theoretical Chemistry Accounts</i> 132, no. 8 (2013): 1–12. </div>
<span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1007%2Fs00214-013-1376-2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Hydrophobic%20meddling%20in%20small%20water%20clusters&amp;rft.jtitle=Theoretical%20Chemistry%20Accounts&amp;rft.stitle=Theor%20Chem%20Acc&amp;rft.volume=132&amp;rft.issue=8&amp;rft.aufirst=C.%20Z.&amp;rft.aulast=Hadad&amp;rft.au=C.%20Z.%20Hadad&amp;rft.au=Albeiro%20Restrepo&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Frank%20Ram%C3%ADrez&amp;rft.au=Jorge%20David&amp;rft.date=2013-08-01&amp;rft.pages=1-12&amp;rft.spage=1&amp;rft.epage=12&amp;rft.issn=1432-881X%2C%201432-2234'></span>
  </div></html>DOI: [[10.1007/s00214-013-1376-2|http://dx.doi.org/10.1007/s00214-013-1376-2]]
/***
|Name|ImageCaptionPlugin|
|Source|http://tiddlyyap.tiddlyspot.com/|
|License|Public domain|
|~CoreVersion|2.3|
|Type|plugin|
|Requires|none|
|Overrides|none|
|Description|Show an image's tooltip as a figure legend (caption) below the image|
!Usage
@@{{{<<icap '[img[tooltip|filename]]'>>}}}@@
Use standard TW image markup, including [>img or [<img to float image right or left.
Enclose image markup in quotes as argument for the icap macro.

Display of the image is controlled by three CSS classes which need to be added to [[StyleSheet]] (and can of course be customized to the user's taste):

.icapr {float: right; font-size: 9px; color: black; background-color: white; border: 1px solid #ccc; padding: 5px; margin: 5px;}
.icapl {float: left; font-size: 9px; color: black; background-color: white; border: 1px solid #ccc; padding: 5px; margin: 5px;}
.icapn {display: block; font-size: 9px; color: black; background-color: white; border: 1px solid #ccc; padding: 5px; margin: 5px;}
.icapr img {border: none; padding: 0; margin: 0;}
.icapl img {border: none; padding: 0; margin: 0;}
.icapn img {border: none; padding: 0; margin: 0;}

!Code
***/
//{{{

config.macros.icap = {};
config.macros.icap.handler = function(place,macroName,params)
 { var imarkup = params[0];
   var ifloat = imarkup.substr(1,1);
   if (ifloat == ">")
    { icss = "icapr";
      imarkup = imarkup.substr(0,1) + imarkup.substr(2);
      }
   else if (ifloat == "<")
    { icss = "icapl";
      imarkup = imarkup.substr(0,1) + imarkup.substr(2);
      }
   else
    { icss = "icapn";
      }
   var icapt = imarkup.substring(imarkup.indexOf("[",1)+1,imarkup.indexOf("|",0));
   var idiv = "{{" + icss + "{" + imarkup + "<br>" + icapt + "}}}"
   wikify (idiv,place,null,null);
   return false;
   };

//}}}
/***
|Name|ImageMapPlugin|
|Source|http://www.TiddlyTools.com/#ImageMapPlugin|
|Documentation|http://www.TiddlyTools.com/#ImageMapPluginInfo|
|Version|1.2.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|apply image maps ('hotspots') with links to tiddlers|
!!!!!Documentation
>see [[ImageMapPluginInfo]]
!!!!!Revisions
<<<
2009.05.27 [1.2.2] improved autoscroll for {{{<<mapMaker>>}}} textarea
2009.05.14 [1.2.1] added cursor changes
see [[ImageMapPluginInfo]] for additional revision details
2009.05.09 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImageMapPlugin= {major: 1, minor: 2, revision: 2, date: new Date(2009,5,27)};
//}}}
//{{{
config.macros.imageMap = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		// image element must immediately precede macro
		var img=place.lastChild; if (!img||img.nodeName!='IMG') return;
		var map=params[0]; var items=store.getTiddlerText(map,'').split('\n----\n'); if (!items) return;
		var out=['<MAP NAME="'+map+'">'];
		var fmt='<AREA SHAPE="POLY" TIDDLER="%0" COORDS="%1" TITLE="%2" ALT="%2" ONCLICK="%3" STYLE="%4">';
		var click="story.displayTiddler(story.findContainingTiddler(this),this.getAttribute('tiddler'));";
		var style='cursor:pointer';
		for (var i=0; i<items.length; i++) {
			var lines=items[i].split('\n'); var tid=lines.shift(); var coords=lines.join('');
			var tip=store.tiddlerExists(tid)?store.getTiddler(tid).getSubtitle():tid;
			out.push(fmt.format([tid,coords,tip,click,style]));
		}
		out.push('</MAP>');
		createTiddlyElement(place,'span').innerHTML=out.join('');
		img.setAttribute('isMap',true);
		img.setAttribute('useMap','#'+map);
		img.style.border=0;
	}
}
//}}}
//{{{
config.macros.mapMaker= {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var img=place.lastChild; // image element must immediately precede macro
		if (!img||img.nodeName!='IMG') return;
		img.onmousemove=function(ev){ ev=ev||window.event;
			var mX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var mY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			var vals=lines[last].split(','); vals.pop(); vals.pop(); lines[last]=vals.join(',');
			lines[last]+=(lines[last].length?',':'')+(mX-findPosX(this))+','+(mY-findPosY(this));
			ta.value=lines.join('\n');
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
			ta.focus();
		};
		img.onmouseout=function(ev){ ev=ev||window.event;
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			var vals=lines[last].split(','); vals.pop(); vals.pop(); lines[last]=vals.join(',');
			ta.value=lines.join('\n');
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
		};
		img.onmouseover=img.onclick=function(ev) { ev=ev||window.event;
			var mX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var mY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			ta.value+=(ta.value.length?',':'')+(mX-findPosX(this))+','+(mY-findPosY(this));
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
			ta.focus();
		}
		img.style.border='1px solid #999';
		img.style.cursor='crosshair';
		var map=params[0]||'';
		var s=createTiddlyElement(place,'div');
		s.style.height=s.style.width='1em';
		img.emW=s.offsetWidth; img.emH=s.offsetHeight; // get font metrics (for auto scrolling)
		s.style.height=s.style.width='';
		s.innerHTML+='<div class="toolbar">'
			+'<a href="javascript:;" '
			+'onclick="config.macros.mapMaker.load(this.parentNode.nextSibling)">load map</a>'
			+'<a href="javascript:;" '
			+'onclick="config.macros.mapMaker.save(this.parentNode.nextSibling)">save map</a>'
			+'</div>'
			+'<textarea rows="8" style="display:block;clear:both;width:100%;" tiddler="'+map+'">'
			+store.getTiddlerText(map,'')
			+'</textarea>';
	},
	load: function(ta) {
		var tid=prompt('Enter a tiddler title:',ta.getAttribute('tiddler')||'');
		if (!tid||!tid.length) return; // cancelled by user
		ta.value=store.getTiddlerText(tid,''); ta.setAttribute('tiddler',tid);
		return false;
	},
	save: function(ta) {
		var tid=prompt('Enter a tiddler title:',ta.getAttribute('tiddler')||'NewImageMap');
		while (tid && tid.length && store.tiddlerExists(tid)) {
			if(confirm(config.messages.overwriteWarning.format([tid]))) break;
			var tid=prompt('Enter a different tiddler title:',tid);
		}
		if (!tid||!tid.length) return; // cancelled by user
		store.saveTiddler(tid,tid,ta.value,config.options.txtUserName,new Date(),['imageMap'],{});
		story.displayTiddler(null,tid);
		displayMessage('image map saved to: '+tid);
		ta.setAttribute('tiddler',tid);
		return false;
	}
}
//}}}
/***
|Name|ImageMapPluginInfo|
|Source|http://www.TiddlyTools.com/#ImageMapPlugin|
|Documentation|http://www.TiddlyTools.com/#ImageMapPluginInfo|
|Version|1.2.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Requires||
|Overrides||
|Description|documentation for ImageMapPlugin|
!!!Usage
<<<
{{{
[img[...]]<<imageMap MapName>>
}}}
applies an image map to the embedded image immediately preceding the macro.   ''~MapName'' is the title of a tiddler (or a tiddler section) that contains an ''~HR-separated list'' of items, where the first line of each item is the ''tiddler to link to'' and the second line is a ''list of polygon coordinates'' using standard HTML <AREA COORDS="..."> syntax (e.g., a ''comma-separated series of X,Y pairs'': "x1,y1,x2,y2,x3,y3,...", that trace out the desired shape).
{{{
[img[...]]<<mapMaker MapName>>
}}}
adds interactive point-and-click calculation of X,Y map coordinates that are automatically entered into a text input field that you can then edit and save to a tiddler to create an ~HR-separated map definition.
<<<
!!!imageMap Example
<<<
{{{
[img[images/california.gif]]<<imageMap ImageMapPluginInfo##county_map>>
}}}
~~//(click a county to open a tiddler)//~~
[img[images/california.gif]]<<imageMap ImageMapPluginInfo##county_map>>
<<<
!!!mapMaker example
<<<
{{{
[img[images/california.gif]]<<mapMaker ImageMapPluginInfo##county_map>>
}}}
~~//(click anywhere inside image to record x,y coordinates)//~~
[img[images/california.gif]]<<mapMaker ImageMapPluginInfo##county_map>>
<<<
!!!Revisions
<<<
2009.05.14 [1.2.1] added cursor changes
2009.05.13 [1.2.0] add MAP/AREA elements using innerHTML
2009.05.12 [1.1.1] fixed mapMaker event handling for IE
2009.05.10 [1.1.0] added {{{<<mapMaker>>}}}
2009.05.10 [1.0.1] open tiddlers following current tiddler instead of at top of story column
2009.05.09 [1.0.0] initial release
<<<
!!!Sample Map
<<<
{{{
!county_map
San Francisco
50,231,51,225,54,222,55,226,55,231,50,231,50,231
----
San Mateo
59,252,60,242,58,239,55,238,54,232,49,233,50,240,50,244,50,249,54,253,59,252,59,252
----
Santa Clara
94,242,90,244,80,243,75,242,66,243,60,243,58,251,63,255,70,258,75,270,79,268,95,268,97,260,97,254,94,254,93,252,97,250,94,248,95,246,94,242,94,242
----
Alameda
94,223,95,242,90,243,80,242,75,241,65,242,66,235,63,225,70,224,80,226,94,221,94,224,95,225,95,231,94,223,94,223
----
Contra Costa
97,213,97,221,83,226,69,224,63,224,62,220,67,214,73,217,79,214,98,214,96,214,97,213,97,213
----
Santa Cruz
53,254,59,251,63,255,70,258,75,268,73,273,68,273,67,266,53,254,53,254
----
San Benito
117,292,116,302,114,304,110,302,111,307,104,304,101,306,91,292,91,288,87,288,87,285,73,273,75,271,78,269,96,270,116,292,117,292,117,292
----
Monterey
128,325,86,325,83,319,83,313,78,309,78,305,64,286,64,283,67,282,67,273,73,273,87,284,86,288,90,287,91,292,101,305,104,303,110,306,113,303,126,318,128,325,128,325
----
Fresno
123,266,133,278,149,271,164,269,170,261,176,261,176,257,181,258,182,254,190,252,194,245,203,237,211,243,213,248,211,253,218,267,221,276,215,276,214,278,195,278,195,282,179,282,177,285,166,285,162,289,154,291,152,294,146,294,146,302,126,318,116,304,118,302,116,299,117,290,106,278,123,265,123,266,123,266
----
Merced
114,249,117,245,142,238,145,245,148,249,153,251,152,256,143,256,136,258,130,262,125,263,106,278,96,269,97,261,99,255,113,250,114,249,114,249
----
Madera
167,243,173,243,174,239,178,238,179,234,192,227,194,228,193,235,198,232,203,236,192,245,188,252,180,254,180,258,172,257,175,261,168,260,163,269,146,270,132,278,122,266,124,263,130,262,135,258,142,256,151,256,152,252,167,243,167,243
----
Kings
162,324,161,303,164,302,164,295,162,294,162,289,153,291,151,295,146,295,146,303,128,318,128,325,161,324,162,324,162,324
----
Tulare
232,324,233,316,234,314,229,310,229,303,228,299,230,296,219,276,213,276,212,279,193,278,193,282,177,282,176,286,164,285,161,289,163,295,164,303,160,304,161,325,232,324,232,324
----
Mono
183,182,183,188,185,194,181,200,181,209,185,211,185,213,191,218,191,224,196,227,194,235,198,233,203,236,211,243,243,243,183,182,183,182
----
Inyo
241,243,320,324,233,324,233,317,235,314,229,310,229,303,228,299,231,295,220,276,217,267,211,253,213,247,211,242,242,244,241,243,241,243
----
San Luis Obispo
111,348,97,340,86,325,127,325,129,332,139,341,144,343,145,346,150,348,156,354,156,358,159,360,161,368,157,371,153,364,136,358,133,354,131,360,126,362,126,366,120,363,112,364,111,356,106,353,112,348,111,348,111,348
----
Santa Barbara
121,387,117,383,111,381,111,365,121,362,127,367,125,362,132,360,135,353,137,359,154,365,157,372,161,368,164,372,163,394,143,390,126,384,121,387,121,387
----
Ventura
186,402,175,401,163,395,163,372,166,369,172,371,177,376,186,376,193,397,186,402,186,402
----
Los Angeles
205,409,184,402,193,397,186,376,234,376,236,388,238,408,232,416,222,420,217,424,211,420,205,409,205,409
----
Kern
240,325,128,325,130,334,139,342,150,348,159,359,162,370,167,368,176,377,235,375,237,374,239,343,241,341,241,325,240,325,240,325
----
San Bernardino
392,401,320,324,240,325,241,342,238,345,236,374,234,377,237,407,256,422,264,413,290,414,303,417,386,414,390,409,392,401,392,401
----
Riverside
379,441,388,429,387,412,303,417,289,414,263,413,255,421,260,424,260,428,265,428,265,436,271,438,275,443,352,444,379,442,379,441,379,441
----
Orange
258,441,221,421,232,415,237,407,255,421,259,424,260,428,266,428,265,438,258,443,258,441,258,441
----
San Diego
322,482,284,484,280,475,276,464,270,451,258,440,264,437,272,438,275,443,283,445,321,444,321,483,322,482,322,482
----
Imperial
378,480,321,482,322,445,378,443,382,451,378,461,383,468,382,475,378,480,378,480
----
Stanislaus
113,229,95,240,98,257,113,249,118,244,141,237,132,228,127,214,124,230,112,229,113,229,113,229
----
Mariposa
168,228,154,225,151,228,148,227,147,231,144,231,145,236,141,237,143,245,151,254,165,242,172,243,172,238,177,238,177,234,191,227,194,226,189,224,184,221,181,223,178,220,169,229,157,226,153,226,151,229,152,229,168,228,168,228
----
Alpine
173,172,172,176,164,180,164,192,179,201,185,194,183,181,173,173,173,172,173,172
----
Calaveras
125,203,127,214,132,223,144,220,165,195,163,191,158,194,150,194,135,203,125,203,125,203
----
San Joaquin
108,205,97,213,97,222,94,225,95,240,113,229,124,229,127,215,125,203,120,206,107,206,108,205,108,205
----
Amador
125,189,126,194,125,203,135,203,150,194,158,194,163,191,164,179,154,186,142,189,124,189,125,189,125,189
----
Sacramento
83,212,96,213,107,205,118,205,124,203,125,195,123,188,120,180,104,180,106,189,103,197,102,203,94,206,93,210,79,212,83,212,83,212
----
Yolo
102,174,98,174,97,170,92,165,68,164,74,178,79,181,81,189,91,190,93,187,97,187,99,197,104,197,106,189,104,180,102,174,102,174
----
Solano
79,197,72,204,73,209,82,211,94,210,95,205,103,203,104,196,98,196,97,186,91,187,90,190,80,189,78,193,79,197,79,197
----
Napa
58,177,59,183,65,192,65,205,71,204,79,197,77,192,80,188,78,181,73,178,67,164,64,166,64,173,58,177,58,177
----
Sonoma
24,168,48,165,56,175,57,182,64,192,64,203,45,198,43,191,32,180,31,176,23,168,24,168,24,168
----
Marin
44,210,50,212,52,216,57,218,60,217,59,212,62,210,64,203,46,199,43,209,44,210,44,210
----
Tuolumne
165,195,144,219,131,223,132,227,142,237,146,236,145,230,149,230,149,226,154,228,155,225,169,228,178,220,182,222,185,221,190,225,190,218,185,213,185,210,180,209,180,200,165,193,164,196,165,195,165,195
----
Mendocino
10,107,16,116,16,126,15,132,20,151,21,161,24,169,50,165,43,158,46,155,46,150,43,145,45,137,53,132,53,114,56,109,11,108,10,107,10,107
----
Humboldt
21,38,17,50,19,59,12,70,9,70,1,85,2,92,10,107,31,108,33,73,32,65,39,65,39,59,45,53,43,51,44,42,33,43,30,37,21,37,21,38,21,38
----
Del Norte
24,14,19,24,20,37,29,37,32,43,37,42,38,37,35,34,42,31,43,21,50,15,24,14,24,14
----
Siskiyou
130,19,51,15,44,21,43,31,36,33,39,37,38,43,43,42,42,50,45,53,54,57,55,61,59,61,59,65,64,61,69,63,67,54,71,52,76,54,80,48,90,46,90,55,131,57,132,31,129,30,130,19,130,19
----
Modoc
183,22,130,19,131,57,179,60,182,22,183,22,183,22
----
Trinity
56,98,57,102,55,105,55,109,31,108,33,72,31,65,39,65,40,58,44,52,54,57,55,61,58,61,58,65,65,61,69,63,67,53,71,52,76,55,79,47,90,46,90,55,90,59,75,70,70,84,56,98,56,98
----
Shasta
124,95,120,96,115,94,111,96,94,96,83,97,78,95,71,98,67,96,57,98,69,84,74,70,90,59,89,54,131,57,132,93,124,95,124,95
----
Tehama
130,105,125,110,109,116,104,122,93,122,93,124,53,122,53,114,57,108,55,106,56,101,56,97,65,96,71,98,77,95,84,98,94,97,112,96,116,94,120,96,123,95,126,98,126,101,130,105,130,105
----
Lake
64,150,67,162,64,167,64,173,58,178,50,164,42,159,46,154,46,149,43,145,45,137,52,133,55,131,61,132,61,141,55,141,54,143,57,149,63,151,64,151,64,150,64,150
----
Colusa
95,143,92,149,92,156,94,164,67,163,64,151,57,149,53,143,56,141,83,142,84,140,87,141,89,143,95,143,95,143
----
Glenn
99,131,97,133,97,137,101,139,96,143,89,143,86,141,82,140,82,142,60,142,61,132,55,131,53,123,92,123,99,131,99,131
----
Sutter
113,166,111,170,111,179,103,180,102,174,97,173,97,169,93,164,92,156,91,149,108,151,108,157,113,166,113,166
----
Butte
120,143,115,144,115,146,107,151,91,149,95,143,101,139,96,137,96,132,99,131,92,123,102,122,109,116,125,109,128,117,126,124,130,128,132,135,126,140,121,138,120,143,120,143
----
El Dorado
170,160,163,160,157,164,149,164,148,167,131,166,122,177,126,188,143,188,155,185,162,180,172,176,173,172,170,169,170,160,170,160
----
Placer
171,152,146,151,138,158,135,158,129,163,121,161,113,165,111,170,111,179,120,179,122,177,131,166,146,168,150,164,157,164,163,161,171,160,171,153,171,152,171,152
----
Yuba
135,145,131,145,129,148,124,150,122,159,113,166,108,157,108,151,115,146,115,143,122,143,120,139,127,140,133,135,135,134,135,145,135,145
----
Nevada
172,143,150,142,146,139,136,144,131,144,129,148,124,150,122,161,130,164,136,157,138,158,146,151,170,152,171,143,171,144,172,143,172,143
----
Sierra
172,131,145,130,139,126,134,134,134,145,145,139,150,143,172,144,173,131,172,131,172,131
----
Plumas
141,94,124,94,126,102,130,105,125,110,128,117,126,124,130,129,132,134,140,126,145,130,168,131,171,124,169,117,154,102,149,103,148,106,141,102,141,93,141,94,141,94
----
Lassen
177,93,174,130,167,131,170,124,169,115,153,101,148,104,148,106,141,103,141,93,132,93,131,59,179,60,176,94,177,93,177,93
!end county_map
}}}
<<<
***/
 
images/
<<icap "[<img[The Turning Torso|images/TurningTorso.jpg]]">><<icap "[<img[Ballpoint pens|images/533629.jpg]]">> <<icap "[<img[Silica Nanoparticle|images/d10.jpg]]">>
!Former collaborating companies

We have previously collaborated with the following companies

[[EKA Chemicals AB|http://www.colloidalsilica.com/]]

[[GridCore AB|http://www.gridcore.se/]]
<html>
<div class="csl-bib-body">
<div class="csl-entry">Steven R. Kirk and Samantha Jenkins, “Information Theory-based Software Metrics and Obfuscation”, <i>Journal of Systems and Software</i> 72, no. 2 (July 2004): 179–186.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2FS0164-1212(03)00217-6&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Information%20theory-based%20software%20metrics%20and%20obfuscation&amp;rft.jtitle=Journal%20of%20Systems%20and%20Software&amp;rft.volume=72&amp;rft.issue=2&amp;rft.aufirst=Steven%20R.&amp;rft.aulast=Kirk&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Samantha%20Jenkins&amp;rft.date=2004-07&amp;rft.pages=179-186&amp;rft.spage=179&amp;rft.epage=186"/></div></html>DOI: [[10.1016/S0164-1212(03)00217-6|http://dx.doi.org/10.1016/S0164-1212(03)00217-6]].
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?(?: key=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",

	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // external script library
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // inline code
				if (show) // display source in tiddler
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create 'onclick' command link
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
					var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
					link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
					link.tiddler=w.tiddler;
					link.onclick=function(){
						this.bufferedHTML="";
						try{ var r=eval(this.code);
							if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
								var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
							if(this.bufferedHTML.length)
								s.innerHTML=this.bufferedHTML;
							if((typeof(r)==="string")&&r.length) {
								wikify(r,s,null,this.tiddler);
								return false;
							} else return r!==undefined?r:false;
						} catch(e){alert(e.description||e.toString());return false;}
					};
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run script immediately
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
					try	 { var out=eval(c); }
					catch(e) { out=e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}

// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
	if(limit > 0) text = text.substr(0,limit);
	var wikifier = new Wikifier(text,formatter,null,tiddler);
	return wikifier.wikifyPlain();
}
//}}}

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/***
|Name|InlineJavascriptPluginInfo|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.4|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|Documentation for InlineJavascriptPlugin|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
This plugin adds wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be recognized as embedded javascript code.
<script show>
	/* javascript code goes here... */
</script>Every time the tiddler content is rendered, the javascript code is automatically evaluated, allowing you to invoke 'side-effect' processing and/or produce dynamically-generated content that is then inserted into the tiddler content, immediately following the script (see below).  By including the optional ''show'' keyword as the final parameter in a {{{<script>}}} marker, the plugin will also include the script source code in the output that it displays in the tiddler.  This is helpful when creating examples for documentation purposes (such as used in this tiddler!)

__''Deferred execution from an 'onClick' link''__
<script label="click here" title="mouseover tooltip text" key="X" show>
	/* javascript code goes here... */
	alert('you clicked on the link!');
</script>
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.  You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text, and a {{{key="X"}}} parameter to specify an //access key// (which must be a //single// letter or numeric digit only).

__''Loading scripts from external source files''__
<script src="URL" show>
	/* optional javascript code goes here... */
</script>You can also load javascript directly from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}).  This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins.  The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.

In addition to loading the javascript from the external file, you can also use this feature to invoke javascript code contained within the {{{<script>...</script>}}} markers.  This code is invoked //after// the external script file has been processed, and can make immediate use of the functions and/or global variables defined by the external script file.
>Note: To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that is rendered as soon as your TiddlyWiki document is opened, such as MainMenu.  For example: put your {{{<script src="..."></script>}}} syntax into a separate 'library' tiddler (e.g., LoadScripts), and then add {{{<<tiddler LoadScripts>>}}} to MainMenu so that the library is loaded before any other tiddlers that rely upon the functions it defines. 
>
>Normally, loading external javascript in this way does not produce any direct output, and should not have any impact on the appearance of your MainMenu.  However, if your LoadScripts tiddler contains notes or other visible content, you can suppress this output by using 'inline CSS' in the MainMenu, like this: {{{@@display:none;<<tiddler LoadScripts>>@@}}}
<<<
!!!!!Creating dynamic tiddler content and accessing the ~TiddlyWiki DOM
<<<
An important difference between TiddlyWiki inline scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document: in a typical web document, you use the {{{document.write()}}} (or {{{document.writeln()}}}) function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.

However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and instead will //completely replace the entire ~TiddlyWiki document in your browser window (which is clearly not a good thing!)//.  In order to allow scripts to use {{{document.write()}}}, the plugin automatically converts and buffers all HTML output so it can be safely inserted into your tiddler content, immediately following the script.

''Note that {{{document.write()}}} can only be used to output "pure HTML" syntax.  To produce //wiki-formatted// output, your script should instead return a text value containing the desired wiki-syntax content'', which will then be automatically rendered immediately following the script.  If returning a text value is not sufficient for your needs, the plugin also provides an automatically-defined variable, 'place', that gives the script code ''direct access to the //containing DOM element//'' into which the tiddler output is being rendered.  You can use this variable to ''perform direct DOM manipulations'' that can, for example:
* generate wiki-formatted output using {{{wikify("...content...",place)}}}
* vary the script's actions based upon the DOM element in which it is embedded
* access 'tiddler-relative' DOM information using {{{story.findContainingTiddler(place)}}}
Note:
''When using an 'onclick' script, the 'place' element actually refers to the onclick //link text// itself, instead of the containing DOM element.''  This permits you to directly reference or modify the link text to reflect any 'stateful' conditions that might set by the script.  To refer to the containing DOM element from within an 'onclick' script, you can use "place.parentNode" instead.
<<<
!!!!!Instant "bookmarklets"
<<<
You can also use an 'onclick' link to define a "bookmarklet": a small piece of javascript that can be ''invoked directly from the browser without having to be defined within the current document.''  This allows you to create 'stand-alone' commands that can be applied to virtually ANY TiddlyWiki document... even remotely-hosted documents that have been written by others!!  To create a bookmarklet, simply define an 'onclick' script and then grab the resulting link text and drag-and-drop it onto your browser's toolbar (or right-click and use the 'bookmark this link' command to add it to the browser's menu).

Notes:
*When writing scripts intended for use as bookmarklets, due to the ~URI-encoding required by the browser, ''you cannot not use ANY double-quotes (") within the bookmarklet script code.''
*All comments embedded in the bookmarklet script must ''use the fully-delimited {{{/* ... */}}} comment syntax,'' rather than the shorter {{{//}}} comment syntax.
*Most importantly, because bookmarklets are invoked directly from the browser interface and are not embedded within the TiddlyWiki document, there is NO containing 'place' DOM element surrounding the script.  As a result, ''you cannot use a bookmarklet to generate dynamic output in your document,''  and using {{{document.write()}}} or returning wiki-syntax text or making reference to the 'place' DOM element will halt the script and report a "Reference Error" when that bookmarklet is invoked.  
Please see [[InstantBookmarklets]] for many examples of 'onclick' scripts that can also be used as bookmarklets.
<<<
!!!!!Special reserved function name
<<<
The plugin 'wraps' all inline javascript code inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler.  To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.
<<<
!!!!!$(...) 'shorthand' function
<<<
As described by Dustin Diaz [[here|http://www.dustindiaz.com/top-ten-javascript/]], the plugin defines a 'shorthand' function that allows you to write:
{{{
$(id)
}}}
in place of the normal standard javascript syntax:
{{{
document.getElementById(id)
}}}
This function is provided merely as a convenience for javascript coders that may be familiar with this abbreviation, in order to allow them to save a few bytes when writing their own inline script code.
<<<
!!!!!Examples
<<<
simple dynamic output:
><script show>
	document.write("The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
	if (!window.story) window.story=window;
	var title=story.findContainingTiddler(place).getAttribute("tiddler");
	var size=store.getTiddlerText(title).length;
	return title+" is using "+size+" bytes";
</script>
dynamic output from an 'onclick' script, using {{{document.write()}}} and/or {{{return "..."}}}
><script label="click here" show>
	document.write("<br>The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
creating an 'onclick' button/link that accesses the link text AND the containing tiddler:
><script label="click here" title="clicking this link will show an 'alert' box" key="H" show>
	if (!window.story) window.story=window;
	var txt=place.firstChild.data;
	var tid=story.findContainingTiddler(place).getAttribute('tiddler');
	alert('Hello World!\nlinktext='+txt+'\ntiddler='+tid);
</script>
dynamically setting onclick link text based on stateful information:
>{{block{
{{{
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.previousSibling.innerHTML=on?"disable":"enable";
</script>
}}}
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.innerHTML=on?"enable":"disable";
</script>
}}}
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function inlineJavascriptDemo() { alert('Hello from demo.js!!') } }}}
>>{{{displayMessage('InlineJavascriptPlugin: demo.js has been loaded');}}}
>note: When using this example on your local system, you will need to download the external script file from the above URL and install it into the same directory as your document.
>
><script src="demo.js" show>
	return "inlineJavascriptDemo() function has been defined"
</script>
><script label="click to invoke inlineJavascriptDemo()" key="D" show>
	inlineJavascriptDemo();
</script>
<<<
!!!!!Revisions
<<<
2009.02.26 1.9.4 in $(), handle leading '#' on ID for compatibility with JQuery syntax
2008.06.11 1.9.3 added $(...) function as 'shorthand' for document.getElementById()
2008.03.03 1.9.2 corrected fallback declaration of wikifyPlainText() (fixes Safari "parse error")
2008.02.23 1.9.1 in onclick function, use string instead of array for 'bufferedHTML' (fixes IE errors)
2008.02.21 1.9.0 output from 'onclick' scripts (return value or document.write() calls) are now buffered and rendered into into a span following the script.  Also, added default 'return false' handling if no return value provided (prevents HREF from being triggered -- return TRUE to allow HREF to be processed).  Thanks to Xavier Verges for suggestion and preliminary code.
2008.02.14 1.8.1 added backward-compatibility for use of wikifyPlainText() in TW2.1.3 and earlier
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info tiddler
2007.12.28 1.8.0 added support for key="X" syntax to specify custom access key definitions
2007.12.15 1.7.0 autogenerate URI encoded HREF on links for onclick scripts.  Drag links to browser toolbar to create bookmarklets.  IMPORTANT NOTE: place is NOT defined when scripts are used as bookmarklets.  In addition, double-quotes will cause syntax errors.  Thanks to PaulReiber for debugging and brainstorming.
2007.11.26 1.6.2 when converting "document.write()" function calls in inline code, allow whitespace between "write" and "(" so that "document.write ( foobar )" is properly converted.
2007.11.16 1.6.1 when rendering "onclick scripts", pass label text through wikifyPlainText() to parse any embedded wiki-syntax to enable use of HTML entities or even TW macros to generate dynamic label text.
2007.02.19 1.6.0 added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
2006.10.16 1.5.2 add newline before closing '}' in 'function out_' wrapper.  Fixes error caused when last line of script is a comment.
2006.06.01 1.5.1 when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
2006.04.19 1.5.0 added 'show' parameter to force display of javascript source code in tiddler output
2006.01.05 1.4.0 added support 'onclick' scripts.  When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked.  'place' value is set to match the clicked button/link element.
2005.12.13 1.3.1 when catching eval error in IE, e.description contains the error text, instead of e.toString().  Fixed error reporting so IE shows the correct response text.  Based on a suggestion by UdoBorkowski
2005.11.09 1.3.0 for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content.  Based on a suggestion by BradleyMeck
2005.11.08 1.2.0 handle loading of javascript from an external URL via src="..." syntax
2005.11.08 1.1.0 pass 'place' param into scripts to provide direct DOM access 
2005.11.08 1.0.0 initial release
<<<
<html><div " class="csl-entry">
    <div>C. Zhang, Z. Fu, Y. C. Liu, B. Dai, Y. Zou, X. Gong, Y. Wang, X. Deng, H. Wu, Q. Xu, S.R. Kirk, D.Yin, “Ionic liquid-functionalized biochar sulfonic acid as a biomimetic catalyst for hydrolysis of cellulose and bamboo under microwave irradiation,” <i>Green Chem.</i> <b>14</b>(7), 1928–1934 (2012) .</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1039%2FC2GC35071H&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Ionic%20liquid-functionalized%20biochar%20sulfonic%20acid%20as%20a%20biomimetic%20catalyst%20for%20hydrolysis%20of%20cellulose%20and%20bamboo%20under%20microwave%20irradiation&amp;rft.jtitle=Green%20Chemistry&amp;rft.stitle=Green%20Chem.&amp;rft.volume=14&amp;rft.issue=7&amp;rft.aufirst=Chao&amp;rft.aulast=Zhang&amp;rft.au=Chao%20Zhang&amp;rft.au=Zaihui%20Fu&amp;rft.au=Ya%20Chun%20Liu&amp;rft.au=Baohua%20Dai&amp;rft.au=Yanhong%20Zou&amp;rft.au=Xinglang%20Gong&amp;rft.au=Yanlong%20Wang&amp;rft.au=Xiaolin%20Deng&amp;rft.au=Haitao%20Wu&amp;rft.au=Qiong%20Xu&amp;rft.au=Kirk%20R.%20Steven&amp;rft.au=Dulin%20Yin&amp;rft.date=2012-07-01&amp;rft.pages=1928-1934&amp;rft.spage=1928&amp;rft.epage=1934&amp;rft.issn=1463-9270"></span>
</div></html>DOI: [[doi:10.1039/C2GC35071H|http:dx.doi.org/10.1039/C2GC35071H]].
<html>
<div class="csl-bib-body">
  <div class="csl-entry">
    <div>W. Wu, Z. Fu, X. Wen, Y. Wang, S. Zou, Y. Meng, Y. Liu, S. R. Kirk, and D. Yin, “Light-triggered oxy-chlorination of cyclohexane by metal chlorides”, <i>Applied Catalysis A: General</i> <b>469</b>, 483–489 (2014).</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2Fj.apcata.2013.08.045&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Light-triggered%20oxy-chlorination%20of%20cyclohexane%20by%20metal%20chlorides&amp;rft.jtitle=Applied%20Catalysis%20A%3A%20General&amp;rft.stitle=Applied%20Catalysis%20A%3A%20General&amp;rft.volume=469&amp;rft.aufirst=Wenfeng&amp;rft.aulast=Wu&amp;rft.au=Wenfeng%20Wu&amp;rft.au=Zaihui%20Fu&amp;rft.au=Xu%20Wen&amp;rft.au=Yongjun%20Wang&amp;rft.au=Shuai%20Zou&amp;rft.au=Yue%20Meng&amp;rft.au=Yachun%20Liu&amp;rft.au=Steven%20Robert%20Kirk&amp;rft.au=Dulin%20Yin&amp;rft.date=2014&amp;rft.pages=483-489&amp;rft.spage=483&amp;rft.epage=489&amp;rft.issn=0926-860X"></span></div></html>DOI: [[10.1016/j.apcata.2013.08.045|http://dx.doi.org/10.1016/j.apcata.2013.08.045]].
!Measurements in Computer Engineering MDD900 course

Students on the course on the Masters program in Computer Science taking the course MDD900 at University West are required to carry out a project (please consult the course page on Disco for official details) in which experimental design techniques are used to investigate the variation of performance of a software, hardware or network-based system, based on a set of well-chosen factors.

Predefined projects will be listed further down this page as they are developed, but ''student themselves'' are responsible for suggesting, formulating (with approval from the teacher), carrying out and presenting their own projects in written form. 

!!MDD900 Resources

A number of available resources are listed here for student carrying out MDD900 projects.

!!!Hardware
* A 6-node Linux cluster, named 'toaster'. This would be ideal for projects based on the MPI message-passing protocol.
* A Q9550 quad-core PC (4Gb RAM)
* An AMD Phenom dual-core PC with 4Gb RAM and a ~FireStream 9170 GPU card (processor and GPU kindly donated by AMD Sweden)  - this would be ideal for a project based on evaluating performance of algorithms implemented in ~OpenCL, a programming framework designed to allows software to run transparently on ~CPUs, ~GPUs or, significantly, a combination of these. 
* Access to a Q9550 quad-core with a ~GTX260(216) graphics card for GPU projects based on ~NVidia CUDA may also be available, depending on demand.

!!!Useful Software
* [[DAKOTA: A Multilevel Parallel ~Object-Oriented Framework for Design Optimization, Parameter Estimation, Uncertainty Quantification, and Sensitivity Analysis|http://www.cs.sandia.gov/DAKOTA/index.html]]. This code, written in C++, provides a useful wrapper for almost any type of simulation or performance-critical application which can be used to investigate, using Design of Experiments or optimization techniques, the variation of multiple configuration factors on performance. It is currently planned to install this code on the first quad-core system mentioned above, and also on the toaster cluster.
* [[OpenFOAM|http://www.opencfd.co.uk/openfoam/]] - a simulation code used to model physical systems governed by partial differential equations. This code is widely used in engineering-based industries, and provides a good testbed for performance evaluation. This will be installed on the first quad-core system above, and also (possibly) on the 'toaster' cluster.
* [[IOBENCH|http://dimitrik.free.fr/IObench.html]] - code to benchmark IO operations
* [[BONNIE++|http://www.coker.com.au/bonnie++/]] - a benchmark of hard drive and filesystem performance
* [[lmbench|http://www.bitmover.com/lmbench/]] - multiple low-level (micro) benchmarks for Unix systems
* [[CUDA|http://www.nvidia.com/object/cuda_home.html]] - programming toolkit for ~NVidia ~GPUs. If you have a PC with a reasonably up-to-date ~NVidia graphics card in it, there is a good chance you will be able to use it to run CUDA programs and develop GPU codes on it.
* Other collections of open-source codes for measuring program/network/web performance can be found [[here| http://www.opensourcetesting.org/performance.php]], [[here|http://lbs.sourceforge.net/]],  [[here|http://www.noc.ucf.edu/Tools/Iperf/]] and [[here|http://www.ars.de/ars/ars.nsf/docs/netio]].


A 'Live DVD' based on Linux (~OpenSuse 11.1), containing runnable forms of some of this software, is being developed, so that students can run this software on any machine where they can boot from a DVD. More news on this soon.

!!Projects based on ~OpenFOAM
Our research partner company Gridcore AB is interested in having a number of test cases for the engineering software ~OpenFOAM. Knowledge of engineering or physical systems will be a strong advantage. Gridcore wants test cases where problems with exact analytic (i.e. in the form of an equation) solutions are compared with numerical (i.e. generated by techniques such as finite element, finite volume) solutions. The goal of these test cases is to evaluate the global difference between the analytic and numerical solutions, and possibly also the run time, as a function of a number of factors defining how the numerical simulation is set up (e.g. grid density, element size and amount of variation allowed in these variables, etc.).The study should be formulated in terms of an experimental design to formulate a predictive model. All students interested in doing this type of project should coordinate between themselves to make sure that they are not repeating the test cases used by others, as all students on this course must produce their own individual report based on work carried out on an individual basis. The distributed Live DVD for ~OpenFOAM contains a number of example cases: you can also download documentation for ~OpenFOAM from the software's home page.  ''Any difficulties arising from this type of project should be addressed directly to myself (Dr. Samantha Jenkins), NOT Gridcore AB''.
 
!!!Tips
* In Linux, one can apparently set processor affinity (or, in this case core affinity) with 'taskset'. The command is used like this:
taskset <bitmask> command
where <bitmask> is a hexadecimal bit mask with the cpus to use (in a format like 0xff, where 0xff enables the first 8 cpus on a system).
[[BEACON]]
----
[[Hunan Normal University|http://www.hunnu.edu.cn/english/]]
----
[[Older BEACON Project pages|OldBEACON]]
----
[[Project News]]
----
[[Funding And Consortia]]
----
[[Members]]
----
[[Industrial Collaborators]]
----
[[Academic Collaborators]]
----
[[Publications, Conferences & Talks]]
----
[[Computational Chemistry Notes|cc/ccnotes.htm]]
----
[[AIMPAC2]]
----
[[MEMBERS LOGIN|http://beacon.grouploop.com/]]
----
<<search>>
----
TW <<version>>
<<tiddler ToggleRightSidebar>>
!Inline Formatting /% DEBUG: buggy (-> monospaced) %/
|!Option|!Syntax|!Output|
|bold font|{{{''bold''}}}|''bold''|
|italic type|{{{//italic//}}}|//italic//|
|underlined text|{{{__underlined__}}}|__underlined__|
|strikethrough text|{{{--strikethrough--}}}|--strikethrough--|
|superscript text|{{{^^super^^script}}}|^^super^^script|
|subscript text|{{{~~sub~~script}}}|~~sub~~script|
|highlighted text|{{{@@highlighted@@}}}|@@highlighted@@|
|preformatted text|{{{{{{preformatted}}}}}}|{{{preformatted}}}|
!Block Elements
!!Headings
{{{
!Heading 1
!!Heading 2
!!!Heading 3
!!!!Heading 4
!!!!!Heading 5
}}}
<<<
!Heading 1
!!Heading 2
!!!Heading 3
!!!!Heading 4
!!!!!Heading 5
<<<
!!Lists
{{{
* unordered list, level 1
** unordered list, level 2
*** unordered list, level 3

# ordered list, level 1
## ordered list, level 2
### unordered list, level 3

; definition list, term
: definition list, description
}}}
<<<
* unordered list, level 1
** unordered list, level 2
*** unordered list, level 3

# ordered list, level 1
## ordered list, level 2
### unordered list, level 3

; definition list, term
: definition list, description
<<<
!!Blockquotes /% DEBUG: hack %/
{{{
> blockquote, level 1
>> blockquote, level 2
>>> blockquote, level 3

<<<
blockquote
<<<
}}}
<<<
> blockquote, level 1
>> blockquote, level 2
>>> blockquote, level 3

> blockquote
<<<
!!Preformatted Text /% DEBUG: hack %/
{{{
 {{{
 preformatted (e.g. code)
 }}}
}}}
<<<
{{{
preformatted (e.g. code)
}}}
<<<
!!Tables
{{{
|CssClass|k
|!heading column 1|!heading column 2|
|row 1, column 1|row 1, column 2|
|row 2, column 1|row 2, column 2|
|>|COLSPAN|
|ROWSPAN| … |
|~| … |
|CssProperty:value;…| … |
|caption|c
}}}
''Annotation:''
* The {{{>}}} marker creates a "colspan", causing the current cell to merge with the one to the right.
* The {{{~}}} marker creates a "rowspan", causing the current cell to merge with the one above.
<<<
|CssClass|k
|!heading column 1|!heading column 2|
|row 1, column 1|row 1, column 2|
|row 2, column 1|row 2, column 2|
|>|COLSPAN|
|ROWSPAN| … |
|~| … |
|CssProperty:value;…| … |
|caption|c
<<<
!!Images /% DEBUG: to do %/
cf. [[TiddlyWiki.com|http://www.tiddlywiki.com/#EmbeddedImages]]
!Hyperlinks
* [[WikiWords|WikiWord]] are automatically transformed to hyperlinks to the respective tiddler
** the automatic transformation can be suppressed by preceding the respective WikiWord with a tilde ({{{~}}}): {{{~WikiWord}}}
* [[PrettyLinks]] are enclosed in square brackets and contain the desired tiddler name: {{{[[tiddler name]]}}}
** optionally, a custom title or description can be added, separated by a pipe character ({{{|}}}): {{{[[title|target]]}}}<br>'''N.B.:''' In this case, the target can also be any website (i.e. URL).
!Custom Styling
* {{{@@CssProperty:value;CssProperty:value;…@@}}}<br>''N.B.:'' CSS color definitions should use lowercase letters to prevent the inadvertent creation of WikiWords.
* {{{{{customCssClass{…}}}}}} /% DEBUG: buggy %/
* raw HTML can be inserted by enclosing the respective code in HTML tags: {{{<html> … </html>}}}
!Special Markers
* {{{<br>}}} forces a manual line break
* {{{----}}} creates a horizontal ruler
* [[HTML entities|http://www.tiddlywiki.com/#HtmlEntities]]
* {{{<<macroName>>}}} calls the respective [[macro|Macros]]
* To hide text within a tiddler so that it is not displayed, it can be wrapped in {{{/%}}} and {{{%/}}}.<br/>This can be a useful trick for hiding drafts or annotating complex markup.
* To prevent wiki markup from taking effect for a particular section, that section can be enclosed in three double quotes: e.g. {{{"""WikiWord"""}}}.
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-9450712-1");
pageTracker._trackPageview();
} catch(err) {}</script>
/***
|Name|MatchTagsPlugin|
|Source|http://www.TiddlyTools.com/#MatchTagsPlugin|
|Documentation|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|Version|2.0.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|'tag matching' with full boolean expressions (AND, OR, NOT, and nested parentheses)|
!!!!!Documentation
> see [[MatchTagsPluginInfo]]
!!!!!Revisions
<<<
2011.10.28 2.0.6 added .matchTags CSS class to popups to enable custom styling via StyleSheet
2011.01.23 2.0.5 fix core tweak for TW262+: adjust code in config.filters['tag'] instead of filterTiddlers()
2010.08.11 2.0.4 in getMatchingTiddlers(), fixed sorting for descending order (e.g, "-created")
| please see [[MatchTagsPluginInfo]] for additional revision details |
2008.02.28 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.MatchTagsPlugin= {major: 2, minor: 0, revision: 6, date: new Date(2011,10,28)};

// store.getMatchingTiddlers() processes boolean expressions for tag matching
//    sortfield (optional) sets sort order for tiddlers - default=title
//    tiddlers (optional) use alternative set of tiddlers (instead of current store)
TiddlyWiki.prototype.getMatchingTiddlers = function(tagexpr,sortfield,tiddlers) {

	var debug=config.options.chkDebug; // abbreviation
	var cmm=config.macros.matchTags; // abbreviation
	var r=[]; // results are an array of tiddlers
	var tids=tiddlers||store.getTiddlers();
	if (tids && sortfield) tids=store.sortTiddlers(tids,sortfield);
	if (debug) displayMessage(cmm.msg1.format([tids.length]));

	// try simple lookup to quickly find single tags or tags that
	// contain boolean operators as literals, e.g. "foo and bar"
	for (var t=0; t<tids.length; t++)
		if (tids[t].isTagged(tagexpr)) r.pushUnique(tids[t]);
	if (r.length) {
		if (debug) displayMessage(cmm.msg4.format([r.length,tagexpr]));
		return r;
	}
	
	// convert expression into javascript code with regexp tests,
	// so that "tag1 AND ( tag2 OR NOT tag3 )" becomes
	// "/\~tag1\~/.test(...) && ( /\~tag2\~/.test(...) || ! /\~tag3\~/.test(...) )"

	// normalize whitespace, tokenize operators, delimit with "~"
	var c=tagexpr.trim(); // remove leading/trailing spaces
	c = c.replace(/\s+/ig," "); // reduce multiple spaces to single spaces
	c = c.replace(/\(\s?/ig,"~(~"); // open parens
	c = c.replace(/\s?\)/ig,"~)~"); // close parens
	c = c.replace(/(\s|~)?&&(\s|~)?/ig,"~&&~"); // &&
	c = c.replace(/(\s|~)AND(\s|~)/ig,"~&&~"); // AND
	c = c.replace(/(\s|~)?\|\|(\s|~)?/ig,"~||~"); // ||
	c = c.replace(/(\s|~)OR(\s|~)/ig,"~||~"); // OR
	c = c.replace(/(\s|~)?!(\s|~)?/ig,"~!~"); // !
	c = c.replace(/(^|~|\s)NOT(\s|~)/ig,"~!~"); // NOT
	c = c.replace(/(^|~|\s)NOT~\(/ig,"~!~("); // NOT(
	// change tag terms to regexp tests
	var terms=c.split("~"); for (var i=0; i<terms.length; i++) { var t=terms[i];
		if (/(&&)|(\|\|)|[!\(\)]/.test(t) || t=="") continue; // skip operators/parens/spaces
		if (t==config.macros.matchTags.untaggedKeyword)
			terms[i]="tiddlertags=='~~'"; // 'untagged' tiddlers
		else
			terms[i]="/\\~"+t+"\\~/.test(tiddlertags)";
	}
	c=terms.join(" ");
	if (debug) { displayMessage(cmm.msg2.format([tagexpr])); displayMessage(cmm.msg3.format([c])); }

	// scan tiddlers for matches
	for (var t=0; t<tids.length; t++) {
	 	// assemble tags from tiddler into string "~tag1~tag2~tag3~"
		var tiddlertags = "~"+tids[t].tags.join("~")+"~";
		try { if(eval(c)) r.push(tids[t]); } // test tags
		catch(e) { // error in test
			displayMessage(cmm.msg2.format([tagexpr]));
			displayMessage(cmm.msg3.format([c]));
			displayMessage(e.toString());
			break; // skip remaining tiddlers
		}
	}
	if (debug) displayMessage(cmm.msg4.format([r.length,tagexpr]));
	return r;
}
//}}}
//{{{
config.macros.matchTags = {
	msg1: "scanning %0 input tiddlers",
	msg2: "looking for '%0'",
	msg3: "using expression: '%0'",
	msg4: "found %0 tiddlers matching '%1'",
	noMatch: "no matching tiddlers",
	untaggedKeyword: "-",
	untaggedLabel: "no tags",
	untaggedPrompt: "show tiddlers with no tags",
	defTiddler: "MatchingTiddlers",
	defTags: "",
	defFormat: "[[%0]]",
	defSeparator: "\n",
	reportHeading: "Found %0 tiddlers tagged with: '{{{%1}}}'\n----\n",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var mode=params[0]?params[0].toLowerCase():'';
		if (mode=="inline")
			params.shift();
		if (mode=="report" || mode=="panel") {
			params.shift();
			var target=params.shift()||this.defTiddler;
		}
		if (mode=="popup") {
			params.shift();
			if (params[0]&&params[0].substr(0,6)=="label:") var label=params.shift().substr(6);
			if (params[0]&&params[0].substr(0,7)=="prompt:") var prompt=params.shift().substr(7);
		} else {
			var fmt=(params.shift()||this.defFormat).unescapeLineBreaks();
			var sep=(params.shift()||this.defSeparator).unescapeLineBreaks();
		}
		var sortBy="+title";
		if (params[0]&&params[0].substr(0,5)=="sort:") sortBy=params.shift().substr(5);
		var expr = params.join(" ");
		if (mode!="panel" && (!expr||!expr.trim().length)) return;
		if (expr==this.untaggedKeyword)
			{ var label=this.untaggedLabel; var prompt=this.untaggedPrompt };
		switch (mode) {
			case "popup": this.createPopup(place,label,expr,prompt,sortBy); break;
			case "panel": this.createPanel(place,expr,fmt,sep,sortBy,target); break;
			case "report": this.createReport(target,this.defTags,expr,fmt,sep,sortBy); break;
			case "inline": default: this.createInline(place,expr,fmt,sep,sortBy); break;
		}
	},
	formatList: function(tids,fmt,sep) {
		var out=[];
		for (var i=0; i<tids.length; i++) { var t=tids[i];
			var title=t.title;
			var who=t.modifier;
			var when=t.modified.toLocaleString();
			var text=t.text;
			var first=t.text.split("\n")[0];
			var desc=store.getTiddlerSlice(t.title,"description");
			desc=desc||store.getTiddlerSlice(t.title,"Description");
			desc=desc||store.getTiddlerText(t.title+"##description");
			desc=desc||store.getTiddlerText(t.title+"##Description");
			var tags=t.tags.length?'[['+t.tags.join(']] [[')+']]':'';
			out.push(fmt.format([title,who,when,text,first,desc,tags]));
		}
		return out.join(sep);
	},
	createInline: function(place,expr,fmt,sep,sortBy) {
		wikify(this.formatList(store.sortTiddlers(store.getMatchingTiddlers(expr),sortBy),fmt,sep),place);
	},
	createPopup: function(place,label,expr,prompt,sortBy) {
		var btn=createTiddlyButton(place,
			(label||expr).format([expr]),
			(prompt||config.views.wikified.tag.tooltip).format([expr]),
			function(ev){ return config.macros.matchTags.showPopup(this,ev||window.event); });
		btn.setAttribute("sortBy",sortBy);
		btn.setAttribute("expr",expr);
	},
	showPopup: function(here,ev) {
		var p=Popup.create(here,null,"matchTags popup"); if (!p) return false;
		var tids=store.getMatchingTiddlers(here.getAttribute("expr"));
		store.sortTiddlers(tids,here.getAttribute("sortBy"));
		var list=[]; for (var t=0; t<tids.length; t++) list.push(tids[t].title);
		if (!list.length) createTiddlyText(p,this.noMatch);
		else {
			var b=createTiddlyButton(createTiddlyElement(p,"li"),
				config.views.wikified.tag.openAllText,
				config.views.wikified.tag.openAllTooltip,
				function() {
					var list=this.getAttribute("list").readBracketedList();
					story.displayTiddlers(null,tids);
				});
			b.setAttribute("list","[["+list.join("]] [[")+"]]");
			createTiddlyElement(p,"hr");
		}
		var out=this.formatList(tids," &nbsp;[[%0]]&nbsp; ","\n"); wikify(out,p);
		Popup.show();
		ev.cancelBubble=true;
		if(ev.stopPropagation) ev.stopPropagation();
		return false;
	},
	createReport: function(target,tags,expr,fmt,sep,sortBy) {
		var tids=store.sortTiddlers(store.getMatchingTiddlers(expr),sortBy);
		if (!tids.length) { displayMessage('no matches for: '+expr); return false; }
		var msg=config.messages.overwriteWarning.format([target]);
		if (store.tiddlerExists(target) && !confirm(msg)) return false;
		var out=this.reportHeading.format([tids.length,expr])
		out+=this.formatList(tids,fmt,sep);
		store.saveTiddler(target,target,out,config.options.txtUserName,new Date(),tags,{});
		story.closeTiddler(target); story.displayTiddler(null,target);
	},
	createPanel: function(place,expr,fmt,sep,sortBy,tid) {
		var s=createTiddlyElement(place,"span"); s.innerHTML=store.getTiddlerText("MatchTagsPlugin##html");
		var f=s.getElementsByTagName("form")[0];
		f.expr.value=expr; f.fmt.value=fmt; f.sep.value=sep.escapeLineBreaks();
		f.tid.value=tid; f.tags.value=this.defTags;
	}
};
//}}}
/***
//{{{
!html
<form style='display:inline;white-space:nowrap'>
<input type='text'    name='expr' style='width:50%' title='tag expression'><!--
--><input type='text'    name='fmt'  style='width:10%' title='list item format'><!--
--><input type='text'    name='sep'  style='width:5%'  title='list item separator'><!--
--><input type='text'    name='tid'  style='width:12%' title='target tiddler title'><!--
--><input type='text'    name='tags' style='width:10%' title='target tiddler tags'><!--
--><input type='button'  name='go'   style='width:8%'  value='go' onclick="
	var expr=this.form.expr.value;
	if (!expr.length) { alert('Enter a boolean tag expression'); return false; }
	var fmt=this.form.fmt.value;
	if (!fmt.length) { alert('Enter the list item output format'); return false; }
	var sep=this.form.sep.value.unescapeLineBreaks();
	var tid=this.form.tid.value;
	if (!tid.length) { alert('Enter a target tiddler title'); return false; }
	var tags=this.form.tags.value;
	config.macros.matchTags.createReport(tid,tags,expr,fmt,sep,'title');
	return false;">
</form>
!end
//}}}
***/
//{{{
// SHADOW TIDDLER for displaying default panel input form
config.shadowTiddlers.MatchTags="<<matchTags panel>>";
//}}}
//{{{
// TWEAK core filterTiddlers() or config.filters['tag'] (in TW262+)
// to use getMatchingTiddlers instead getTaggedTiddlers
// for enhanced boolean matching in [tag[...]] syntax
var TW262=config.filters && config.filters['tag']; // detect TW262+
var fname=TW262?"config.filters['tag']":"TiddlyWiki.prototype.filterTiddlers";
var code=eval(fname).toString().replace(/getTaggedTiddlers/g,'getMatchingTiddlers');
eval(fname+'='+code);
//}}}
//{{{
// REDEFINE core handler for enhanced boolean matching in tag:"..." paramifier
// use filterTiddlers() instead of getTaggedTiddlers() to get list of tiddlers.
config.paramifiers.tag = {
	onstart: function(v) {
		var tagged = store.filterTiddlers("[tag["+v+"]]");
		story.displayTiddlers(null,tagged,null,false,null);
	}
};
//}}}
/***
|Name|MatchTagsPluginInfo|
|Source|http://www.TiddlyTools.com/#MatchTagsPlugin|
|Documentation|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|Version|2.0.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|documentation for MatchTagsPlugin|
!!!!!Usage
<<<
This plugin extends the {{{[tag[tagname]]}}} macro parameter syntax used by the TiddlyWiki core {{{<<list>>}}} macro so that, instead of a simple tagname value, you can specify a complex combination of tagname values using a //boolean expression// containing AND, OR, and NOT operators, enclosed in nested parentheses if needed.
{{{
<<list filter "[tag[expression]]">>
}}}
In addition, the plugin defines a new macro, {{{<<matchTags ...>>}}} that can be used instead of the core {{{<<list>>}}} macro to output a list of matching tiddlers //using a custom 'item format' and 'separator'//.  You can also use this macro to create a command link that displays the matching tiddlers within a popup list, similar to the standard {{{<<tag tagName>>}}} macro, but matching a combination of tag values rather than a single tag value.
{{{
<<matchTags inline "format" "separator" sort:fieldname tag expression>>
<<matchTags popup "label:..." "prompt:..." sort:fieldname tag expression>>
<<matchTags report TiddlerName "format" "separator" sort:fieldname tag expression>>
<<matchTags panel  Tiddlername "format" "separator" sort:fieldname tag expression>>
}}}
where:
* ''inline'', ''report'', ''panel'', and ''popup''<br>are keywords that indicate the type of output that the macro should produce:
** ''inline'' //(default)// - displays a list of matching tiddlers embedded directly in tiddler content
** ''popup'' - embeds a command button that, when clicked, lists matching tiddlers in a ~TiddlyWiki popup display
** ''report'' - generates a list of matching tiddler in a separate [[MatchingTiddlers]] report tiddler
** ''panel'' - displays an interactive form for generating a [[MatchingTiddlers]] report
* ''format''<br>defines the wiki-syntax for rendering list items.  The following //substitution markers// can be used to insert tiddler-specific information for each matched tiddler:
** {{{%0}}} - title
** {{{%1}}} - modifier (author)
** {{{%2}}} - modified (date of last change)
** {{{%3}}} - text (all tiddler content)
** {{{%4}}} - firstline (tiddler content up to the first newline)
** {{{%5}}} - description (tiddler slice or section content named "description" or "Description")
** {{{%6}}} - tags (space-separated, bracketed list)
* ''separator''<br>defines the wiki-syntax to use //between// each matching title (e.g., ", " creates a comma-separated list, while "\n" displays one tiddler per line).
* ''sort:fieldname'' (optional)<br>specifies the sort order for the resulting list of tiddlers.  You can specify any tiddler field name (standard or custom-defined).  Standard tiddler fieldnames include: //title, created, modified, modifier//.  If not specified, tiddlers are sorted by title.  You can prefix the fieldname with "+" or "-" to indicate ascending or descending order, respectively.
* ''tag expression''<br>the remaining parameter(s) are joined together to define the boolean expression to be matched.
When using the ''popup'' option, there are two additional (and optional) parameters you can specify:
* ''"label:..."''(optional)<br> indicates the text for the popup command link.  The default is to display the specified tag expression itself.
* ''"prompt:..."'' (optional)<br>indicates the mouseover 'tooltip' for the popup command link.
* note: you can apply custom CSS styles (e.g., font size) to the popup by adding a rule for ".matchTags .popup" to your [[StyleSheet]].
When using the ''report'' or ''panel'' option, an additional parameter may be provided:
* ''~TiddlerName''<br>specifies the target tiddler into which the output will be generated (default: [[MatchingTiddlers]])
Notes:
*A tag expression can use any combination of text operators: ''AND'', ''OR'', ''NOT'' (or their equivalent javascript operators: ''&&'', ''||'', ''!''), contained in nested parentheses as needed.
*Operators should be delimited by spaces or parentheses.
*Before matching, leading/trailing spaces are automatically trimmed and multiple spaces are reduced to single spaces.
*Tag values containing embedded spaces do //not// have to be enclosed in {{{[[...]]}}}.
*Tag values that contain boolean operators as ''literal text'' (e.g., {{{"foo and bar"}}} or {{{"foo && bar"}}} cannot be used within a compound boolean expression, but //can// be matched if specified by themselves, without any other tag values or operators.
*To match tiddlers that are untagged, use "-" as a special tag value within the expression.
*You can match "wildcard" tags  by using //regular expression// (i.e., "text pattern") syntax within a tag value, e.g. {{{[Tt]agvalue.*}}}
<<<
!!!!!Examples:
<<<
display a popup list:
{{{
<<matchTags popup sample OR (settings AND systemConfig)>>
}}}
><<matchTags popup sample OR (settings AND systemConfig)>>
display a popup list with custom label:
{{{
<<matchTags popup "label:samples and settings" sample OR (settings AND systemConfig)>>
}}}
><<matchTags popup "label:samples and settings" sample OR (settings AND systemConfig)>>
display a popup list of untagged tiddlers:
{{{
<<matchTags popup ->>
}}}
><<matchTags popup ->>
generate a report using interactive form control panel
{{{
<<matchTags panel "MatchingTiddlers" "[[%0]]" "\n" sample OR (settings AND systemConfig)>>
}}}
>{{smallform{<<matchTags panel "MatchingTiddlers" "[[%0]]" "\n" sample OR (settings AND systemConfig)>>}}}
comma-separated list:
{{{
<<matchTags "[[%0]]" ", " sample OR (settings AND systemConfig)>>
}}}
><<matchTags "[[%0]]" ", " sample OR (settings AND systemConfig)>>
numbered list (sorted by modification date, most recent first):
{{{
<<matchTags "#[[%0]] (%2)<br>^^%5^^" "\n" sort:-modified sample OR (settings AND systemConfig)>>
}}}
><<matchTags "#[[%0]] (%2)<br>^^%5^^" "\n" sort:-modified sample OR (settings AND systemConfig)>>
bullet-item list (using the TiddlyWiki core {{{<<list filter ...>>}}} macro):
//(Note: when using the core {{{<<list>>}}} macro, you should always enclose the entire tag filter parameter within quotes)//
{{{
<<list filter "[tag[sample OR (settings AND systemConfig)]]">>
}}}
><<list filter "[tag[sample OR (settings AND systemConfig)]]">>
<<<
!!!!!Revisions
<<<
2011.10.28 2.0.6 added .matchTags CSS class to popups to enable custom styling via StyleSheet
2011.01.22 2.0.5 fix core tweak for TW262+: adjust code in config.filters['tag'] instead of filterTiddlers()
2010.08.11 2.0.4 in getMatchingTiddlers(), fixed sorting for descending order (e.g, "-created")
2010.03.02 2.0.3 added %6 format (tags)
2010.03.01 2.0.2 in formatList(), don't automatically put '[[' and ']]' around title (%0) in formatted output
2009.08.29 2.0.1 added support for {{{config.macros.matchTags.defTags}}} to auto-tag [[MatchingTiddlers]] output
2008.09.04 2.0.0 added "report" and "panel" options to generate formatted results and store in a tiddler.  Also, added config.macros.matchTags.formatList(place,fmt,sep) API to return formatted output for use with other plugins/scripts
2008.09.01 1.9.2 fixed return value from popup button handler so IE doesn't attempt to leave the page
2008.08.31 1.9.1 improved expression conversion handling to permit use of regular expressions for "wildcard" matching within tag values
2008.06.12 1.9.0 added support for formatted output of: title, who, when, text, firstline, description (slice or section)
2008.06.05 1.8.0 in getMatchingTiddlers(), added optional sortfield and tiddlers params to support use of alternative set of tiddlers instead of using current store content (provides filtering support for ImportTiddlersPlugin)
2008.06.04 1.7.1 in getMatchingTiddlers(), reworked conversion of expression for more robust parsing of whitespace, parentheses and javascript operators and allow use of "-" (untagged) //within// expressions
2008.05.19 1.7.0 in getMatchingTiddlers(), use reverseLookup() instead of forEachTiddler() to permit access to tiddlers included via [[IncludePlugin|http://tiddlywiki.abego-software.de/#IncludePlugin]]
2008.05.17 1.6.0 in getMatchingTiddlers(), rewrote expression conversion to handle tags with spaces tag values that are substrings of other tag values.
2008.05.16 1.5.0 added special case using "-" to find UNTAGGED tiddlers
2008.05.15 1.4.0 added "popup" output option
2008.05.14 1.3.4 instead of hijacking getTaggedTiddlers(), added tweak of filterTiddlers() prototype to replace getTaggedTiddlers() with getMatchingTiddler() so that core use of getTaggedTiddlers() does not perform boolean processing of tiddler titles such as [[To Be or not To Be]].  Also, improved "filter error" messages in getMatchingTiddlers() to report tag expression in addition to actual eval error.
2008.04.25 1.3.3 in getTaggedTiddlers(), fixed handling for "not" embedded within a tag
2008.04.21 1.3.2 in getTaggedTiddlers(), fixed handling for initial "NOT" and "NOT(expr)" syntax
2008.04.20 1.3.1 in getTaggedTiddlers(), corrected check for boolean expression to avoid excess processing of tags containing spaces.  Also, improved handling for non-existing tags that contain text of existing tags
2008.04.19 1.3.0 in filterTiddlers(), use getTaggedTiddlers() instead of matchTags(), and then hijack getTaggedTiddlers() to add matchTags() handling
2008.04.19 [*.*.*] plugin size reduction: moved documentation to [[MatchTagsPluginInfo]]
2008.03.25 1.2.0 added optional "sort:fieldname" parameter
2008.03.20 1.1.2 in handler(), replace 'encodeTiddlyLink' with explicit [[...]] brackets to ensure that one-word tiddler titles are properly rendered as TiddlyLinks
2008.02.29 1.1.1 in matchTags(), added handling to skip remaining tiddlers if expression has an error
2008.02.29 1.1.0 refactored to define store.matchTags() and extend store.filterTiddlers()
2008.02.28 1.0.0 initial release
<<<
<<tiddler [[GroupPhoto]]>>
! Current members
|[img[Professor Samantha Jenkins|images/Samantha.jpg]]|[[Prof. Samantha Jenkins]] (Group Leader and Researcher) |
|[img[Professor Steven R. Kirk|images/Steven.jpg]]|[[Prof. Steven R. Kirk]] (Researcher) |
|[img[Julio Roman Maza Villegas|images/Julio.jpg]]|[[Julio Roman Maza Villegas|https://sites.google.com/a/bt.unal.edu.co/jrmazav/]] (~PhD student) <br> 2012 Colciencias Fellowship |
|[img[Fernando Antonio Figueredo Negrete|images/Fernando.jpg]]|Fernando Antonio Figueredo Negrete (~PhD student) |
|[img[Xu Tianl&uuml;|images/Tianlu.jpg]]|Xu Tianl&uuml; (Masters student) |
|[img[Xiao Chenxia|images/Chenxia.jpg]]|Xiao Chenxia (Masters student) <br>’湖南师范大学优秀研究生干部‘ (Hunan Normal University Outstanding Graduate Cadre) |
|[img[Dong Jiajun|images/Dong.jpg]]|[Dong Jiajun (Masters student) |
|[img[Xu Yuning|images/Yuning.jpg]]|Xu Yuning (Masters student) |
! Former members
<html>
<div class="csl-bib-body" >
<div class="csl-entry">S. Jenkins, S. R. Kirk, M. Persson, J. Carlen, and Z. Abbas. “Molecular Dynamics Simulation of Nanocolloidal Amorphous Silica Particles: Part I”, <i>The Journal of Chemical Physics</i> 127, no. 22 (December 14, 2007): 224711.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1063%2F1.2803897&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Molecular%20dynamics%20simulation%20of%20nanocolloidal%20amorphous%20silica%20particles%3A%20Part%20I&amp;rft.jtitle=The%20Journal%20of%20Chemical%20Physics&amp;rft.stitle=J.%20Chem.%20Phys.&amp;rft.volume=127&amp;rft.issue=22&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=S.%20R.%20Kirk&amp;rft.au=M.%20Persson&amp;rft.au=J.%20Carlen&amp;rft.au=Z.%20Abbas&amp;rft.date=2007-12-14&amp;rft.pages=224711"/></div></html>DOI: [[10.1063/1.2803897|http://dx.doi.org/10.1063/1.2803897]].
<html>
<div class="csl-bib-body" >
<div class="csl-entry">S. Jenkins, S. R. Kirk, M. Persson, J. Carlen, and Z. Abbas, “Molecular Dynamics Simulation of Nanocolloidal Amorphous Silica Particles: Part II”, <i>The Journal of Chemical Physics</i> 128, no. 16 (April 28, 2008): 164711–10.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1063%2F1.2906462&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Molecular%20dynamics%20simulation%20of%20nanocolloidal%20amorphous%20silica%20particles%3A%20Part%20II&amp;rft.jtitle=The%20Journal%20of%20Chemical%20Physics&amp;rft.stitle=J.%20Chem.%20Phys.&amp;rft.volume=128&amp;rft.issue=16&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=S.%20R.%20Kirk&amp;rft.au=M.%20Persson&amp;rft.au=J.%20Carlen&amp;rft.au=Z.%20Abbas&amp;rft.date=2008-04-28&amp;rft.pages=164711-10&amp;rft.spage=164711&amp;rft.epage=10"/></div></html>DOI: [[10.1063/1.2906462|http://dx.doi.org/10.1063/1.2906462]].
<html>
<div class="csl-bib-body" >
<div class="csl-entry">S. Jenkins, S. R. Kirk, M. Persson, J. Carlen, and Z. Abbas, “Molecular Dynamics Simulation of Nanocolloidal Amorphous Silica Particles: Part III”, <i>The Journal of Chemical Physics</i> 130, no. 13 (April 7, 2009): 134702–13.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1063%2F1.3102957&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Molecular%20dynamics%20simulation%20of%20nanocolloidal%20amorphous%20silica%20particles%3A%20Part%20III&amp;rft.jtitle=The%20Journal%20of%20Chemical%20Physics&amp;rft.stitle=J.%20Chem.%20Phys.&amp;rft.volume=130&amp;rft.issue=13&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=S.%20R.%20Kirk&amp;rft.au=M.%20Persson&amp;rft.au=J.%20Carlen&amp;rft.au=Z.%20Abbas&amp;rft.date=2009-04-07&amp;rft.pages=134702-13&amp;rft.spage=134702&amp;rft.epage=13"/>
</div></html>DOI: [[10.1063/1.3102957|http://dx.doi.org/10.1063/1.3102957]].
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">S. R. Kirk, D. Yin, M. Persson, J. Carlen, and S. Jenkins, “Molecular dynamics simulations of the aggregation of nanocolloidal amorphous silica monomers and dimers,” <i>Procedia Engineering</i>, vol. 18, pp. 188–193, 2011.</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2Fj.proeng.2011.11.030&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Molecular%20dynamics%20simulations%20of%20the%20aggregation%20of%20nanocolloidal%20amorphous%20silica%20monomers%20and%20dimers&amp;rft.jtitle=Procedia%20Engineering&amp;rft.volume=18&amp;rft.issue=0&amp;rft.aufirst=S.R.&amp;rft.aulast=Kirk&amp;rft.au=S.R.%20Kirk&amp;rft.au=Dulin%20Yin&amp;rft.au=M.%20Persson&amp;rft.au=J.%20Carlen&amp;rft.au=S.%20Jenkins&amp;rft.date=2011&amp;rft.pages=188-193&amp;rft.spage=188&amp;rft.epage=193&amp;rft.issn=1877-7058"/>
</div></html>([[PDF reprint|publications/ProcEng2011.pdf]]),DOI: [[10.1016/j.proeng.2011.11.030|http://dx.doi.org/10.1016/j.proeng.2011.11.030]]
The following pages contain information relevant to the previous base and research interests of the BEACON project.
[[University West|http://www.hv.se/]]
[[KK Foundation|http://www.kks.se/]]
[[Production Technology Centre|http://www.ptc.hv.se/]]
----
[[Project News]]
[[Blog|http://beacon.tumblr.com/]]
[[Members]]
[[Industrial Collaborators]]
[[Academic Collaborators]]
[[Frequently-Asked Questions|FAQs]]
[[Publications, Conferences & Talks]]
[[CO-PRODUCTION]]
----
[[ManyHands|http://cumulus.ei.hv.se/~srk/manyhands/mediawiki/index.php]]
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<html>
<div class="csl-bib-body" style="line-height: 1.35">
  <div class="csl-entry">Dong-Bo Zhao, Chun-Ying Rong, Samantha Jenkins, Steven&nbsp; R. Kirk, Du-Lin Yin, and Shu-Bin Liu, "Origin of the cis-Effect: a Density Functional Theory Study of Doubly Substituted Ethylenes", <i>Acta Physico-Chimica Sinica</i> 29, 01 (2012): 43–54. </div> <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.3866%2FPKU.WHXB201211121&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Origin%20of%20the%20cis-Effect%3A%20a%20Density%20Functional%20Theory%20Study%20of%20Doubly%20Substituted%20Ethylenes&amp;rft.jtitle=Acta%20Physico-Chimica%20Sinica&amp;rft.stitle=Acta%20Phys.%20Chim.%20Sin.&amp;rft.volume=29&amp;rft.issue=01&amp;rft.aufirst=Dong-Bo&amp;rft.aulast=Zhao&amp;rft.au=Dong-Bo%20Zhao&amp;rft.au=Chun-Ying%20Rong&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20%20R.%20Kirk&amp;rft.au=Du-Lin%20Yin&amp;rft.au=Shu-Bin%20Liu&amp;rft.date=2012&amp;rft.pages=43-54&amp;rft.spage=43&amp;rft.epage=54"/></div></html>DOI: [[10.3866/PKU.WHXB201211121|http://dx.doi.org/10.3866/PKU.WHXB201211121]] ([[reprint|publications/ZDB_2013.pdf]])
<!--{{{-->
<div class='header' >
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">A. Guevara-García, E. Echegaray, A. Toro-Labbe, S. Jenkins, S.R. Kirk, and P.W. Ayers, "Pointing the way to the products? Comparison of the stress tensor and the second-derivative tensor of the electron density", <i>J. Chem. Phys.</i> <b>134</b>, 234106 (2011).</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1063%2F1.3599935&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Pointing%20the%20way%20to%20the%20products%3F%20Comparison%20of%20the%20stress%20tensor%20and%20the%20second-derivative%20tensor%20of%20the%20electron%20density&amp;rft.jtitle=The%20Journal%20of%20Chemical%20Physics&amp;rft.stitle=J.%20Chem.%20Phys.&amp;rft.volume=134&amp;rft.issue=23&amp;rft.aufirst=Alfredo&amp;rft.aulast=Guevara-Garci%CC%81a&amp;rft.au=Alfredo%20Guevara-Garci%CC%81a&amp;rft.au=Eleonora%20Echegaray&amp;rft.au=Alejandro%20Toro-Labbe&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Paul%20W.%20Ayers&amp;rft.date=2011&amp;rft.pages=234106&amp;rft.issn=00219606"/>
</div></html>([[PDF reprint|publications/JCP2011_134_23.pdf]]), URL: [[http://link.aip.org/link/?JCP/134/234106|http://link.aip.org/link/?JCP/134/234106]], DOI: 10.1063/1.3599935. Copyright 2011 American Institute of Physics. This article may be downloaded for personal use only. Any other use requires prior permission of the author and the American Institute of Physics.
<<tiddler [[CVSJBasic]]>>

Find more here: [[Publications, Conferences & Talks]]
<<tiddler [[CVSRKBasic]]>>
<<forEachTiddler
 where
 'tiddler.tags.contains("News")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>
This page contains a list of opportunities for collaborative research with the BEACON research group. These projects may be taken up by undergraduate or Master's-level students looking for a thesis ('exjobb') topic, or, in a suitably developed and expanded form, by other teachers/researchers. 

''The general focus of these projects is in the area of High Performance Computing, multiprocessing, multithreading and parallel computing, including the use of exotic architectures such as the IBM Cell chip and [[GPGPUs|http://www.GPGPU.org]] (General Purpose Graphical Processing Units) to accelerate simulations and other computational tasks, along with investigations of efficient means of performance measurement and software engineering in such systems. If you have your own idea for a research project or thesis in this area, please contact us - we would be very interested to hear from you.''

''MORE PROJECTS WILL BE ADDED HERE SOON - CHECK BACK FREQUENTLY FOR UPDATES!''

!!Particle Swarm Optimisation using IBM Cell processors or ~GPUs
This project has already been implemented on multicore processors - an extension to ~GPUs and IBM Cell processors is still available.
!! Implementation and testing of graph algorithms on ~GPUs
This project is concerned with the implementation and development of graph algorithms on ~GPUs. Graph algorithms underlie many applications in computer science and networking (e.g. calculation of minimum spanning trees, articulation points, community detection). 

''See also the page for the Measurements in Computer Engineering [[MDD900]] course!''
!Publications
<<forEachTiddler
 where
 'tiddler.tags.contains("Publication")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>
!!Dr. Samantha Jenkins and Dr. Steven R. Kirk
See [[this page|http://www.beaconresearch.org/publications/index.html]] and list below.

!Publications
<<matchTags inline "%3" "\n\n" sort:-tags Publication>>
!Conferences/Events
<<forEachTiddler
 where
 'tiddler.tags.contains("Conference")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>

<html>
<div class="csl-bib-body">
<div class="csl-entry">S. Jenkins, and M. I. Heggie. “Quantitative Analysis of Bonding in 90<sup>o</sup> Partial Dislocation in Diamond”, <i>Journal of Physics: Condensed Matter</i> 12, no. 49 (2000): 10325–10333.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1088%2F0953-8984%2F12%2F49%2F3&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Quantitative%20analysis%20of%20bonding%20in%2090%C2%BA%20partial%20dislocation%20in%20diamond&amp;rft.jtitle=Journal%20of%20Physics%3A%20Condensed%20Matter&amp;rft.volume=12&amp;rft.issue=49&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=M.%20I.%20Heggie&amp;rft.date=2000&amp;rft.pages=10325-10333&amp;rft.spage=10325&amp;rft.epage=10333&amp;rft.issn=0953-8984"/>
</div></html>DOI: [[10.1088/0953-8984/12/49/3|http://dx.doi.org/10.1088/0953-8984/12/49/3]].
<html>
<div class="csl-bib-body" >
  <div class="csl-entry">Samantha Jenkins, “Quantum Topology Phase Diagrams for Molecules, Clusters, and Solids”, <i>International Journal of Quantum Chemistry</i> 113(11), 1603-1608 (2013): (Perspective Article, Journal Cover image).</div>
  <span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1002%2Fqua.24398&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Quantum%20Topology%20Phase%20Diagrams%20for%20Molecules%2C%20Clusters%2C%20and%20Solids&amp;rft.jtitle=International%20Journal%20of%20Quantum%20Chemistry&amp;rft.volume=113&amp;rft.issue=11&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.date=2013-06-05&amp;rft.pages=1603-1608&amp;rft.spage=1603&amp;rft.epage=1608&amp;rft.issn=0020-7608'></span></html>DOI:[[10.1002/qua.24398|http://dx.doi.org/10.1002/qua.24398]]
<html>
<div class="csl-bib-body">
<div class="csl-entry">Samantha Jenkins, Steven R. Kirk, and Paul W. Ayers, “Real-space Study of Mechanical Instability in Ice XI on a ‘Bond-by-bond’ Basis”, In <i>Physics and Chemistry of Ice</i>, 273–280. Bremerhaven, Germany: Royal Society of Chemistry, 2006.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=urn%3Aisbn%3A978%200%2085404%20350%207&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=Real-space%20study%20of%20mechanical%20instability%20in%20ice%20XI%20on%20a%20'bond-by-bond'%20basis&amp;rft.btitle=Physics%20and%20Chemistry%20of%20Ice&amp;rft.place=Bremerhaven%2C%20Germany&amp;rft.publisher=Royal%20Society%20of%20Chemistry&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Paul%20W.%20Ayers&amp;rft.date=2006-07-23&amp;rft.pages=273-280&amp;rft.spage=273&amp;rft.epage=280&amp;rft.isbn=978%200%2085404%20350%207"/></div></html>URL: [[http://www.rsc.org/Publishing/Books/0854043500.asp|http://www.rsc.org/Publishing/Books/0854043500.asp]].
* '100 Talents of Hunan' Award
* Xiaoxiang Friendship Award of Hunan Province, China 2012
* Chinese Government Friendship Award ( 中华人民共和国友谊奖), China 2013  
* Docent in Computational Physics, Sweden
* Diploma of Higher Education (Centre for Competence and Knowledge Building in Higher Education, Chalmers University, Gothenburg, Sweden)
* Member of the [[World Association Of Theoretical and Computational Chemists|http://www.watoc.net]]
<<matchTags inline "%3" "\n\n" sort:-tags SJ and Publication>>
{{centeredTable{
|borderless|k
| [img[Caption|images/CFGA2013_small.jpg][images/CFGA2013.jpg]] |
| Prof. Samantha Jenkins receiving the 2013 Chinese Government Friendship Award, September 29 2013, |
| presented by ~Vice-Premier Ma Kai |
}}}
* 1999/08/15-2000/02/15:  Administrative employment as coordinator of the TQA external inspection of education quality, for Salford University Physics Department, Salford, UK in partnership with Dr S. Jenkins.
* Designed a Masters level program (Engineering/software-engineering hybrid) in partnership with Dr S.Jenkins.
* Inspection and writing of undergraduate and Masters level course plans.
* Production of teaching materials, and research and development (R&D) work in the teaching field 
* Extensive production of course notes, exercises and examinations
* '100 Talents of Hunan' Award, 2012 - competitive research funding
<<forEachTiddler
 where
 'tiddler.tags.contains("Committee") && tiddler.tags.contains("SRK")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>
* 1992-2000 University of Salford, Salford, UK - Ph.D. in Physics (Applied Magnetism Group) "Ab initio study of Magnetic Anisotropy of M-type Hexaferrite thin films"
* 1990-1992 University of Salford, Salford, UK  - M.Sc. by research in Applied Physics (industry-sponsored, British Nuclear Fuels plc) "3-D Finite Element Solution of the ~Even-Parity Boltzmann Neuron Transport Equation"
* 1987-1990 Cambridge University, UK (Girton College) - BA Hons. Natural Sciences (Physics & Theoretical Physics), Final year project "The calculation of the Visual Appearance of arbitrarily-shaped objects moving at highly relativistic speeds"
''March 2010 - present'': Professor, College of Chemistry and Chemical Engineering, Hunan Normal University, Changsha, Hunan Province, P.R. China
''November 2001 – March 2010'': Assistant Professor in Hogskolan Vast (University West, Sweden) 
''September 2000 - September 2001'': Postdoctoral fellowship in computational physics at [[McMaster University|http://www.mcmaster.ca/]], Hamilton, Ontario, Canada.
| Date | Funding agency | Amount | Other information |
| 2012/12 - | 100 Talents of Hunan Research Fellowship | |
| 2008/05/01-2011/04/31 | KK Stiftelsen Grant (2007/0240), Sweden | 4,250,000 SEK | 'Bridging  Experiment and Analysis with Cluster-computing for ~OptimizatioN' (BEACON),  with Eka Chemicals AB and Gridcore AB |
| 2005/01/31-2007/12/31 | KK Stiftelsen Grant (2004/0284), Sweden | 2,800,000 SEK | ‘Theory and  ~AppliCatiOns of scale-free  ~NETworks for industry’(TACONET), with Eka Chemicals AB and Gridcore AB |
| 2003/01/31-2004/12/31 | KK Stiftelsen Grant (2001/204), Sweden | 1,000,000 SEK | |
''July -December 1998'': C/C++ software consultancy for Salford Software Ltd, UK.
''July 1996 - March 1997'': MATLAB / SIMULINK software consultancy for British Nuclear Fuels plc, UK.
* I have co-developed a web page teaching resource for students at all levels to help guide them through the process of scientific writing: (http://scicomm.tiddlyspot.com)
* Docent in Computational Materials Science, University West, Sweden
* Diploma of Higher Education (Centre for Competence and Knowledge Building in Higher Education, Chalmers University, Gothenburg, Sweden), 2010, including module ~TLE202: Supervision of Research
* Member of the [[World Association Of Theoretical and Computational Chemists|http://www.watoc.net]]
Below is a small summary of my personal teaching philosophy, along with some reflections on knowledge gained during my studies for the qualification of Diploma of Higher Education at Chalmers University, Göteborg.

''Personal teaching philosophy''

Critical thinking and understanding are much more valuable than memorisation. Students should learn how to think, not just how to pass exams. Most first and second year students will not go on to become professionals in their subject areas of their degrees.  All can, however, benefit from a program focusing on how to approach a problem logically, with limited initial knowledge. The ultimate goal to is teach something valuable to every student, while still preparing the undergraduates for their future vocations.
 
Students should be taught how to think about learning rather more than the transmission of facts and theories. A good lecturer should model problem-solving strategies, 'thinking out loud' as she works through the solution. They should provide hints for effective studying in the specific content area: many novices do not understand that reading a science textbook requires different skills and approaches than reading a novel - many arrive at university level without these skills.

A lecturer must be able to balance the individual needs of the students with the need to produce competent, qualified trained students. A lecturer must be able to motivate and encourage students and be an example of how learning can enrich one's life. The goal is to create a confident and positive learning environment wherein learning is seen to be an enriching experience, without sacrificing academic standards. 
 
It is important to carefully set challenging standards, and stand behind them. This sometimes means helping students with background deficiencies with extra support and encouragement. Meeting challenges is made easier by the thrill students experience when they successfully meet a challenge. The confidence this gives students will provide benefits for the rest of their lives. Keeping students in a 'just-manageable level of difficulty' allows for maximum intellectual growth. Inquiry-based learning, and setting tasks with restricted initial information, are good practices to this end.
 
Students are sometimes too willing to look for answers from authority figures, as if they do not trust their own abilities. A good lecturer must teach her students to find answers, not just what the answers are. If a student becomes independent of their lecturers they will still be capable of working and learning after they leave university, and possess 'learning habits' that will persist with them in later life.

It is vital for students to learn the skills of working independently, as well as part of a larger group. For this reason, group work must be tightly monitored to make sure that students are not simply relying on 'the smart guys' in their group to solve exercises on their behalf.

I am a strong advocate of the use of interactive computer-based teaching resources (web page applets, for example) and animations to explain and explore complex topics such as physical effects or computational algorithms, and seek to include the use of such resources in teaching courses.

''Reflection on knowledge gained during studies for the Diploma in Higher Education''

 (My pedagogic project report has been published as: 'The 'red ink' effect - how does written feedback affect the scientific writing skills of science students?', S.R. Kirk, Pedagogical Paper Series, 3(4), Winter 2009, Chalmers University, Gothenburg, Sweden.)

In assessing what I have learned from doing a pedagogical project, and how it will improve my own reaching, supervision and research, two main new areas of knowledge suggest themselves. The first of these is the concept of learning outcomes, an approach  relatively new to me when compared with my own educational experience. To reliably discover both true 'unfiltered' student attitudes and level of understanding, whether by interview, questionnaire or other means, is a challenging task. My newly increased awareness of the machinery of organising and managing learning outcomes will undoubtedly be, and has already been, very useful. One of the most significant advantages, in my view, of the approach of continuous and 'fine-grained' monitoring of learning outcomes is that it attempts to provide at least a partial solution to the classic problem of large unpredictable swings in the learning styles and experiences of successive incoming classes of students (especially international students). While this problem is most acute  in classes with small numbers of students, even classes of 40 students or more can exhibit large fluctuations in the diversity of their learning styles and abilities from one academic year or course occasion to the next. 

    To embark on teaching a course with a particular (familiar) set teaching style in mind, especially if you have not met the students before and have no previous experience of their preferred learning styles, often does not yield optimal results. Fine-grained (even sub-lecture) monitoring of learning outcomes with immediate student feedback does appear to be a logical approach in purely pedagogical terms. The idea is not without its practical difficulties – requirements externally applied by program educational committees, and 'written in stone' on 'Bolognified' course plans, can strongly restrict flexibility in teaching methods. Co-taught courses need greater and more frequent coordination between teachers. If applied in an over-zealous way, continuous monitoring of outcomes and reconfiguration of how course material is taught can be an enormous time-sink for teachers, and also leave students having covered insufficient course material and lacking a sense of the coherence of the material being studied. Nevertheless, judicious use of such techniques, especially when relatively concentrated towards the beginning of a course, is extremely useful in increasing student understanding of, and engagement with, their course. The teacher gains extremely valuable skills in accurately and reliably evaluating student responses to course material, and through frequent student feedback gains a much higher level of self-knowledge of, and reflection on, their pedagogic skills. The benefits to the student of packaging elements of course material along with corresponding tests of understanding are numerous. To summarize, a short period of 'annealing of pedagogic approach', followed by targeted monitoring of learning outcomes at judiciously chosen intervals, seems to be the optimal approach to teaching almost any course.

    My second increased area of awareness is in the unexpected effectiveness of 'non-examination' assessment techniques. My previous reluctance to use e.g. group-based, student-focussed teaching techniques has been greatly reduced, given my new awareness on how to avoid some of the possible 'failure modes' of such techniques. In conjunction with some previous experience of the 'guided enquiry' methods advocated by Mazur and others, I can foresee using such techniques more extensively in my future teaching.

      During my courses towards the Diploma qualification, I took a specific course on Supervision of Research. I found this course extremely interesting and useful, and intend to implement what I learned there in my future academic career.
<<forEachTiddler
 where
 'tiddler.tags.contains("Presentation") && tiddler.tags.contains("SRK")'
sortBy 
        tiddler.title
    descending
 write
  'tiddler.title+" - <<tiddler [["+tiddler.title+"]]$))\n"+"\n" '
>>
* 2007/02/12 - Images from our research were presented at the ~SMART-ART exhibition vernissage at Innovatum, Trollhättan.
* 2007/03/12 - ~SMART-ART exhibition vernissage at Volvo Aero, Trollhättan, Sweden.
* 2011/11/05 - "Open-source educational software for Computational Chemistry", 11th National Conference for Chemistry Teaching, Changsha, Hunan, China
* 2011/11/30 - "Organizing your academic research and writing with Mendeley", Hunan Normal University, Changsha, China.
<<matchTags inline "%3" "\n\n" sort:-tags SRK and Publication>>
* ''Programming languages'' - Fortran 77/95/200x,C,C++,Python,Tcl/Tk,Bash scripting, ~NVidia CUDA
* ''Operating systems'' - Unix, Linux, MS Windows
* Canada (2000)
|2001| 1B03 Mechanics and Waves (Dept. of Physics and Astronomy, ~McMaster University, Canada) |
* Sweden (2001-2010)
| Course | Level (C=final year |
|~|Undergraduate, D=~MSc) |
| Numerical Algorithms for CS and Engineering (Theory and laboratory) | C/D |
| Object oriented programming in C# (Theory and laboratory) | C |
| Component technology (Theory and laboratory) | D |
| Matlab for Engineering (Theory and laboratory) | C |
| Visual programming in Java (Theory and laboratory) | C |
| Applied Parallel computing | D |
| Software Development Project Management | D |
| CS/Software Engineering Final year thesis |  C/D |
* China (2010-present)
|Course |Level (C=final year |
|~|Undergraduate, D=~MSc) |
| Computational and Quantum Chemistry | D |
| Scientific Writing and communication | C/D |
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "News: " "News">>
<<newTiddler
       label:"ADD NEW ITEM"
       title:"New item"
	text:"CREATING A NEW ITEM [1].First replace the title of this item by the date YYYY/MM/DD (or range of dates YYYY/MM/DD - YYYY/MM/DD) in the title of this new item in the box above. [2]. Next, add the text for the new item here. [3] Add any of the tags 'Meeting', 'Visit', Publication', or 'Conference' in the Tags box below. [4] If you want this item to appear in the site News list, add the tag 'News'. [5] Click 'Done' to create the new item [6] Do not forget to click 'save changes' in the right-hand menu!"
	tag:""
	accessKey:"n"
	focus:"title"
>>
<<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers()|
|Options|##Configuration|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
	config.options.chkSinglePageMode=eval(v);
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
	config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
	config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
	config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
	config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
	config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
	config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
	config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
		story.displayTiddler(null,tids[0]);
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
		story.closeAllTiddlers();
		story.displayTiddlers(null,tids);
	}
}


if (Story.prototype.SPM_coreDisplayTiddler==undefined)
	Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;
	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
				return;
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
			}
			story.closeTiddler(tid);
		});
	}
	else if (top)
		arguments[0]=null;
	else if (bottom)
		arguments[0]="bottom";
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
			tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
		else if (bottom)
			tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=document.getElementById(story.idPrefix+title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;
		setTimeout("window.scrollTo(0,"+yPos+")",delay); 
	}
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
/***
|Name|SinglePageModePluginInfo|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|documentation|
|Requires||
|Overrides||
|Description|Documentation for SinglePageModePlugin|
Normally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.  SinglePageModePlugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time.
!!!!!Usage
<<<
When the plugin is enabled, only one tiddler will be displayed at a time and the browser window's titlebar is updated to include the current tiddler title.  The browser's location URL is also updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.  Alternatively, even when displaying multiple tiddlers //is// permitted, you can still reduce the potential for confusion by forcing  tiddlers to always open at the top (or bottom) of the page instead of being displayed following the tiddler containing the link that was clicked.
<<<
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* {{block{
The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}. You can also use {{{SPM:expression}}}, where 'expression' is any javascript statement that evaluates to true or false.  This allows you to create hard-coded links in other documents that can selectively enable/disable the use of this option based on various programmatic conditions, such as the current username. For example, using
&nbsp;&nbsp;&nbsp;{{{#SPM:config.options.txtUserName!="SomeName"}}}
enables 'one tiddler at a time' display for all users //other than// "~SomeName")}}}
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
2008.06.12 [2.9.5] corrected 'scroll to top of page' logic in auto-scroll handling
2008.06.11 [2.9.4] added chkSinglePageKeepEditedTiddlers option
2008.06.05 [2.9.3] in displayTiddler(), bypass single/top/bottom mode handling if startingUp.  Allows multiple tiddlers to be displayed during startup processing (e.g., #story:DefaultTiddlers), even if single/top/bottom mode is enabled.
2008.04.18 [2.9.2] in displayTiddler() and checkLastURL(), handling for Unicode in tiddler titles (remove explicit conversion between Unicode and UTF, as this is apparently done automatically by encode/decodeURIComponent, resulting in double-encoding!
2008.04.08 [2.9.1] don't automatically add options to AdvancedOptions shadow tiddler
2008.04.02 [2.9.0] in displayTiddler(), when single-page mode is in use and a tiddler is being edited, ask for permission to save-and-close that tiddler, instead of just leaving it open.
2008.03.29 [2.8.3] in displayTiddler(), get title from tiddler object (if needed).  Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*
2008.03.14 [2.8.2] in displayTiddler(), if editing specified tiddler, just move it to top/bottom of story *without* re-rendering (prevents discard of partial edits).
2008.03.06 [2.8.1] in paramifier handler, start 'checkURL' timer if chkSinglePageMode is enabled
2008.03.06 [2.8.0] added option, {{{config.options.chkSinglePageKeepFoldedTiddlers}}}, so folded tiddlers won't be closed when using single-page mode.  Also, in checkURL(), if hash is a ''permaview'' (e.g., "#foo bar baz"), then display multiple tiddlers rather than attempting to display "foo bar baz" as a single tiddler
2008.03.05 [2.7.0] added support for "SPM:" URL paramifier
2008.03.01 [2.6.0] in hijack of displayTiddler(), added 'title' argument to closeAllTiddlers() so that target tiddler isn't closed-and-reopened if it was already displayed.  Also, added config.options.chkSinglePageAutoScrolloption to bypass automatic 'scroll into view' logic (note: core still does it's own ensureVisible() handling)
2007.12.22 [2.5.3] in checkLastURL(), use decodeURIComponent() instead of decodeURI so that tiddler titles with commas (and/or other punctuation) are correctly handled.
2007.10.26 [2.5.2] documentation cleanup
2007.10.08 [2.5.1] in displayTiddler(), when using single-page or top-of-page mode, scrollTo(0,0) to ensure that page header is in view.
2007.09.13 [2.5.0] for TPM/BPM modes, don't force tiddler to redisplay if already shown.  Allows transition between view/edit or collapsed/view templates, without repositioning displayed tiddler.
2007.09.12 [2.4.0] added option to disable automatic permalink feature.  Also, Safari is now excluded from permalinking action to avoid bug where tiddlers don't display after hash is updated.
2007.03.03 [2.3.1] fix typo when adding BPM option to AdvancedOptions (prevented checkbox from appearing)
2007.03.03 [2.3.0] added support for BottomOfPageMode (BPM) based on request from DaveGarbutt
2007.02.06 [2.2.3] in Story.prototype.displayTiddler(), use convertUnicodeToUTF8() for correct I18N string handling when creating URL hash string from tiddler title (based on bug report from BidiX)
2007.01.08 [2.2.2] use apply() to invoke hijacked core functions
2006.07.04 [2.2.1] in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.
2006.06.01 [2.2.0] added chkTopOfPageMode (TPM) handling
2006.02.04 [2.1.1] moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals
2005.12.27 [2.1.0] hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list).  Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers
2005.12.27 [2.0.0] Update for TW2.0
2005.11.24 [1.1.2] When the back and forward buttons are used, the page now changes to match the URL.  Based on code added by Clint Checketts
2005.10.14 [1.1.1] permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them
2005.10.14 [1.1.0] added automatic setting of window title and location bar ('auto-permalink').  feature suggestion by David Dickens.
2005.10.09 [1.0.1] combined documentation and code in a single tiddler
2005.08.15 [1.0.0] Initial Release
<<<

The BEACON Partnership
<html>
<div class="csl-bib-body" >
<div class="csl-entry">S. Jenkins, and S.R. Kirk, “Software Architecture Graphs as Complex Networks: A Novel Partitioning Scheme to Measure Stability and Evolution”, <i>Information Sciences</i> 177, no. 12 (2007): 2587–2601.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2Fj.ins.2007.01.021&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Software%20architecture%20graphs%20as%20complex%20networks%3A%20A%20novel%20partitioning%20scheme%20to%20measure%20stability%20and%20evolution&amp;rft.jtitle=Information%20Sciences&amp;rft.volume=177&amp;rft.issue=12&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=S.R.%20Kirk&amp;rft.date=2007&amp;rft.pages=2587-2601&amp;rft.spage=2587&amp;rft.epage=2601"/></div></html>DOI: [[10.1016/j.ins.2007.01.021|http://dx.doi.org/10.1016/j.ins.2007.01.021]].
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">S. Jenkins, A. Restrepo, J. David, D. Yin, and S.R. Kirk, 'Spanning QTAIM topology phase diagrams of water isomers W4, W5 and W6', <i>Phys. Chem. Chem. Phys.</i> <b>13</b>, 11644-11656 (2011).</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1039%2Fc1cp20135b&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Spanning%20QTAIM%20topology%20phase%20diagrams%20of%20water%20isomers%20W4%2C%20W5%20and%20W6&amp;rft.jtitle=Physical%20Chemistry%20Chemical%20Physics&amp;rft.stitle=Phys.%20Chem.%20Chem.%20Phys.&amp;rft.volume=13&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Albeiro%20Restrepo&amp;rft.au=Jorge%20David&amp;rft.au=Dulin%20Yin&amp;rft.au=Steven%20R.%20Kirk&amp;rft.date=2011&amp;rft.pages=11644-11656&amp;rft.spage=11644&amp;rft.epage=11656&amp;rft.issn=1463-9076"/>
</div></html>URL: [[http://pubs.rsc.org/en/content/articlelanding/2011/cp/c1cp20135b|http://pubs.rsc.org/en/content/articlelanding/2011/cp/c1cp20135b]]: DOI: 10.1039/c1cp20135b
<html>
<div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">S. Jenkins, C. Rong, S. R. Kirk, D. Yin, and S. Liu, “Spanning Set of Silica Cluster Isomer Topologies from QTAIM,” <i>The Journal of Physical Chemistry A</i>, vol. 115, no. 45, pp. 12503–12511, May 2011.</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1021%2Fjp202294n&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Spanning%20Set%20of%20Silica%20Cluster%20Isomer%20Topologies%20from%20QTAIM&amp;rft.jtitle=The%20Journal%20of%20Physical%20Chemistry%20A&amp;rft.volume=115&amp;rft.issue=45&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Chunying%20Rong&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Dulin%20Yin&amp;rft.au=Shubin%20Liu&amp;rft.date=2011-05-10&amp;rft.pages=12503%E2%80%9312511"/>
</div></html>([[PDF reprint|publications/JCPA2011_4.pdf]]), URL: [[http://dx.doi.org/10.1021/jp202294n|http://dx.doi.org/10.1021/jp202294n]], DOI: 10.1021/jp202294n.
<html>
<div class="csl-bib-body">
<div class="csl-entry">Samantha Jenkins, Steven R. Kirk, and Paul W. Ayers, “Structural and Chemical Character of Very High Pressure Ice Phases”, In <i>Physics and Chemistry of Ice</i>, 265–272. Bremerhaven, Germany: Royal Society of Chemistry, 2006.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=urn%3Aisbn%3A978%200%2085404%20350%207&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=Structural%20and%20chemical%20character%20of%20very%20high%20pressure%20ice%20phases&amp;rft.btitle=Physics%20and%20Chemistry%20of%20Ice&amp;rft.place=Bremerhaven%2C%20Germany&amp;rft.publisher=Royal%20Society%20of%20Chemistry&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Paul%20W.%20Ayers&amp;rft.date=2006-07-23&amp;rft.pages=265-272&amp;rft.spage=265&amp;rft.epage=272&amp;rft.isbn=978%200%2085404%20350%207"/></div></html>URL: [[http://www.rsc.org/Publishing/Books/0854043500.asp|http://www.rsc.org/Publishing/Books/0854043500.asp]].
<html>
<div class="csl-bib-body" style="line-height: 1.35">
<div class="csl-entry">Diana Yepes, Steven R. Kirk, Samantha Jenkins, and Albeiro Restrepo, “Structures, Energies and Bonding in Neutral and Charged Li Microclusters”, <i>Journal of Molecular Modeling</i> 18, no. 9 (2012): 4171–4189. </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1007%2Fs00894-012-1406-3&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Structures%2C%20energies%20and%20bonding%20in%20neutral%20and%20charged%20Li%20microclusters&amp;rft.jtitle=Journal%20of%20Molecular%20Modeling&amp;rft.volume=18&amp;rft.issue=9&amp;rft.aufirst=Diana&amp;rft.aulast=Yepes&amp;rft.au=Diana%20Yepes&amp;rft.au=Steven%20Kirk&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Albeiro%20Restrepo&amp;rft.date=2012&amp;rft.pages=4171-4189&amp;rft.spage=4171&amp;rft.epage=4189&amp;rft.issn=1610-2940"/></div></html>DOI: [[10.1007/s00894-012-1406-3|http://dx.doi.org/10.1007/s00894-012-1406-3]]
.headerShadow { visibility: hidden; } 
 .toolbar { visibility:hidden; }
  .selected .toolbar { visibility:visible; } 

.icapr {float: right; font-size: 9px; color: black; background-color: white; border: 1px solid #ccc; padding: 5px; margin: 5px;}
.icapl {float: left; font-size: 9px; color: black; background-color: white; border: 1px solid #ccc; padding: 5px; margin: 5px;}
.icapn {display: block; font-size: 9px; color: black; background-color: white; border: 1px solid #ccc; padding: 5px; margin: 5px;}
.icapr img {border: none; padding: 0; margin: 0;}
.icapl img {border: none; padding: 0; margin: 0;}
.icapn img {border: none; padding: 0; margin: 0;}

.tagging, .tagged { display:none; } 

/* custom styles for parallel columns. Classes cola and colb */
.cola {width:45%; float:left; margin-left:0.5em;}
.colb {width:45%; float:left; margin-left:1.5em;}
.clear {clear:both;} 

.viewer div.centeredTable {
	text-align: center;
}

.viewer div.centeredTable table {
	margin: 0 auto;
	text-align: left;
}

.viewer table.borderless,
.viewer table.borderless * {
	border: 0;
}
<html>
<div class="csl-bib-body">
<div class="csl-entry">S. Jenkins, I. Morrison and D. K. Ross, “Symmetry Classification of the Projected Vibrational Density of States in Ice VIII from Ab Initio Methods”, <i>Journal of Physics: Condensed Matter</i> 12, no. 6 (2000): 815–821.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1088%2F0953-8984%2F12%2F6%2F305&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Symmetry%20classification%20of%20the%20projected%20vibrational%20density%20of%20states%20in%20ice%20VIII%20from%20ab%20initio%20methods&amp;rft.jtitle=Journal%20of%20Physics%3A%20Condensed%20Matter&amp;rft.volume=12&amp;rft.issue=6&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=I.%20Morrison&amp;rft.au=D.%20K.%20Ross&amp;rft.date=2000&amp;rft.pages=815-821&amp;rft.spage=815&amp;rft.epage=821&amp;rft.issn=0953-8984"/>
</div></html>DOI: [[10.1088/0953-8984/12/6/305|http://dx.doi.org/10.1088/0953-8984/12/6/305]].
Note, this stuff is a bit old and in need of redrafting in some places. Apologies.
!Chapter 1
Early versions of TiddlyWiki didn't have tagging. A couple of smart TiddlyWiki hackers realised that being able to tag your data in TiddlyWiki would be really good and (as is often the case with TiddlyWiki) they were inspired to have a go at adding it themselves. The result was two TiddlyWiki adaptations that implemented tagging, one called TagglyWiki created by Jody Foo, and one called TiddlyTagWiki by Johnny ~LeRoy. 

TiddlyTagWiki used a 'tags as separate things' philosophy, space separated tags and popup menus when you click on a tag. TagglyWiki (and there was also a GTDTagglyWiki) had a 'tiddler is a tag is a tiddler' philosophy, had comma separated tags and introduced the concept of tiddlers displaying a list of their tagged tiddlers.

When Jeremy added tagging to the official TiddlyWiki version he considered both approaches and decided on the TiddlyTagWiki implementation. Jody Foo stopped maintaining TagglyWiki at around that time so TagglyWiki fans like me were forced to stick with their aging [[TagglyWiki]]s, missing out on numerous upgrades and cool new features as each revision of TiddlyWiki came out, until eventually they couldn't take it any more and started wondering what they could do to get hold of an up-to-date TiddlyWiki with TagglyWiki style tagging. (Okay, maybe that last part was just me!)

So when TiddlyWiki began to support enhancements via systemConfig plugins I decided to try to write a version of TagglyWiki style tagging as a plugin. It turned out to be easier than I thought. I managed to get it working and created MonkeyPirateTiddlyWiki (see [[Ancient Stuff]]) to share it (and my other plugins). Since then there have been a few enhancements like dynamic updating of tagged lists and the new sort controls.

TiddlyTagWiki has continued to be maintained by Johnny and now contains some interesting new plugins.

!Chapter 2
In TiddlyWiki version 2.0 Jeremy incorporated the "tiddler is a tag is a tiddler" concept into TiddlyWiki and introduced the "tagging" list, the other central component of TagglyTagging. Some of the main reasons for TagglyTagging's existence had vanished! But instead of disappearing TagglyTagging became the set of tools it is now, an enhanced tagging list with sort controls, some layout changes and a few other simple tools (NewHerePlugin, QuickOpenTagPlugin and RenameTagsPlugin) that facilitate using tags in the powerful TagglyTagging way.

!Chapter 3
After the TiddlyWiki 2.1 release TagglyTaggingPlugin was completely rewritten. Some new features were added like site map mode and better support for columns. Also support for the new refresh mechanism was added which greatly improved the efficiency of dynamically updating the tagging lists.
You can do this right here and now. Maybe you should print this out so it's easy to follow while working on screen. I presume you have some familiarity with TiddlyWiki basics. If you are having trouble following this then try this [[excellent tutorial|http://www.blogjones.com/TiddlyWikiTutorial.html]] first.

!Getting started: Create some content
* First hit "close others" to clear up your screen
* Click "new tiddler" from the main menu.
* Name the tiddler "~MyStuff" by typing into the title box.
* Add some contents to the contents box, for example "This is my stuff"
* Click the Done button to save the new tiddler. (We will return to this one later).
* Let's say you just returned from a meeting and want to enter a couple of notes about it
** Click "new tiddler"
** Enter tiddler title as "Meeting with Leo - 12 Oct"
** Add some meeting notes in the content box
** Don't click Done just yet...

!Tagging your content
* Before you save the "Meeting with Leo..." tiddler let's add some tags
** It's a meeting so let's give it a tag called "Meetings". Type Meetings in the tags box.
** The meeting was with Leo so let's give it a tag called Leo. Type Leo in the tags box.
** Let's say the meeting was about budget planning for example. Type Budget in the tags box.
** So your tags box should look like this: {{{Meetings Leo Budget}}}
*Now save the tiddler by clicking the Done button.

!Using the tags
*No big deal so far, right? Now we start to get into TagglyTagging territory.
*Notice the tags appear above the title. They are italicised to indicate they don't exist yet (just like any other tiddler that doesn't exist yet).
*Click on the Leo tag. You will open an empty tiddler called Leo.
**Give it some content like "Leo Runcible, ext 1234. Likes cats". Or whatever.
**Leo's a person so give him a tag of "People" by typing People in the tags box.
**Save it by clicking Done.

!Lets pick up the pace
*Go back to your "Meeting with Leo..." tiddler.
** Click on Meetings. Give Meetings a tag of ~MyStuff and save it.
** Click on People. Give People a tag of ~MyStuff and save it.
** Click on Budget. Give Budget a tag of Projects. Type something about the Budget project in the tiddler contents if you want. Save it.
** Now above the Budget title click on the Projects tag. Give Projects a tag of ~MyStuff. Save that.
* Now find your ~MyStuff tiddler. Look at the tagged tiddler list which appears at the bottom of the tiddler. It should be a list containing Meetings, People and Projects.
* Close a few tiddlers and try navigating to your meeting tiddler from ~MyStuff using the tagged tiddler lists.

That's a quick look at the basics of TagglyTagging. Hopefully by now you have some idea about what TagglyTagging can do. Play around with it a little more if you like. Then continue to...

!The New Here Button
* Click on People.
* Do you know any other people?
* If so click, "new here" in the People tiddler
** Notice that the tags box already contains the tag People. (This is what the new here button does. It creates a new tiddler with the tag already filled in).
** Type someone's name and some notes on that person. Click Done to Save.
* Add a couple more people for fun
** Notice what happens to the "tagged tiddler" list at the bottom of the People tiddler.

!Changing the structure of your data
Let's look at how easy it is to change your structure. Suppose you decide that you want to have different types of Projects: Ongoing, Current and Future
* Go to your Budget tiddler. Edit it and change the Projects tag to OngoingProjects. Save.
* Click the OngoingProjects tag. Give that a tag of "Projects".
* That's it. You're done. Well actually you haven't added the Ongoing and Future Projects but you can see that's not hard. Maybe click "new here" at the Projects tiddler. Or maybe just tag a project as Future Projects and do it from the bottom up.

!Another example
* Suppose your original meeting had an action item for you. Type it into the meeting notes as a wiki word or {{{[[}}}Do Something{{{]]}}}.
* Now click on it and give it a tag of Todo. Type any extra information about how you're going to do it when it's due by etc into the contents. Put a reminder in there if you have ReminderPlugin installed.
* Now make sure you can get to your Todos by tagging Todo tiddler as MyStuff.
* For convenience let's put a link to MyStuff in your MainMenu. This will put all your new organised information at your fingertips at all times.

!Sort Controls and Columns
* If you mouse over a tagged tiddler list you should see some buttons. Try them out. Note that if you save it remembers your choice.

!Wrapup
Hopefully you can see that TagglyTagging gives you a powerful way to organise and structure your information. Don't forget that you can still use conventional wiki links to navigate around your tiddlers. TagglyTagging just gives you another way to do cool stuff with your TiddlyWiki.


~~This tutorial is a draft. Feedback is welcome. Please [[contact|Contact]] me with comments and suggestions.~~
See [[TagglyTagging FAQ]].
See [[TagglyTagging Tutorial]].
<html>
<div class="csl-bib-body">
<div class="csl-entry">Samantha Jenkins  and Ian Morrison, “The Chemical Character of the Intermolecular Bonds of Seven Phases of Ice as Revealed by Ab Initio Calculation of Electron Densities”, <i>Chemical Physics Letters</i> 317, no. 1–2 (January 28, 2000): 97–102.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2FS0009-2614(99)01306-8&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20chemical%20character%20of%20the%20intermolecular%20bonds%20of%20seven%20phases%20of%20ice%20as%20revealed%20by%20ab%20initio%20calculation%20of%20electron%20densities&amp;rft.jtitle=Chemical%20Physics%20Letters&amp;rft.stitle=Chem.%20Phys.%20Lett.&amp;rft.volume=317&amp;rft.issue=1-2&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Ian%20Morrison&amp;rft.date=2000&amp;rft.pages=97-102&amp;rft.spage=97&amp;rft.epage=102"/></div></html>DOI: [[10.1016/S0009-2614(99)01306-8|http://dx.doi.org/10.1016/S0009-2614(99)01306-8]].
<html>
<div class="csl-bib-body" style="line-height: 1.35">
  <div class="csl-entry">Samantha Jenkins, Steven&nbsp; R. Kirk, Chunying Rong, and Dulin Yin, “The Cis-effect Using the Topology of the Electronic Charge Density”, <i>Molecular Physics</i> (November 2, 2012): 1–13.</div> <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1080%2F00268976.2012.745631&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20cis-effect%20using%20the%20topology%20of%20the%20electronic%20charge%20density&amp;rft.jtitle=Molecular%20Physics&amp;rft.stitle=Molecular%20Physics&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20%20%20R.%20Kirk&amp;rft.au=Chunying%20Rong&amp;rft.au=Dulin%20Yin&amp;rft.date=2012-11-02&amp;rft.pages=1-13&amp;rft.spage=1&amp;rft.epage=13&amp;rft.issn=0026-8976"/></div></html>DOI: [[10.1080/00268976.2012.745631|http://dx.doi.org/10.1080/00268976.2012.745631]]
<html>
<div class="csl-bib-body">
 <div class="csl-entry">S. Jenkins and I. Morrison, “The Dependence on Structure of the Projected Vibrational Density of States of Various Phases of Ice as Calculated by Ab Initio Methods”, <i>Journal of Physics: Condensed Matter</i> 13, no. 41 (2001): 9207–9229.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20dependence%20on%20structure%20of%20the%20projected%20vibrational%20density%20of%20states%20of%20various%20phases%20of%20ice%20as%20calculated%20by%20ab%20initio%20methods&amp;rft.jtitle=Journal%20of%20Physics%3A%20Condensed%20Matter&amp;rft.volume=13&amp;rft.issue=41&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=I.%20Morrison&amp;rft.date=2001&amp;rft.pages=9207-9229&amp;rft.spage=9207&amp;rft.epage=9229&amp;rft.issn=0953-8984"/>
</div></html>DOI: [[10.1088/0953-8984/13/41/312|http://dx.doi.org/10.1088/0953-8984/13/41/312]].
<html>
<div  class="csl-bib-body">
  <div class="csl-entry">J. R. Maza, S. Jenkins, S. R. Kirk, J. S. M. Anderson, and P. W. Ayers, “The Ehrenfest force topology: a physically intuitive approach for analyzing chemical interactions,” <i>Phys. Chem. Chem. Phys.</i> <b>15</b>(41), 17823–17836 (2013).</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1039%2FC3CP52687A&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20Ehrenfest%20force%20topology%3A%20a%20physically%20intuitive%20approach%20for%20analyzing%20chemical%20interactions&amp;rft.jtitle=Physical%20Chemistry%20Chemical%20Physics&amp;rft.stitle=Phys.%20Chem.%20Chem.%20Phys.&amp;rft.volume=15&amp;rft.issue=41&amp;rft.aufirst=Julio%20R.&amp;rft.aulast=Maza&amp;rft.au=Julio%20R.%20Maza&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=James%20S.%20M.%20Anderson&amp;rft.au=Paul%20W.%20Ayers&amp;rft.date=2013-09-17&amp;rft.pages=17823-17836&amp;rft.spage=17823&amp;rft.epage=17836&amp;rft.issn=1463-9084"></span>
</div></html>DOI [[10.1039/C3CP52687A|http://dx.doi.org/10.1039/C3CP52687A]]
<html>
<div class="csl-bib-body" >
<div class="csl-entry">Samantha Jenkins, Steven R. Kirk, and Paul W. Ayers, “The Importance of O--O Bonding Interactions in Various Phases of Ice”, In <i>Physics and Chemistry of Ice</i>, 257–264. Bremerhaven, Germany: Royal Society of Chemistry, 2006.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=urn%3Aisbn%3A978%200%2085404%20350%207&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=The%20importance%20of%20O--O%20bonding%20interactions%20in%20various%20phases%20of%20ice&amp;rft.btitle=Physics%20and%20Chemistry%20of%20Ice&amp;rft.place=Bremerhaven%2C%20Germany&amp;rft.publisher=Royal%20Society%20of%20Chemistry&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Paul%20W.%20Ayers&amp;rft.date=2006-07-23&amp;rft.pages=257-264&amp;rft.spage=257&amp;rft.epage=264&amp;rft.isbn=978%200%2085404%20350%207"/></div></html>URL: [[http://www.rsc.org/Publishing/Books/0854043500.asp|http://www.rsc.org/Publishing/Books/0854043500.asp]].
<html>
<div  class="csl-bib-body">
  <div " class="csl-entry">
    <div class="csl-left-margin"></div>T. Xu, S. Jenkins, C.-X. Xiao, J. R. Maza, and S. R. Kirk, “The Pt site reactivity of the molecular graphs of Au6Pt isomers,” <i>Chemical Physics Letters</i> 590,41-45 (2013).  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2Fj.cplett.2013.10.059&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20Pt%20site%20reactivity%20of%20the%20molecular%20graphs%20of%20Au6Pt%20isomers&amp;rft.jtitle=Chemical%20Physics%20Letters&amp;rft.stitle=Chemical%20Physics%20Letters&amp;rft.volume=590&amp;rft.aufirst=Tianlv&amp;rft.aulast=Xu&amp;rft.au=Tianlv%20Xu&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Chen-Xia%20Xiao&amp;rft.au=Julio%20R.%20Maza&amp;rft.au=Steven%20R.%20Kirk&amp;rft.date=2013-12-18&amp;rft.pages=41-45&amp;rft.spage=41&amp;rft.epage=45&amp;rft.issn=0009-2614"></span>
</div></html>DOI: [[10.1016/j.cplett.2013.10.059|http://dx.doi.org/10.1016/j.cplett.2013.10.059]].
<html>
<div class="csl-bib-body" style="line-height: 1.35">
<div class="csl-entry">S. Jenkins, S.R. Kirk, M. Persson, J. Carlen, and Z. Abbas, “The Role of Hydrogen Bonding in Nanocolloidal Amorphous Silica Particles in Electrolyte Solutions”, <i>Journal of Colloid and Interface Science</i> 339, no. 2 (November 2009): 351–361.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1016%2Fj.jcis.2009.07.069&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20role%20of%20hydrogen%20bonding%20in%20nanocolloidal%20amorphous%20silica%20particles%20in%20electrolyte%20solutions&amp;rft.jtitle=Journal%20of%20Colloid%20and%20Interface%20Science&amp;rft.volume=339&amp;rft.issue=2&amp;rft.aufirst=S.&amp;rft.aulast=Jenkins&amp;rft.au=S.%20Jenkins&amp;rft.au=S.R.%20Kirk&amp;rft.au=M.%20Persson&amp;rft.au=J.%20Carlen&amp;rft.au=Z.%20Abbas&amp;rft.date=2009-11&amp;rft.pages=351-361&amp;rft.spage=351&amp;rft.epage=361"/></div></html>DOI:[[10.1016/j.jcis.2009.07.069|http://dx.doi.org/10.1016/j.jcis.2009.07.069]].
<html><div class="csl-bib-body" style="line-height: 1.35; ">
  <div class="csl-entry">S. Jenkins, S.R. Kirk, A. Guevara-García, P.W. Ayers, E. Echegaray and A. Toro-Labbe, "The mechanics of charge-shift bonds: A perspective from the electronic stress tensor", <i>Chemical Physics Letters</i> <b>2011</b>, <i>510</i>, 18-20.</div>
  </div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F16%2Fj.cplett.2011.05.023&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20mechanics%20of%20charge-shift%20bonds%3A%20A%20perspective%20from%20the%20electronic%20stress%20tensor&amp;rft.jtitle=Chemical%20Physics%20Letters&amp;rft.volume=510&amp;rft.issue=1-3&ajavascript:;mp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Alfredo%20Guevara-Garc%C3%ADa&amp;rft.au=Paul%20W.%20Ayers&amp;rft.au=Eleonora%20Echegaray&amp;rft.au=Alejandro%20Toro-Labbe&amp;rft.date=2011-06-24&amp;rft.pages=18-20&amp;rft.spage=18&amp;rft.epage=20&amp;rft.issn=0009-2614"/>
</div></html>URL:[[http://www.sciencedirect.com/science/article/pii/S000926141100594X|http://www.sciencedirect.com/science/article/pii/S000926141100594X]], DOI: 16/j.cplett.2011.05.023
<html>
<div  class="csl-bib-body">
  <div class="csl-entry">
   <div >S. Jenkins, L. Blancafort, S. R. Kirk, and M. J. Bearpark, “The response of the electronic structure to electronic excitation and double bond torsion in fulvene: a combined QTAIM, stress tensor and MO perspective,”  <i>Phys. Chem. Chem. Phys.</i> <b>16</b>(15), 7115–7126 (2014).</div> </div>   <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1039%2FC4CP00003J&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20response%20of%20the%20electronic%20structure%20to%20electronic%20excitation%20and%20double%20bond%20torsion%20in%20fulvene%3A%20a%20combined%20QTAIM%2C%20stress%20tensor%20and%20MO%20perspective&amp;rft.jtitle=Physical%20Chemistry%20Chemical%20Physics&amp;rft.stitle=Phys.%20Chem.%20Chem.%20Phys.&amp;rft.volume=16&amp;rft.issue=15&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Llu%C3%ADs%20Blancafort&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Michael%20J.%20Bearpark&amp;rft.date=2014-03-19&amp;rft.pages=7115-7126&amp;rft.spage=7115&amp;rft.epage=7126&amp;rft.issn=1463-9084"></span>
</div></html>DOI: [[10.1039/C4CP00003J|http://dx.doi.org/10.1039/C4CP00003J]].
<html>
<div class="csl-bib-body" >
  <div class="csl-entry">Kirk, Steven Robert, “The ‘Red Ink’ Effect - How Does Written Feedback Affect the Scientific Writing Skills of Science Students?”, <i>Pedagogical Papers Series (IT University of Goteborg)</i> 3, no. 4. Pedagogical Paper Series (Winter 2009). ISSN: 1654-3009.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=The%20'red%20ink'%20effect%20-%20how%20does%20written%20feedback%20affect%20the%20scientific%20writing%20skills%20of%20science%20students%3F&amp;rft.jtitle=Pedagogical%20Papers%20Series%20(IT%20University%20of%20Goteborg)&amp;rft.volume=3&amp;rft.issue=4&amp;rft.aufirst=Steven%20Robert&amp;rft.aulast=Kirk&amp;rft.au=Steven%20Robert%20Kirk&amp;rft.date=2009&amp;rft.issn=1654-3009"/></div></html>URL: [[https://document.chalmers.se/download?docid=1814546738|https://document.chalmers.se/download?docid=1814546738]].
<html>
<div class="csl-bib-body">
<div class="csl-entry">M.I. Heggie, S. Jenkins, C. P. Ewels, P. Jemmer, R. Jones, and P. R. Briddon. “Theory of Dislocations in Diamond and Silicon and Their Interaction with Hydrogen”, <i>Journal of Physics: Condensed Matter</i> 12, no. 49 (2000): 10263–10270.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Theory%20of%20dislocations%20in%20diamond%20and%20silicon%20and%20their%20interaction%20with%20hydrogen&amp;rft.jtitle=Journal%20of%20Physics%3A%20Condensed%20Matter&amp;rft.volume=12&amp;rft.issue=49&amp;rft.aufirst=M.%20I.&amp;rft.aulast=Heggie&amp;rft.au=M.%20I.%20Heggie&amp;rft.au=S.%20Jenkins&amp;rft.au=C.%20P.%20Ewels&amp;rft.au=P.%20Jemmer&amp;rft.au=R.%20Jones&amp;rft.au=P.%20R.%20Briddon&amp;rft.date=2000&amp;rft.pages=10263-10270&amp;rft.spage=10263&amp;rft.epage=10270&amp;rft.issn=0953-8984"/>
</div></html>DOI: [[10.1088/0953-8984/12/49/327|http://dx.doi.org/10.1088/0953-8984/12/49/327]].
/***
|Name|TiddlerTweakerPlugin|
|Source|http://www.TiddlyTools.com/#TiddlerTweakerPlugin|
|Version|2.4.4|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|select multiple tiddlers and modify author, created, modified and/or tag values|
~TiddlerTweaker is a 'power tool' for TiddlyWiki authors.  Select multiple tiddlers from a listbox and 'bulk modify' the creator, author, created, modified and/or tag values of those tiddlers using a compact set of form fields.  The values you enter into the fields simultaneously overwrite the existing values in all tiddlers you have selected.
!!!!!Usage
<<<
{{{<<tiddlerTweaker>>}}}
{{smallform{<<tiddlerTweaker>>}}}
By default, any tags you enter into the TiddlerTweaker will //replace// the existing tags in all the tiddlers you have selected.  However, you can also use TiddlerTweaker to quickly filter specified tags from the selected tiddlers, while leaving any other tags assigned to those tiddlers unchanged:
>Any tag preceded by a '+' (plus) or '-' (minus), will be added or removed from the existing tags //instead of replacing the entire tag definition// of each tiddler (e.g., enter '-excludeLists' to remove that tag from all selected tiddlers.  When using this syntax, care should be taken to ensure that //every// tag is preceded by '+' or '-', to avoid inadvertently overwriting any other existing tags on the selected tiddlers.  (note: the '+' or '-' prefix on each tag value is NOT part of the tag value, and is only used by TiddlerTweaker to control how that tag value is processed)
Important Notes:
* TiddlerTweaker is a 'power user' tool that can make changes to many tiddlers at once.  ''You should always have a recent backup of your document (or 'save changes' just *before* tweaking the tiddlers), just in case you accidentally 'shoot yourself in the foot'.''
* The date and author information on any tiddlers you tweak will ONLY be updated if the corresponding checkboxes have been selected.  As a general rule, after using TiddlerTweaker, always ''//remember to save your document//'' when you are done, even though the tiddler timeline tab may not show any recently modified tiddlers.
* Selecting and updating all tiddlers in a document can take a while.  Your browser may warn about an 'unresponsive script'.  Usually, if you allow it to continue, it should complete the processing... eventually.  Nonetheless, be sure to save your work before you begin tweaking lots of tiddlers, just in case something does get stuck.
<<<
!!!!!Revisions
<<<
2009.09.15 2.4.4 added 'edit' button. moved html definition to separate section
2009.09.13 2.4.3 in settiddlers(), convert backslashed chars (\n\b\s\t) in replacement text
2009.06.26 2.4.2 only add brackets around tags containing spaces
2009.06.22 2.4.1 in setFields(), add brackets around all tags shown tweaker edit field
2009.03.30 2.4.0 added 'sort by modifier'
2009.01.22 2.3.0 added support for text pattern find/replace
2008.10.27 2.2.3 in setTiddlers(), fixed Safari bug by replacing static Array.concat(...) with new Array().concat(...)
2008.09.07 2.2.2 added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.05.12 2.2.1 replace built-in backstage tweak task with tiddler tweaker control panel (moved from BackstageTweaks)
2008.01.13 2.2.0 added 'auto-selection' links: all, changed, tags, title, text
2007.12.26 2.1.0 added support for managing 'creator' custom field (see [[CoreTweaks]])
2007.11.01 2.0.3 added config.options.txtTweakerSortBy for cookie-based persistence of list display order preference setting.
2007.09.28 2.0.2 in settiddlers() and deltiddlers(), added suspend/resume notification handling (improves performance when operating on multiple tiddlers)
2007.08.03 2.0.1 added shadow definition for [[TiddlerTweaker]] tiddler for use as parameter references with {{{<<tiddler>>, <<slider>> or <<tabs>>}}} macros.
2007.08.03 2.0.0 converted from inline script
2006.01.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.TiddlerTweakerPlugin= {major: 2, minor: 4, revision: 4, date: new Date(2009,9,15)};

// shadow tiddler
config.shadowTiddlers.TiddlerTweaker='<<tiddlerTweaker>>';

// defaults
if (config.options.txtTweakerSortBy==undefined) config.options.txtTweakerSortBy='modified';

// backstage task
if (config.tasks) { // for TW2.2b3 or above
	config.tasks.tweak.tooltip='review/modify tiddler internals: dates, authors, tags, etc.';
	config.tasks.tweak.content='{{smallform small groupbox{<<tiddlerTweaker>>}}}';
}

// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

config.macros.tiddlerTweaker = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,'span');
		span.innerHTML=store.getTiddlerText('TiddlerTweakerPlugin##html');
		this.init(span.getElementsByTagName('form')[0],config.options.txtTweakerSortBy);
	},
	init: function(f,sortby) { // initialize form controls
		if (!f) return; // form might not be rendered yet...
		while (f.list.options[0]) f.list.options[0]=null; // empty current list content
		var tids=store.getTiddlers(sortby);
		if (sortby=='size') // descending order
			tids.sort(function(a,b) {return a.text.length > b.text.length ? -1 : (a.text.length == b.text.length ? 0 : +1);});
		var who='';
		for (i=0; i<tids.length; i++) { var t=tids[i];
			var label=t.title; var value=t.title;
			switch (sortby) {
				case 'modified':
				case 'created':
					var t=tids[tids.length-i-1]; // reverse order
					var when=t[sortby].formatString('YY.0MM.0DD 0hh:0mm ');
					label=when+t.title;
					value=t.title;
					break;
				case 'size':
					label='['+t.text.length+'] '+label;
					break;
				case 'modifier':
				case 'creator':
					if (who!=t[sortby]) {
						who=t[sortby];
						f.list.options[f.list.length]=new Option('by '+who+':','',false,false);
					}
					label='\xa0\xa0\xa0'+label; // indent
					break;
			}
			f.list.options[f.list.length]=new Option(label,value,false,false);
		}
		f.title.value=f.who.value=f.creator.value=f.tags.value='';
		f.cm.value=f.cd.value=f.cy.value=f.ch.value=f.cn.value='';
		f.mm.value=f.md.value=f.my.value=f.mh.value=f.mn.value='';
		f.stats.disabled=f.set.disabled=f.del.disabled=f.edit.disabled=f.display.disabled=true;
		f.settitle.disabled=false;
		config.options.txtTweakerSortBy=sortby;
		f.sortby.value=sortby; // sync droplist
		if (sortby!='modified') saveOptionCookie('txtTweakerSortBy');
		else removeCookie('txtTweakerSortBy');
	},
	selecttiddlers: function(here) { // enables/disables inputs based on #items selected
		var f=here.form; var list=f.list;
		var c=0; for (i=0;i<list.length;i++) if (list.options[i].selected) c++;
		if (c>1) f.title.disabled=true;
		if (c>1) f.settitle.checked=false;
		f.set.disabled=(c==0);
		f.del.disabled=(c==0);
		f.edit.disabled=(c==0);
		f.display.disabled=(c==0);
		f.settitle.disabled=(c>1);
		f.stats.disabled=(c==0);
		var msg=(c==0)?'select tiddlers':(c+' tiddler'+(c!=1?'s':'')+' selected');
		here.previousSibling.firstChild.firstChild.nextSibling.innerHTML=msg;
		if (c) clearMessage(); else displayMessage('no tiddlers selected');
	},
	setfields: function(here) { // set fields from first selected tiddler
		var f=here.form;
		if (!here.value.length) {
			f.title.value=f.who.value=f.creator.value=f.tags.value='';
			f.cm.value=f.cd.value=f.cy.value=f.ch.value=f.cn.value='';
			f.mm.value=f.md.value=f.my.value=f.mh.value=f.mn.value='';
			return;
		}
		var tid=store.getTiddler(here.value); if (!tid) return;
		f.title.value=tid.title;
		f.who.value=tid.modifier;
		f.creator.value=tid.fields['creator']||''; // custom field - might not exist
		f.tags.value=tid.tags.map(function(t){return String.encodeTiddlyLink(t)}).join(' ');
		var c=tid.created; var m=tid.modified;
		f.cm.value=c.getMonth()+1;
		f.cd.value=c.getDate();
		f.cy.value=c.getFullYear();
		f.ch.value=c.getHours();
		f.cn.value=c.getMinutes();
		f.mm.value=m.getMonth()+1;
		f.md.value=m.getDate();
		f.my.value=m.getFullYear();
		f.mh.value=m.getHours();
		f.mn.value=m.getMinutes();
	},
	settiddlers: function(here) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		var cdate=new Date(f.cy.value,f.cm.value-1,f.cd.value,f.ch.value,f.cn.value);
		var mdate=new Date(f.my.value,f.mm.value-1,f.md.value,f.mh.value,f.mn.value);
		if (tids.length>1 && !confirm('Are you sure you want to update these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			var title=!f.settitle.checked?tid.title:f.title.value;
			var who=!f.setwho.checked?tid.modifier:f.who.value;
			var text=tid.text;
			if (f.replacetext.checked) {
				var r=f.replacement.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
				text=text.replace(new RegExp(f.pattern.value,'mg'),r);
			}				
			var tags=tid.tags;
			if (f.settags.checked) { 
				var intags=f.tags.value.readBracketedList();
				var addtags=[]; var deltags=[]; var reptags=[];
				for (i=0;i<intags.length;i++) {
					if (intags[i].substr(0,1)=='+')
						addtags.push(intags[i].substr(1));
					else if (intags[i].substr(0,1)=='-')
						deltags.push(intags[i].substr(1));
					else
						reptags.push(intags[i]);
				}
				if (reptags.length)
					tags=reptags;
				if (addtags.length)
					tags=new Array().concat(tags,addtags);
				if (deltags.length)
					for (i=0;i<deltags.length;i++)
						{ var pos=tags.indexOf(deltags[i]); if (pos!=-1) tags.splice(pos,1); }
			}
			if (!f.setcdate.checked) cdate=tid.created;
			if (!f.setmdate.checked) mdate=tid.modified;
			store.saveTiddler(tid.title,title,text,who,mdate,tags,tid.fields);
			if (f.setcreator.checked) store.setValue(tid.title,'creator',f.creator.value); // set creator
			if (f.setcdate.checked) tid.assign(null,null,null,null,null,cdate); // set create date
		}
		store.resumeNotifications();
		this.init(f,f.sortby.value);
	},
	displaytiddlers: function(here,edit) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0; i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		story.displayTiddlers(story.findContainingTiddler(f),tids,edit?DEFAULT_EDIT_TEMPLATE:null);
	},
	deltiddlers: function(here) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		if (!confirm('Are you sure you want to delete these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			if (tid.tags.contains('systemConfig')) {
				var msg=tid.title+' is tagged with systemConfig.'
					+'\n\nRemoving this tiddler may cause unexpected results.  Are you sure?';
				if (!confirm(msg)) continue;
			}
			store.removeTiddler(tid.title);
			story.closeTiddler(tid.title);
		}
		store.resumeNotifications();
		this.init(f,f.sortby.value);
	},
	stats: function(here) {
		var f=here.form; var list=f.list; var tids=[]; var out=''; var tot=0;
		var target=f.nextSibling;
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			out+='[['+tid.title+']] '+tid.text.length+'\n'; tot+=tid.text.length;
		}
		var avg=tot/tids.length;
		out=tot+' bytes in '+tids.length+' selected tiddlers ('+avg+' bytes/tiddler)\n<<<\n'+out+'<<<\n';
		removeChildren(target);
		target.innerHTML="<hr><font size=-2><a href='javascript:;' style='float:right' "
			+"onclick='this.parentNode.parentNode.style.display=\"none\"'>close</a></font>";
		wikify(out,target);
		target.style.display='block';
	}
};
//}}}
/***
//{{{
!html
<style>
.tiddlerTweaker table,
.tiddlerTweaker table tr,
.tiddlerTweaker table td
	{ padding:0;margin:0;border:0;white-space:nowrap; }
</style><form class='tiddlerTweaker'><!--
--><table style="width:100%"><tr valign="top"><!--
--><td style="text-align:center;width:99%;"><!--
	--><font size=-2><div style="text-align:left;"><span style="float:right"><!--
	-->&nbsp; <a href="javascript:;" 
		title="select all tiddlers"
		onclick="
		var f=this; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=0; t<f.list.options.length; t++)
			if (f.list.options[t].value.length) f.list.options[t].selected=true;
		config.macros.tiddlerTweaker.selecttiddlers(f.list);
		return false">all</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers that are new/changed since the last file save"
		onclick="
		var lastmod=new Date(document.lastModified);
		var f=this; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=0; t<f.list.options.length; t++) {
			var tid=store.getTiddler(f.list.options[t].value);
			f.list.options[t].selected=tid&&tid.modified>lastmod;
		}
		config.macros.tiddlerTweaker.selecttiddlers(f.list);
		return false">changed</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers with at least one matching tag"
		onclick="
		var t=prompt('Enter space-separated tags (match ONE)');
		if (!t||!t.length) return false;
		var tags=t.readBracketedList();
		var f=this; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=0; t<f.list.options.length; t++) {
			f.list.options[t].selected=false;
			var tid=store.getTiddler(f.list.options[t].value);
			if (tid&&tid.tags.containsAny(tags)) f.list.options[t].selected=true;
		}
		config.macros.tiddlerTweaker.selecttiddlers(f.list);
		return false">tags</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers whose titles include matching text"
		onclick="
		var txt=prompt('Enter a title (or portion of a title) to match');
		if (!txt||!txt.length) return false;
		var f=this; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=0; t<f.list.options.length; t++) {
			f.list.options[t].selected=f.list.options[t].value.indexOf(txt)!=-1;
		}
		config.macros.tiddlerTweaker.selecttiddlers(f.list);
		return false">titles</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers containing matching text"
		onclick="
		var txt=prompt('Enter tiddler text (content) to match');
		if (!txt||!txt.length) return false;
		var f=this; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=0; t<f.list.options.length; t++) {
			var tt=store.getTiddlerText(f.list.options[t].value,'');
			f.list.options[t].selected=(tt.indexOf(txt)!=-1);
		}
		config.macros.tiddlerTweaker.selecttiddlers(f.list);
		return false">text</a> &nbsp;<!--
	--></span><span>select tiddlers</span><!--
	--></div><!--
	--></font><select multiple name=list size="11" style="width:99.99%" 
		title="use click, shift-click and/or ctrl-click to select multiple tiddler titles" 
		onclick="config.macros.tiddlerTweaker.selecttiddlers(this)" 
		onchange="config.macros.tiddlerTweaker.setfields(this)"><!--
	--></select><br><!--
	-->show<input type=text size=1 value="11" 
		onchange="this.form.list.size=this.value; this.form.list.multiple=(this.value>1);"><!--
	-->by<!--
	--><select name=sortby size=1 
		onchange="config.macros.tiddlerTweaker.init(this.form,this.value)"><!--
	--><option value="title">title</option><!--
	--><option value="size">size</option><!--
	--><option value="modified">modified</option><!--
	--><option value="created">created</option><!--
	--><option value="modifier">modifier</option><!--
	--></select><!--
	--><input type="button" value="refresh" 
		onclick="config.macros.tiddlerTweaker.init(this.form,this.form.sortby.value)"<!--
	--> <input type="button" name="stats" disabled value="totals..." 
		onclick="config.macros.tiddlerTweaker.stats(this)"><!--
--></td><td style="width:1%"><!--
	--><div style="text-align:left"><font size=-2>&nbsp;modify values</font></div><!--
	--><table style="width:100%;"><tr><!--
	--><td style="padding:1px"><!--
		--><input type=checkbox name=settitle unchecked 
			title="allow changes to tiddler title (rename tiddler)" 
			onclick="this.form.title.disabled=!this.checked">title<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=title size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setcreator unchecked 
			title="allow changes to tiddler creator" 
			onclick="this.form.creator.disabled=!this.checked">created by<!--
	--></td><td style="padding:1px;"><!--
		--><input type=text name=creator size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setwho unchecked 
			title="allow changes to tiddler author" 
			onclick="this.form.who.disabled=!this.checked">modified by<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=who size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setcdate unchecked 
			title="allow changes to created date" 
			onclick="var f=this.form;
				f.cm.disabled=f.cd.disabled=f.cy.disabled=f.ch.disabled=f.cn.disabled=!this.checked"><!--
		-->created on<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=cm size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=cd size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=cy size=4 style="width:3em;padding:0;text-align:center" disabled><!--
		--> at <input type=text name=ch size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> : <input type=text name=cn size=2 style="width:2em;padding:0;text-align:center" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setmdate unchecked 
			title="allow changes to modified date" 
			onclick="var f=this.form;
				f.mm.disabled=f.md.disabled=f.my.disabled=f.mh.disabled=f.mn.disabled=!this.checked"><!--
		-->modified on<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=mm size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=md size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=my size=4 style="width:3em;padding:0;text-align:center" disabled><!--
		--> at <input type=text name=mh size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> : <input type=text name=mn size=2 style="width:2em;padding:0;text-align:center" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=replacetext unchecked
			title="find/replace matching text" 
			onclick="this.form.pattern.disabled=this.form.replacement.disabled=!this.checked">replace text<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=pattern size=15 value="" style="width:40%" disabled 
			title="enter TEXT PATTERN (regular expression)"> with<!--
		--><input type=text name=replacement size=15 value="" style="width:40%" disabled 
			title="enter REPLACEMENT TEXT"><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=settags checked 
			title="allow changes to tiddler tags" 
			onclick="this.form.tags.disabled=!this.checked">tags<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=tags size=35 value="" style="width:98%" 
			title="enter new tags or use '+tag' and '-tag' to add/remove tags from existing tags"><!--
	--></td></tr></table><!--
	--><div style="text-align:center"><!--
	--><nobr><input type=button name=display disabled style="width:24%" value="display" 
		title="show selected tiddlers"
		onclick="config.macros.tiddlerTweaker.displaytiddlers(this,false)"><!--
	--> <input type=button name=edit disabled style="width:23%" value="edit" 
		title="edit selected tiddlers"
		onclick="config.macros.tiddlerTweaker.displaytiddlers(this,true)"><!--
	--> <input type=button name=del disabled style="width:24%" value="delete" 
		title="remove selected tiddlers"
		onclick="config.macros.tiddlerTweaker.deltiddlers(this)"><!--
	--> <input type=button name=set disabled style="width:24%" value="update" 
		title="update selected tiddlers"
		onclick="config.macros.tiddlerTweaker.settiddlers(this)"></nobr><!--
	--></div><!--
--></td></tr></table><!--
--></form><span style="display:none"><!--content replaced by tiddler "stats"--></span>
!end
//}}}
***/
 
Tiddlywiki is a dynamic web page generation, editing and publishing system that runs in a web browser. See the [[official TiddlyWiki site|http://www.tiddlywiki.com]] and the [[user/developer community site|http://www.tiddlywiki.org]].
<html>
<div class="csl-bib-body" style="line-height: 1.35">
<div class="csl-entry">Xu, Chang, Steven R. Kirk, and Samantha Jenkins, “Tiling for Performance Tuning on Different&nbsp; Models of GPUs”, In <i>ISISE&nbsp; ’09 Proceedings of the 2009 Second International Symposium on Information Science and Engineering</i>, 500–504. Shanghai, China: IEEE Computer Society Washington, DC, USA, 2009.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1109%2FISISE.2009.60&amp;rft_id=urn%3Aisbn%3A978-0-7695-3991-1&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=Tiling%20for%20Performance%20Tuning%20on%20Different%20%20Models%20of%20GPUs&amp;rft.btitle=ISISE%20'09%20Proceedings%20of%20the%202009%20Second%20International%20Symposium%20on%20Information%20Science%20and%20Engineering&amp;rft.place=Shanghai%2C%20China&amp;rft.publisher=IEEE%20Computer%20Society%20Washington%2C%20DC%2C%20USA&amp;rft.aufirst=Chang&amp;rft.aulast=Xu&amp;rft.au=Chang%20Xu&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Samantha%20Jenkins&amp;rft.date=2009-12-26&amp;rft.pages=500-504&amp;rft.spage=500&amp;rft.epage=504&amp;rft.isbn=978-0-7695-3991-1"/></div></html>DOI: [[10.1109/ISISE.2009.60|http://dx.doi.org/10.1109/ISISE.2009.60]].
/%
!info
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide right sidebar (SideBarOptions)|
Usage
<<<
{{{
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleRightSidebar##show
	with: {{config.options.chkShowRightSidebar?'►':'◄'}}>>
<<<
Configuration:
<<<
{{{
config.options.chkShowRightSidebar (true)
config.options.txtToggleRightSideBarLabelShow (◄)
config.options.txtToggleRightSideBarLabelHide (►)
}}}
<<<
!end
!show
<<tiddler {{
	var co=config.options;
	if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=co.chkShowRightSidebar?'block':'none';
		da.style.marginRight=co.chkShowRightSidebar?'':'1em';
	}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var co=config.options;
	var opt='chkShowRightSidebar';
	var show=co[opt]=!co[opt];
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=show?'block':'none';
		da.style.marginRight=show?'':'1em';
	}
	saveOptionCookie(opt);
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
		this.innerHTML=show?labelHide:labelShow;
	this.title=(show?'hide':'show')+' right sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
">$1</a></html>
!end
%/<<tiddler {{
	var src='ToggleRightSidebar';
	src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	'$1'!='$'+'1'?'$1':(co.chkShowRightSidebar?labelHide:labelShow);
}} {{
	var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
	'$2'!='$'+'2'?'$2':tip;
}}>>
<html>
<div class="csl-bib-body">
<div class="csl-entry">Samantha Jenkins, Steven R. Kirk, and Paul W. Ayers, “Topological Transitions Between Ice Phases”, In <i>Physics and Chemistry of Ice</i>, 249–256. Bremerhaven, Germany: Royal Society of Chemistry, 2006.</div>
  <span class="Z3988" title="url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_id=info%3Adoi%2F10.1039%2F9781847557773&amp;rft_id=urn%3Aisbn%3A978%200%2085404%20350%207&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=Topological%20transitions%20between%20ice%20phases&amp;rft.btitle=Physics%20and%20Chemistry%20of%20Ice&amp;rft.place=Bremerhaven%2C%20Germany&amp;rft.publisher=Royal%20Society%20of%20Chemistry&amp;rft.aufirst=Samantha&amp;rft.aulast=Jenkins&amp;rft.au=Samantha%20Jenkins&amp;rft.au=Steven%20R.%20Kirk&amp;rft.au=Paul%20W.%20Ayers&amp;rft.date=2006-07-23&amp;rft.pages=249-256&amp;rft.spage=249&amp;rft.epage=256&amp;rft.isbn=978%200%2085404%20350%207"/></div></html>DOI: [[10.1039/9781847557773|http://dx.doi.org/10.1039/9781847557773]].
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
config.options.chkShowRightSidebar=false; 
config.options.chkSinglePageMode=true;