<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
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
/*{{{*/
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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.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]];}

#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:0px; top:0px;}

.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:0px 3px 0px 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:0px; padding-bottom:0px;}

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

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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='header' 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' 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>
<!--}}}-->
<!--{{{-->
<div class='toolbar' 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>
<!--}}}-->
<!--{{{-->
<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>>
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]]
<<importTiddlers>>
BZones is a JAVA applet visualizing Brillouin zones by the original author Otto Scheibelhofer, extended  by Johannes Poms
&copy; 2009
!Books
Symmetry principles in solid state and molecular physics  by  Melvin J. Lax
 http://books.google.at/books?id=Nr2Uo9u0a8cC&dq=Symmetry+principles+in+solid+state+and+molecular+physics

Point groups, space groups, crystals, molecules by R. Mirman
http://books.google.at/books?id=fAolOGrjWZ0C&q

The Mathematical Theory of Symmetry in Solids by Christopher John Bradley, Arthur P. Cracknell

The theory of Brillouin zones and electronic states in crystals by Harry Jones
[file:./Jones,%20Theory%20of%20Brillouin%20Zones%20and%20Electronic%20States%20in%20Crystals%20(1960)(ASIN%20B0000CKQ6X).djvu]

!Papers

The monoclinic lattice isn't well described in above books. There was a series of articles on the Russian Physics Journal (former Soviet Physics Journal) in the 70s covering the geometry of the brillouin zone. Maybe you can get the papers
*Dispersion laws in a simple monoclinic lattice 	Russian Physics Journal Volume 14, Number 4 / April 1971
http://www.springerlink.com/content/g875263511q6654u
*Brillouin zone of a base-centered monoclinic lattice Russian Physics Journal Volume 17, Number 7 / Juli 1974
http://www.springerlink.com/content/j4085p1p93144642
[[Useful Stuff]] [[Main sources]] [[Voronoi Diagrams]] [[MATLAB script]]
[[GettingStarted]]
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>>
* Original renderer http://www.dgp.toronto.edu/~mjmcguff/learn/java/11-3d/

Some nice applets for inspiration
*http://www.crystallographic-software.com/
*http://www.iumsc.indiana.edu/morphology/xmorphDemo.html
*http://escher.epfl.ch/crystalOgraph/
Accepted parameters are:

|!tag|!default |!type|!description|h
|size      |400     |int      |height of the applet window|
|selectable |false   |boolean   |disables the choice box*|
|crystalID  |bcc   |string   |short name of the lattice to be shown**|
|a | ***       | double      |lattice parameter a|
|b |***        | double      |lattice parameter b|
|c |***        |double       |lattice parameter c|
|alpha |*** |double       |lattice parameter alpha|
|beta  |***  |double       |lattice parameter beta|
|gamma |***  |double    |lattice parameter gamma|
|scale    |100 or 200   |int      |scaling the image inside the square|
|elevation  |12  |int     |coordinate of the point of view|
|azimuth    |106  |int    |coordiante of the point of view|
|perspective |false   |boolean   |perspective on/off|
|showaxes    |true     |boolean   |visibility of axes|
|showbase    |false   |boolean    |visibility of reciprocal base vectors|
|showbasis |falaw     |boolean   |visibility of base translation vectors|
|showsymmetry  |true      |boolean     |visibility of symmetry points and edges|
|zoom  |true or false |boolean   |enables /disables mouse wheel zoom|
|caption|c
    
If no parameter is given, or it is not interpreted right, the default value is taken.
The right lattice is not chosen by the crystal parameters, you have to do this yourself.

     * Has no effect in the version without interface

     ** All 14 Bravais lattices:
|scc   |simple cubic lattice |
|bcc   |body centered cubic lattice|
|fcc    |face centered cubic lattice|
|hex   |hexagonal lattice|
|tets   |simple tetragonal lattice|
|tetbc |body centered tetragonal lattice|
|orthos  |simple orthorhombic|
|orthobase |base centered orthorhombic|
|orthofc|face centered orthorhombic|
|orthobc  |body centered orthorhombic|
|trigonal |primitive trigonal lattice|
|monos |simple monoclinic|
|monobase |base centered monoclinic|
|tri |triclinic lattice|
        
     *** every crystallclass uses own default values 



{{{
%Based on QHULL DEMO
%http://www.mathworks.com/products/demos/shipping/matlab/qhulldemo.html

clear all;
close all;
clc;

disp('+++++++++++++++++++');
disp('  BRILLOUIN ZONES  ');
disp('(c)  Poms 2009     ');
disp('+++++++++++++++++++');

a=input(['\n','General triclinic lattice','\n','a: ']);
if isempty(a), a=1.2; end
b=input('b: ');
if isempty(b), b=2; end
c=input('c: ');
if isempty(c), c=1.5; end
alpha=input('alpha: ');
if isempty(alpha), alpha=72; end
beta=input('beta: ');
if isempty(beta), beta=80; end
gamma=input('gamma: ');
if isempty(gamma), gamma=110; end
animation=input('Make an animation and save the movie as gif yes/no: ','s');
if isempty(animation), animation='y'; end

alpha=alpha*pi/180;
beta=beta*pi/180;
gamma=gamma*pi/180;

w1 = cos(alpha) - cos(beta) * cos(gamma)/(sin(beta) * sin(gamma));
w2 = sin(gamma)^2 - cos(beta)^2 - cos(alpha)^2 ...
    + 2*cos(alpha) *cos(beta) * cos(gamma);
w2 = sqrt(w2) / (sin(beta) * sin(gamma));

T1 = [a, 0, 0];
T2 = [b * cos(gamma), b	* sin(gamma), 0];
T3 = [c * cos(beta), c * w1*sin(beta), c*w2*sin(beta)];

spat=cross(T1,T2)*T3';

G1=2*pi*cross(T2,T3)/spat;
G2=2*pi*cross(T3,T1)/spat;
G3=2*pi*cross(T1,T2)/spat;

X = zeros(125,3);

l=1;
for i=-2:2;
    for j=-2:2;
        for k=-2:2;
            X(l,:)=i*G1+j*G2+k*G3;
            l=l+1;
        end
    end
end


cla reset; hold on

% Compute Voronoi diagram.
[c,v] = voronoin(X);

nx = c(v{63},:);
tri = convhulln(nx);

% Plot the Voronoi diagram.

if (animation ~= 'y')
    fh=figure(1);
    plot3(X(:,1),X(:,2),X(:,3),'b.','markersize',10);
    for i = 1:size(tri,1)
        patch(nx(tri(i,:),1),nx(tri(i,:),2),nx(tri(i,:),3),i,'FaceAlpha',0.85);
    end
    % Modify the view.
    view(3);
    title('1st Brillouin zone');
    axis equal tight off  vis3d
    grid on;
    camzoom(2);
    rotate3d on
else
    fh=figure('Position',[10,10,400,300]);  %size of the gif!
    for i = 1:size(tri,1)
        patch(nx(tri(i,:),1),nx(tri(i,:),2),nx(tri(i,:),3),i,'FaceAlpha',0.85);
    end
    title('1st Brillouin zone');
    axis equal tight off vis3d
    camtarget([0,0,0]);
    loop=36;
    azimuth=360/loop*[0:loop-1];
    view(azimuth(1),30);
    drawnow;
    pause(0.1);
    mov=getframe(gcf);
    
    gifname = 'animation.gif';
    I = frame2im(mov);
    [X, map] = rgb2ind(I, 128);
    imwrite(X, map, gifname, 'GIF', 'WriteMode', 'overwrite', 'DelayTime', 0, 'LoopCount', Inf);
    
    for k=2:loop
     view(azimuth(k),30);
      drawnow;
      pause(0.1);
      mov=getframe(gcf);
      I = frame2im(mov);
        [X, map] = rgb2ind(I, 128);
        imwrite(X, map, gifname, 'GIF', 'WriteMode', 'append', 'DelayTime', 0);
    end
end
}}}

[[brillouin_zones_matlab.m|brillouin_zones_matlab.m]]

[img[animation.gif]]
!Brillouin zone

The given [[PDF sheets|./symmetrypoints.pdf]] are not perfect, until today nobody knows the real source of them. So I used  [["Bradley ,Cracknell - Mathematical Theory of Symmetry"|./Bradley,Cracknell-Mathematical%20Theory%20of%20Symmetry%20in%20Solids%20(chapter%20space%20groups).pdf]] as reference. The two texts use different basis and reciprocal space vectors, besides the monoclinic lattice I used Bradley's definition. So you have to convert the coordinates if you want to compare.

!Websites
*http://homepage2.nifty.com/a-m/bandmemo/node1.html
*http://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-table?from=kv


!Rhombohedral - hexagonal coordinates

It's more convenient to use hexagonal coordinates
http://www.uwgb.edu/DutchS/SYMMETRY/rhombo-lattice.htm
To convert coordinates you can use
http://qpeng.org/tools/r2h.html or use the formulas http://materials.binghamton.edu/444/part_I/sld048.htm
http://cst-www.nrl.navy.mil/lattice/
[[Useful Stuff]]
[[Main sources]]
[[Voronoi Diagrams]]
[[MATLAB script]]
[[Books / Papers]]
[[JAVA sources]]

----
[[List of parameters]]
[[Release Notes v2.1]]
[[Release Notes v2]]
[[Release Notes v1]]
[[Javadoc|../doc/index.html]]

[[Test BZones|../btest2.html]]
[[Test MiniBZones|../../MiniBzones/minibzonestest.html]]

----

[[Edit this wiki]]
author of v2

I've you want to drop me a couple of lines
poms [at] student.tugraz.at
Notes from the original author Otto Scheibelhofer pasted in this wiki

----
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<title>Documentation of Bzones</title> <! Exported with Notepad++>
<style type="text/css">
span {
	font-family: 'Courier New';
	font-size: 10pt;
	color: #000000;
}
.sc0 {
}
</style>
</head>
<body>
<div style="float: left; white-space: pre; line-height: 1; background: #FFFFFF; "><span class="sc0">
Table of Contents

    1) General Remarks
    2) Personal Remarks
    3) A Quick Guide for Introducing New Lattices



1) General Remarks

    This Applet was made with
    - jdk1.6.0_10
    - Eclipse 3.4.1
    
    The documentation (in Javadoc manner) can be found in the correspondent /doc directory.
    The source code can be found in the correspondent /src directory.
    
    In the folder Bzones, the complete applet with user interface can be found; In the folder
    Bzones_mini a version without interface can be found. Both versions accept the same parameters,
    they are enlisted in parameters.html. The versions only differ in the classes: Launch.java and
	ControlPanel.java.


2) Personal Remarks
    
    As I have just little serious Java programming experience, there may be found some
    unusual solutions or even bad programming style. Anyone should feel free to improve this!
    

3) A Quick Guide for Introducing New Lattices

    For the 'even-less-experienced-than-me' users, this is a quick and dirty
    introduction in introducing a new lattice, in just a few steps.
    
    -)  Create a new class and let it inherit from AbstractCrystal. (Or just copy and
        rename an existing class, found in the crystals-subfolder.)
		
    -)  Import this class in the CrystalMasterList found in the main-subfolder. Add 1
        to the numbers of elements in the allCrystals-array. Add your new lattice in
        the list of crystals. It might then look as:
		
            AbstractCrystal[] allCrystals = new AbstractCrystal[9];
            allCrystals[0] = new Cscc();
            ...
            allCrystals[7] = new Cmkl();
            allCrystals[8] = new Cmynewlattice();
            return allCrystals;
			
    -)  Edit Cmynewlattice.java according to the lattice you desire. You should change the
        following functions:
		
                public String getName() {
                    return "Enter the name of your lattice, as it should appear in the spin wheel";
                }

                public String getCrystalID() {
                    return "short name used internal and as parameter for the mini-applet";
                }

                public GuiModel getguiModel() {
                    // a gui model to your desires and needs
                    GuiModel model = new GuiModel("allowed", "allowed", "b", "90", "80", "70");
                    return model;
                }
    
    -)  Now you can start calculating your lattice points in the function
                public void calculate(Parameter param) {}
                
        With
                double atilde = param.geta();
        and similar you can get the crystal parameters.
        
        A bunch of vector operations is provided to help calculating your points.
        
        In the end make your points appear on the drawing board with functions
                this.addSymmetricPoint(vector, "Name of this point");
                this.addEdge(starting vector, ending vector);
                etc.
				(The other functions can be found in the documentation of 
                the AbstractCrystal class.)
                
	-) Compile every now and then.
    -) Good luck, have fun!
    
    


</span></div></body>
</html>
This is the second release of the applet. I want to thx the v1 author Otto Scheibelhofer for his great work, the usefull advices and feedback.

!Changelog

!!New Features

*Zoom
*Mini thumbnails
*More crystal classes
*Base translation vector = bravais basis vectors (primitive cell)
*MATLAB script file for serious  

!!Enhancements

*Tiddlywiki system as doku/help
*Source version control system
*lots of resources on the svn
*smaller bugfixes

!Used Software

*Java JDK <br>1.6.0_13
*Eclipse Platform <br>  Version: 3.4.2
*Eclipse Java Development Tools <br> v 3.4.2
*Subversive SVN Connector <br> v 2.2.0
*Subversive SVN Team Provider <br> v 0.7.8

!Version Control System

I set up a [[svn project|http://en.wikipedia.org/wiki/Subversion_(software)]] on our university's SVN server:

https://svn.tugraz.at/svn/bzones/


You need your favourite SVN client, a TUGonline account and a manual activation for this repository. Please contact Prof. Peter Hadley p.hadley@tugraz.at to get access. Maybe the source code will be available also on the course website, but for copyright reasons the additional resources won't be public.

!Things need to be done

*Triclinic BZ also in Applet
*New renderer
*Migrate to JAVA3D
*List of all the symmetry points in k-space <br> in cartesian and reciprocal base vectors
*Spell checking ;-)



*Do not show the BTV anymore, because this leads to confusion if a vector of real space is drawn in k-space
*Updated Matlab script to save animated gif files

[img[animation.gif]]
a JAVA applet to visualize Brillouin zones
[>img[./logo_head.gif]] BZones 
I've done a lot of investigation on the topic, hopefully I've collected some useful sources.

!Programs

At least 2 small programs are out that can visualize both Brillouin zone and Fermi sphere. Unfortunately both are not downloadable

* Software from japanese researchers  Hiroshi Nakano and Yoshitaka Sato
Materials Science and Engineering Vol 294–296 (2000) p542–547 (see [file:./Development%20of%203d%20visualization%20system.pdf])

*BRIZ: a vizualization program for Brillouin zone – Fermi sphere configuration
Z. Kristallogr. Vol222 (2007) p718–721
<html><img src="http://www.issp.ac.ru/lsr/images/briz.gif" width="800" height="600"></html>

(see [file:./zkri.2007.222.12.pdf])

!Further Software

*[[Unisoft|http://www.uni-pc.gwdg.de/eckold/unisoft.html]] can visualise 1st Brillouin zone
[img[http://www.uni-pc.gwdg.de/eckold/uni/scshot2.jpg]]

*[[XCrySDen|http://www.xcrysden.org]] is a crystalline and molecular structure visualisation program able to
# switch between primitive and conventional cell settings
# change the number of the displayed unit cells, that is, display smaller or larger portions of a crystal
# display the crystal lattice
# visualise the Wigner-Seitz cell and Brillouin-zone
# k-path selection for band-structure calculations
# visualization of Fermi surfaces
Note: XCrysden just displays prior generated files so you need other software as well

<html><img src="http://www.xcrysden.org/img/xcrysden-in-action.png" width="800" height="600"></html>

!Webarchives

[[The Bilbao Crystallographic Server|http://www.cryst.ehu.es/html/doc/bcs_links.html]] links to excellent sites. Don't miss [[The interactive course on crystallography|http://lcr.epfl.ch/page37304.html]] with lots of applets. Especially [[the CrystalOgraph Applet|http://escher.epfl.ch/crystalOgraph]] is impressive ;-)
Large programe archive [[ccp14|http://www.ccp14.ac.uk/mirror/mirror.htm]]


!Videos
[[Video using the Visualization ToolKit|http://www.youtube.com/watch?v=wjZwNGr-Nlw]]
[[Brillouin zone morphing|http://abulafia.mt.ic.ac.uk/Bulatov/gallery/qmech/bzone/fcc_sc_bcc.mpg]]
Brillouin Zones or Wigner-Seitz cells are closely related to [[Veronoi diagrams|http://en.wikipedia.org/wiki/Voronoi_diagram]]  There is a huge field in computing science and mathematics to develop Veronoi algorithm.

I found a JAVA Applet [[Voronoi3D|http://www.voronoi3d.com]]  on the web that draw my attention. The ([[screenshot|http://www.voronoi3d.com/graphics/chLarge.jpg]]) clearly shows a brillouin zone. With further research I found out that Voronoi algorithm are already implemented in MATLAB.

With MATLAB it was rather a easy task:
<html><img src="monob.png" width="800" height="600"></html>
(Monoclinic basecentered BZ)

Use the [[MATLAB script]]