Skip to content

DMREF-networks/Network_Spectrum_with_QGLAB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Network_Spectrum_with_QGLAB

Overview

NetGen.py generates a set of vertex locations and edges that can be analyzed using the SpectrumScript.m MATLAB script (along with the QGLAB software) to compute the spectrum of the differential Laplacian on a metric network generated from the files output by NetGen.py.
Also included is QGLAB.cmd, which is an example slurm script for running this code on a computer cluster.

Ensure that within the directory containing the files listed above the following is set up:
1 - a directory named "configs" containing two subdirectories named "configs" and "edgelists".
2 - Quantum-Graphs-master from https://github.com/manroygood/Quantum-Graphs is downloaded and set up (see the relevant documentation).
3 - SpectrumScript.m is moved into the Quantum-Graphs-master directory.

For additional information on the QGLAB software, please see the associated publication: https://doi.org/10.1137/23M1627729.
For the definitions of the tesselation types, network boundary types, point pattern types, etc., please see the associated manuscript (DOI TBD).

To run from the command line using sbatch

sbatch QGLAB.cmd conf N tess bdry name equi p1 p2

conf - (string) the type of configuration desired. This includes:
1 - 'URL' for the Z2 uniformly randomized lattice.
2 - 'A2' for the A2 uniformly randomized lattice.
3 - 'Ge' for loading in a "Ge-type" configuration file (defined below).
4 - 'TJ' for loading in a "TJ-type" configuration file (defined below).
5 - 'Ti' for a tiling-type configuration.
N - (integer) number of particles in the configuration (either prescribed (and rounded to the nearest square number) for the Z2 URL, or needed as an input for Ge/TJ filetypes). In instances where the number of particles is hard-coded (A2 URL, Lattices) this parameter is not used. tess - (string) the type of tessellation used. This includes:
1 - 'D' for Delaunay.
2 - 'C' for Delaunay Centroidal.
3 - 'G' for Gabriel.
bdry - (string) the type of network boundary desired. This includes:
1 - 'delete' for delete boundary conditions.
2 - 'prune' for prune boundary conditions.
3 - 'clip' for clip boundary conditions.
name - (string) a name assigned to this particular simulation.
equi - (string) 'True' if the network is equilateral, 'False' if not.
p1 - If generating a URL this is a float and the value of a used in the construction of the point pattern. If loading a configuration this is a string and the path to the configuration file. If generating a lattice this is a string and denotes the kind of lattice, including:
1 - 'Kago' for the trihexagonal (kagome) lattice.
2 - 'Hex' for the hexagonal lattice.
3 - 'Z2D_*' for the square lattice with triangular defects where * is replaced by the fraction of squares to be filled (e.g., 0.05 for 5% defects).
p2 - If loading a configuration this allows you to include additional information about the configuration in the saved file name. E.g., "phi0.65" for an equilibrium disk configuration with a packing fraction of 0.65.

A "Ge-type" file is structured as follows:
The first line contains the space dimension (here it is assumed this is 2).
The next two lines contain the lattice vectors for the simulation box containing the points.
The next N lines contain the coordinates of the points.
It is assumed that values on the same line are separated by spaces.

A "TJ-type" file is structured as follows (some of these lines simply contain information that gets thrown out by design--this file format was originally used for something else):
The first line contains the string 'mono'.
The next three lines get thrown out (but must contain something to get thrown out).
The next two lines contain the lattice vectors for the simulation box containing the points.
The next line gets thrown out (but must contain something to get thrown out).
The next N lines contain the coordinates of the points.
It is assumed that these points are also in two dimensions and that all values on the same line are separated by '\t'.

Yield

Three files:
1 - A .txt file containing the locations of vertices of the network generated by NetGen.py placed in the configs/configs directory.
2 - A .txt file containing the pair indices of vertices that make up the edges of the network and their Euclidean lengths generated by NetGen.py placed in the configs/edgelists directory.
3 - A .mat file containing the eigenvalues, eigenmodes, and a quantum graph object.

About

Code used to generate metric network structures for analysis in the QGLAB software and a script for computing for computing the spectrum of the differential Laplacian on a network using QGLAB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors