Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
<!--{{{-->
<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>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<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]]
BZones is a JAVA applet visualizing Brillouin zones by the original author Otto Scheibelhofer, extended by Johannes Poms
© 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]]
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]]