Skip to content

Commit

Permalink
Merge pull request rartino#18 from Vevn/master
Browse files Browse the repository at this point in the history
Merge
  • Loading branch information
olabe123 authored May 22, 2020
2 parents 7567fc9 + b11b436 commit 09a183f
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 76 deletions.
16 changes: 8 additions & 8 deletions ElectronUI/contentPanels/datasetControls.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ <h2 id="datasetTitle" class="border-top">DATASET NAME HERE</h2>
</div>
<select class="custom-select" id="visTypeSelection">
<option selected>Electron density</option>
<option>Electron localisation function</option>
<option>Partial charge density</option>
<!--<option>Electron localisation function</option>-->
<!--<option>Partial charge density</option>-->
<option>Unitcell</option>
<option>Pair correlation function</option>
<option>Bandstructure</option>
<option>Density of states</option>
<option>Bandstructure 3D</option>
<option>Fermi surface</option>
<!--<option>Pair correlation function</option>-->
<!--<option>Bandstructure</option>-->
<!--<option>Density of states</option>-->
<option>Bandstructure 3D</option>
<option>Fermi surface</option>
</select>
<div class="input-group-append">
<button class="btn btn-primary" id="startVisBtn">Start</button>
Expand All @@ -58,4 +58,4 @@ <h5 class="border-top">Active visualisations</h5>

console.log("Dataset controls loaded")
});
</script>
</script>
40 changes: 20 additions & 20 deletions ElectronUI/js/eventCallbacks.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function sidebarLinkClicked() {
$("#sidebar a").removeClass("active");
}
$(this).find("> a").addClass("active");

var div = $($(this).data("show")).show();
div.siblings("div").hide();
console.log("sidebar link clicked")
Expand Down Expand Up @@ -178,21 +178,21 @@ function removeDataset() {

function startVisPressed() {
let datasetInfo = loadedDatasets[activeDatasetName];
let visTypes = ["charge","elf","parchg","unitcell","pcf","bandstructure","dos", "bandstructure3d", "fermisurface"];
let selectionIndex = $("#visTypeSelection")[0].selectedIndex; // Index of list selection, starting at 0
let visTypes = ["charge","unitcell","bandstructure3d", "fermisurface"];
let selectionIndex = $("#visTypeSelection")[0].selectedIndex; // Index of list selection, starting at 0
let visType = visTypes[selectionIndex];
console.log("Selected visualisation type: " + visType);
let hdf5Path = datasetInfo[0];

let visIndex = 0;
while (datasetInfo[3].includes(activeDatasetName + "_" + visType + "_" + visIndex)) visIndex += 1;
let visId = activeDatasetName + "_" + visType + "_" + visIndex;

$("#startVisBtn").attr("disabled", true);
// Start the visualisation
send_data("envision request", ["start", visId, [
visType,
hdf5Path,
visType,
hdf5Path,
visType + "_" + visIndex,
activeDatasetName]]);

Expand Down Expand Up @@ -265,8 +265,8 @@ function volumeBackgroundChanged() {

function transperancyChecked() {
send_data("envision request", [
"toggle_transperancy_before",
activeVisId,
"toggle_transperancy_before",
activeVisId,
[$("#transperancyCheckbox").is(':checked')]]);
}

Expand Down Expand Up @@ -524,9 +524,9 @@ function visualisationStarted(status, id, data) {
}
// If visualisation was started add it to the sidebar and to running visualisations.
let visName = data[2];
let datasetName = data[3];
let datasetName = data[3];
loadedDatasets[datasetName][3].push(id);

// Add sidebar element
let sidebarElem = $(`
<li data-show="#visControlPanel" data-vis-id="` + id + `" class="subLink">
Expand Down Expand Up @@ -604,9 +604,9 @@ function uiDataRecieved(status, id, data) {
// ---------------------------------------

function loadVolumeUiData(data){
// Load state of all volume controls from envision data.
let [type, shadingMode, bgInfo, tfPoints, transperancyMode,
sliceActive, planeActive, planeHeight, wrapMode,
// Load state of all volume controls from envision data.
let [type, shadingMode, bgInfo, tfPoints, transperancyMode,
sliceActive, planeActive, planeHeight, wrapMode,
sliceZoom, planeNormal] = data;
if (type != "volume") console.log("Something is very wrong here");
$("#shadingModeSelection")[0][shadingMode].selected = true;
Expand All @@ -628,13 +628,13 @@ function loadVolumeUiData(data){
$("#backgroundColor1").val(rgbArrToHex(bgInfo[0]));
$("#backgroundColor2").val(rgbArrToHex(bgInfo[1]));
$("#backgroundStyleSelection")[0][bgInfo[2]].selected = true;

loadTFPoints(tfPoints);
}

function loadGraph2DUiData(data) {
let [type, xRange, yRange,
lineActive, lineX, gridActive, gridWidth,
let [type, xRange, yRange,
lineActive, lineX, gridActive, gridWidth,
xLabelsActive, yLabelsActive, nLabels,
ySelectionInfo, yDatasets] = data;

Expand All @@ -648,14 +648,14 @@ function loadGraph2DUiData(data) {
$("#verticalLineCheck").prop("checked", lineActive);
$("#verticalLineXInput").val(lineX);


$("#gridCheck").prop("checked", gridActive);
$("#gridSizeInput").val(gridWidth);

$("#xLabelCheck").prop("checked", xLabelsActive);
$("#yLabelCheck").prop("checked", yLabelsActive);
$("#labelCountInput").val(nLabels);

// Fill selection lists with options
$("#possibleYDatasets").empty();
$("#ySingleSelection").empty();
Expand Down Expand Up @@ -841,4 +841,4 @@ function getPartialBandSelections() {
function visPanelChanged() {
console.log("Updating panel: ", activeVisId);
send_data("envision request", ["get_ui_data", activeVisId, []]);
}
}
22 changes: 9 additions & 13 deletions ElectronUI/js/pythonInterface.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ function start_python_process() {
function send_test_packets(n){
for (i = 0; i < n; i++) {
send_data("Message", "Here be packets.")
}
}
}

function send_data(tag, data) {
Expand All @@ -79,24 +79,24 @@ function send_data(tag, data) {
if (pythonCrashed)
return;
var json_data = {type: tag, data: data}
var packet = JSON.stringify(json_data) + "\r\n";
var packet = JSON.stringify(json_data) + "\r\n";
try{
if (CONFIG.logSentPackets)
if (CONFIG.logSentPackets)
console.log("Sending packet: \n", packet)
pythonProcess.stdin.write(packet)
pythonProcess.stdin.write(packet)
}
catch {
pythonCrashed = true;
const options = {
type: "warning", title: "ENVISIoN has stopped working!",
type: "warning", title: "ENVISIoN has stopped working!",
message: "The python process has crashed. You must reload ENVISIoN or close and restart the program."
}
dialog.showMessageBox(options)
}
}

function on_data_recieve(packet) {
// Print data recieved from python process
// Print data recieved from python process

// Decode data
data = Buffer.from(packet, 'hex')
Expand All @@ -118,12 +118,12 @@ function on_data_recieve(packet) {
if (CONFIG.logPyPrint)
console.log("Python print: \n" + data[i])
}

}
catch(err) {
if (CONFIG.logPyPrint)
console.log("Python print: \n" + data[i])
}
}
}
}

Expand Down Expand Up @@ -160,7 +160,7 @@ function on_python_error(data) {
console.log("PYTHON ERROR: ")
// var output = Buffer.from(data, 'hex')
console.log(data.toString())
dialog.showErrorBox("Error in ENVISIoN: ", data.toString())
//dialog.showErrorBox("Error in ENVISIoN: ", data.toString())
}

var loadingTimeout = null;
Expand All @@ -178,7 +178,3 @@ function responsesBehind(n){
}
$("#loadalert > span").text(" envision is " + n + " requests behind.");
}




Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 28 additions & 34 deletions docs/technical_documentation/technical_documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -133,14 +133,14 @@ Definitioner
====================


.. figure:: figures/Envision_system_simple.png
.. figure:: figures/system_overview.png
:name: fig:oversikt
:align: center
:width: 100 %
:figwidth: 80 %
:alt: oversikt

Enkel skiss över ENVISIoN systemet
Enkel skiss över systemet


Den produkt som utvecklas är ett verktyg för att visualisera viktiga
Expand All @@ -150,15 +150,15 @@ skall konverteras och visualiseras.

I figur fig:oversikt_ visas en grov systemskiss med
de olika delsystem som ingår. Systemet kan grovt delas upp i tre olika
delar. Ett system för parsning av datafiler från VASP, ett
delar. Ett system för databearbetning som parsar filer från VASP, ett
system för att visualisera det som parsas i tidigare nämnt system, och
ett GUI-system vilket användaren interagerar med visualiseringen via.

Ingående delsystem
------------------

Systemet för elektronvisualisering består i huvudsak av tre delar. Dels
består systemet av en parsing-del där textfiler genererade från
består systemet av en databearbetningsdel där parsning av textfiler genererade från
beräkningsprogrammet VASP skall översättas till det, med vår mjukvara,
kompatibla filformatet HDF5.

Expand Down Expand Up @@ -895,7 +895,7 @@ HDF5-strukturen som parsersystemet genererar kommer utseendet hos
nätverken att se olika ut för varje visualisering. Nedan återfinns olika
nätverk som olika skript genererar för olika visualiseringar.

Nätverk för visualisering av parkorrelationsfunktionen
Parkorrelationsfunktionen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ett nytt skript med processorer för visualisering av
Expand Down Expand Up @@ -939,43 +939,22 @@ nätverken visas i figur fig:PCF_.
Bandstruktur
~~~~~~~~~~~~

Nätverket startar med att öppna en HDF5-fil. Därefter kontrolleras om
det finns en sökväg med namnet *Fermienergy* i filen, skulle sökvägen
existera läggs en processor till som extraherar det värdet sparat i ett
dataset. Sedan navigeras det genom HDF5-filen till platsen där alla band
är sparade. Alla dessa band sparas i en DataFrame där varje kolumn
innehåller alla värden för ett band. Skulle Fermienegin finnas i
HDF5-filen kommer det värdet att subtraheras från alla värden i
DataFrame. Sedan ritas alla band upp i en graf med samma värden på
x-axeln. y-axeln får en rubrik med lämplig text, antigen *Energy* eller
*Energy - Fermi energy*, för att sedan visualiseras i ett fönster.

Med den kunskapen gruppmedlemmarna besitter idag skulle inte samma
tillvägagångssätt för visualiseringen tagits. Kontrollen av fermienergi
skulle ske redan i parsern för bandstrukturen. Skulle Fermienergin
hittas, subtraheras värdet redan innan all data för de olika banden
lagras i ett dataset.

.. figure:: figures/BandsNetwork.PNG
Nätverket startar med att öppna en HDF5-fil. Därefter skapas en process som extraherar data. Sedan navigeras det genom HDF5-filen till platsen där alla band, högkarakteristiska punkter (symboler) i Brillouin-zonen och högkarakteristiska punkternas koordinater är sparade. Alla band sparas i en DataFrame där varje kolumn innehåller alla värden för ett band. Alla högkarakteristiska punkter med tillhörande koordinat sparas i varsina DataFrames. Därefter ritas alla band och symboler upp. Det ritas även upp linjer som ligger i lod med symbolerna för att enklare se var i plotten symbolerna är. X-axeln visar symbolerna och y-axeln visar energierna i eV. X-axeln är även baserad på antalet iterationer av k-punkterna ur VASP-filerna.

Med den kunskapen gruppmedlemmarna besitter idag skulle inte x-axeln vara baserad på iterationer av k-punkter utan på avståndet mellan två symboler i Brillouin-zonen.

.. figure:: figures/network_bandstructure.png
:alt: BandsNetwork
:width: 25%
:align: center

Nätverk för visualisering av bandstruktur.

.. image:: figures/BandsAll.png
.. image:: figures/new_bandstructure.jpg
:alt: BandsAll
:width: 49%

.. image:: figures/ZoomedBands.png
:alt: ZoomedBands
:width: 49%

.. _fig:bands_tipo4:

*Visualisering av bandstruktur för TiPO4.
(vänster) Visualisering av hela bandstrukturen som skapas när nätverket evalueras.
(höger) En förstoring där endast energin mellan -4 eV och 5 eV visas.*
Plott över bandstrukturen med inmarkerade högkarakteristiska punkter (symboler) och linjer för att markera symbolernas läge i plotten.

Tillståndstäthet
~~~~~~~~~~~~~~~~
Expand Down Expand Up @@ -1028,7 +1007,7 @@ i figur fig:DoS_. Användaren kan även välja att visa en
Enhetscell
~~~~~~~~~~~~~~~~

Hos nätverket för visualisering av enhetscellen hämtar först en *HDFSource*-processor HDF5-filen. Under *HDFSource*-processorn ligger ett antal *CoordinateReader*-processorer, en för varje atomslag i enhetscellen. Från HDF5-filen hämtar var och en av *CoordinateReader*-processorerna koordinaterna för dess atomslags alla enhetscellsatomer. En *StructureMesh*-processor skapar sedan en mesh utifrån koordinaterna. Efter det skapar en *SphereRenderer*-processor en bild utifrån meshen, där en sfär ritas ut för varje atom i enhetscellen. Bilden skickas till slut till en *Canvas*-processor, som skapar ett fönster där bilden visas. Figuren nedan visar hur nätverket ser ut för bariumsulfat (BaSO4) och figuren under den visar den resulterande bilden.
Hos nätverket för visualisering av enhetscellen hämtar först en *HDFSource*-processor HDF5-filen. Under *HDFSource*-processorn ligger ett antal *CoordinateReader*-processorer, en för varje atomslag i enhetscellen. Från HDF5-filen hämtar var och en av *CoordinateReader*-processorerna koordinaterna för atomslagens alla enhetscellsatomer. En *StructureMesh*-processor skapar sedan en mesh utifrån koordinaterna. Efter det skapar en *SphereRenderer*-processor en bild utifrån meshen, där en sfär ritas ut för varje atom i enhetscellen. Bilden skickas sedan till en *Canvas*-processor, som skapar ett fönster där bilden visas. Figuren nedan visar hur nätverket ser ut för bariumsulfat (BaSO4) och figuren under den visar den resulterande bilden.

.. figure:: figures/Visualization/Networks/Unitcell/unitcell_network.png
:name: fig:unitcell_network
Expand All @@ -1043,6 +1022,21 @@ Hos nätverket för visualisering av enhetscellen hämtar först en *HDFSource*-
:width: 100 %
:figwidth: 50 %
:alt: unitcell_vis


Fermi-yta
~~~~~~~~~~~~~~~~
text



Elektrontäthet
~~~~~~~~~~~~~~~~
text





.. _sec:NetworkHandlers:

Expand Down

0 comments on commit 09a183f

Please sign in to comment.