-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathcodes.html
More file actions
325 lines (279 loc) · 19.8 KB
/
codes.html
File metadata and controls
325 lines (279 loc) · 19.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- DW6 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>CLEAN - Codes and Computing</title>
<link rel="shortcut icon" type="image/jpg" href="images/tab_logo.png"/>
<link rel="stylesheet" href="emx_nav_left.css" type="text/css">
<script type="text/javascript">
<!--
var time = 3000;
var numofitems = 3;
//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems = numofitems;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}
//menu methods
function ehandler(event,theobj){
for (var i=1; i<= theobj.numberofmenuitems; i++){
var shutdiv =eval( "menuitem"+i+".thediv");
shutdiv.style.visibility="hidden";
}
theobj.thediv.style.visibility="visible";
}
function closesubnav(event){
if ((event.clientY <48)||(event.clientY > 107)){
for (var i=1; i<= numofitems; i++){
var shutdiv =eval('menuitem'+i+'.thediv');
shutdiv.style.visibility='hidden';
}
}
}
// -->
</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-91911-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body onmousemove="closesubnav(event);">
<div class="skipLinks">skip to: <a href="#content">page content</a> | <a href="pageNav">links on this page</a> | <a href="#globalNav">site navigation</a> | <a href="#siteInfo">footer (site information)</a> </div>
<!-- top_head -->
<!-- Start nav bar -->
<div id="masthead">
<h1 id="siteName"><big><b>C</b></big>omputational <big><b>L</b></big>aboratory for <big><b>E</b></big>nergy <big><b>A</b></big>nd <big><b>N</b></big>anoscience</h1>
<div id="globalNav">
<img alt="" src="gblnav_left.gif" height="32" width="4" id="gnl"> <img alt="" src="glbnav_right.gif" height="32" width="4" id="gnr">
<div id="globalLink">
<a href="http://www.uottawa.ca" target="_blank" class="glink" id="gl1" onmouseover="ehandler(event,menuitem1);">University of Ottawa</a>
<a href="https://uwaterloo.ca/" target="_blank" class="glink" id="gl2" onmouseover="ehandler(event,menuitem2);">University of Waterloo</a>
<a href="https://www.google.com/maps/place/Parliament+Hill/@45.4230759,-75.6995602,14.5z/data=!4m5!3m4!1s0x0:0x26bb54f60c29f6e!8m2!3d45.4235937!4d-75.700929" target="_blank" id="gl3" class="glink" onmouseover="ehandler(event,menuitem3);">Ottawa, Ontario, Canada</a>
</div>
<!--end globalLinks-->
</div>
<!-- end globalNav -->
<div id="subglobal1" class="subglobalNav">
<a href="http://www.uottawa.ca" target="_blank">University Homepage</a> |
<a href="https://science.uottawa.ca/physics/" target="_blank">Department of Physics</a>
</div>
<div id="subglobal2" class="subglobalNav">
<a href="https://uwaterloo.ca/" target="_blank">University Homepage</a> |
<a href="https://uwaterloo.ca/electrical-computer-engineering/" target="_blank">Department of Electrical and Computer Engineering</a>
</div>
<div id="subglobal3" class="subglobalNav">
<a href="https://www.google.com/maps/place/Parliament+Hill/@45.4230759,-75.6995602,14.5z/data=!4m5!3m4!1s0x0:0x26bb54f60c29f6e!8m2!3d45.4235937!4d-75.700929" target="_blank">Map it</a> |
<a href="http://www.ottawa.ca/" target="_blank">City of Ottawa</a> |
<a href="http://www.cbc.ca/ottawa/" target="_blank">Regional News</a> |
<a href="https://weather.gc.ca/city/pages/on-118_metric_e.html" target="_blank">Local Weather</a> |
<a href="http://www.gc.ca/" target="_blank">Government of Canada</a>
</div>
</div>
<!-- End nav bar -->
<div id="pagecell1">
<!--pagecell1-->
<img alt="" src="tl_curve_white.gif" height="6" width="6" id="tl"> <img alt="" src="tr_curve_white.gif" height="6" width="6" id="tr">
<div id="breadCrumb">
</div>
<div id="pageName">
<h2>Codes and Computing</h2>
</div>
<!-- Start side bar -->
<div id="pageNav">
<div id="sectionLinks">
<a href="index.html">Home</a>
<a href="research.html">Research</a>
<a href="group/index.html">Group Members</a>
<a href="collaborators.html">Collaborators</a>
<a href="codes.html">Codes and Computing</a>
<a href="datasets/index.html">Datasets</a>
<a href="teaching.html">Teaching</a>
<a href="funding.html">Funding</a>
<a href="publications.html">Publications</a>
<a href="blog.html">Blog Posts</a>
<a href="prospective_students.html">Prospective Students</a>
<a href="classroom_tech.html">Classroom Tech</a>
<a href="policy.html">Policy</a>
</div>
</div>
<!-- End side bar -->
<!-- bottom_head -->
<div id="content">
<!-- content goes below between here -->
<div class="story">
<p>For datasets associated with these projects, see <a href="datasets/index.html">Datasets</a>.</p>
</div>
<h1>Machine learning for materials and molecules</h1>
<div class="story">
<h3>genheas — Generate High Entropy Alloys Structures</h3>
<p>A neural evolution structures (NES) generation methodology combining artificial neural networks with evolutionary algorithms for inverse design of high entropy alloy (HEA) configurations. Trains on small unit cells using pair distribution functions and atomic properties, then generates much larger structures (40,000+ atoms) approximately 1000x faster than conventional Special Quasirandom Structures (SQS) methods. A single trained model can produce multiple distinct structures while maintaining identical fractional compositions.</p>
<ul>
<li><b>Paper:</b> C.G. Tetsassi Feugmo, K. Ryczko, A. Anand, C. Veer Singh, I. Tamblyn, <i>Neural evolution structure generation: High Entropy Alloys</i>, Journal of Chemical Physics <b>155</b>, 044102 (2021) — Cover Article. <a href="https://doi.org/10.1063/5.0049000">DOI</a></li>
<li><b>Language:</b> Python</li>
<li><b>Code:</b> <a href="https://github.com/CLEANit/genheas">GitHub</a></li>
</ul>
</div>
<div class="story">
<h3>Extensive deep neural networks (EDNN)</h3>
<p>A physically motivated neural network topology designed for problems requiring extensivity (additivity across sub-domains). EDNNs use domain decomposition where each sub-domain (tile) has a non-overlapping focus region surrounded by an overlapping context region, enabling O(N) scaling. They can train on small structures and predict properties of arbitrarily large systems, making them ideal for massively parallel computing. EDNNs have been applied to replace or augment Kohn-Sham density functional theory, predicting total energies, band gaps, and charge densities.</p>
<ul>
<li><b>Paper:</b> K. Mills, K. Ryczko, I. Luchak, A. Domurad, C. Beeler, I. Tamblyn, <i>Extensive deep neural networks for transferring small scale learning to large scale systems</i>, Chemical Science <b>10</b>, 4129 (2019). <a href="https://doi.org/10.1039/C8SC04578J">DOI</a></li>
<li><b>Language:</b> Python (TensorFlow and PyTorch)</li>
<li><b>Code:</b></li>
</ul>
<ul>
<li><a href="https://github.com/CLEANit/extensive_deep_neural_networks">Tutorials and example notebooks</a></li>
<li><a href="https://github.com/CLEANit/ednn_train">Training EDNN with 2D materials</a></li>
<li><a href="https://github.com/CLEANit/ednn_pytorch">PyTorch implementation</a></li>
</ul>
</div>
<div class="story">
<h3>RUGAN — Regressive Upscaling Generative Adversarial Network</h3>
<p>A generative machine learning method that learns to produce synthetic configurations which are numerically accurate and statistically indistinguishable from real data. RUGAN's fully convolutional architecture allows it to generate arbitrarily large structures after training only on small-scale data, and it can produce configurations at requested energy values while respecting periodic boundary conditions. Applied to mesoscale surface generation from chemical motifs and optical lattice experiments at unobserved conditions.</p>
<ul>
<li><b>Papers:</b> K. Mills, C. Casert, I. Tamblyn, <i>Adversarial generation of mesoscale surfaces from small scale chemical motifs</i>, Journal of Physical Chemistry C <b>124</b>(42), 23158-23163 (2020). <a href="https://doi.org/10.1021/acs.jpcc.0c06673">DOI</a>
<br>C. Casert, K. Mills, T. Vieijra, J. Ryckebusch, I. Tamblyn, <i>Optical lattice experiments at unobserved conditions and scales through generative adversarial deep learning</i>, Physical Review Research <b>3</b>, 033267 (2021). <a href="https://doi.org/10.1103/PhysRevResearch.3.033267">DOI</a></li>
<li><b>Language:</b> Python (PyTorch)</li>
<li><b>Code:</b> <a href="https://github.com/CLEANit/RUGAN">GitHub</a></li>
</ul>
</div>
<div class="story">
<h3>Watch and Learn — Transferable Learning with Physical Laws</h3>
<p>An unsupervised learning approach augmented with physical principles that achieves fully transferable learning for problems in statistical physics. By coupling a recurrent neural network (RNN) to an extensive deep neural network (EDNN), the method — called Distribution-Consistent Learning (DCL) — learns equilibrium probability distributions and inter-particle interaction models from a single set of observations, then extrapolates across all temperatures, thermodynamic phases, and length scales. Works for Ising, Potts, and spin-glass models without feature engineering.</p>
<ul>
<li><b>Paper:</b> K. Sprague, J. Carrasquilla, S. Whitelam, I. Tamblyn, <i>Watch and learn — a generalized approach for transferrable learning in deep neural networks via physical principles</i>, Machine Learning: Science and Technology <b>2</b>(2), 02LT02 (2021). <a href="https://doi.org/10.1088/2632-2153/abc81b">DOI</a></li>
<li><b>Language:</b> Python (Jupyter Notebooks). GPL-3.0 license.</li>
<li><b>Code:</b> <a href="https://github.com/CLEANit/watch_and_learn">GitHub</a></li>
</ul>
</div>
<h1>Spectroscopy and imaging</h1>
<div class="story">
<h3>Hyperspectral Stimulated Raman Microscopy (SRS2021)</h3>
<p>Unsupervised and supervised deep neural network models for enhancing hyperspectral stimulated Raman spectroscopy (SRS) microscopy images. Performs denoising and segmentation via one-shot deep learning — removing noise and identifying chemically distinct regions within a sample to produce chemical maps, all without requiring labelled training data. Demonstrated on lithium ore samples.</p>
<ul>
<li><b>Paper:</b> P. Abdolghader, G. Resch, A. Ridsdale, T. Grammatikopoulos, F. Légaré, A. Stolow, A.F. Pegoraro, I. Tamblyn, <i>Unsupervised Hyperspectral Stimulated Raman Microscopy Image Enhancement: De-Noising and Segmentation via One-Shot Deep Learning</i>, Optics Express <b>29</b>(21), 34205-34219 (2021). <a href="https://doi.org/10.1364/OE.439662">DOI</a></li>
<li><b>Language:</b> Python (Jupyter Notebooks)</li>
<li><b>Code:</b> <a href="https://github.com/CLEANit/SRS2021">GitHub</a></li>
</ul>
</div>
<div class="story">
<h3>Deep learning and high harmonic generation (HHG)</h3>
<p>Deep neural networks applied to high harmonic generation — the process by which intense laser light interacting with atoms and molecules produces radiation at many multiples of the driving laser frequency. Includes CNNs, autoencoders, regression models, and surrogate models for forward prediction (molecular parameters to spectra), inverse problem solving (spectra to molecular parameters), transfer learning, and molecular classification. Includes 10 Jupyter notebooks demonstrating all applications.</p>
<ul>
<li><b>Paper:</b> M. Lytova, M. Spanner, I. Tamblyn, <i>Deep learning and high harmonic generation</i>, Canadian Journal of Physics <b>101</b>(3) (2022). <a href="https://doi.org/10.1139/cjp-2022-0115">DOI</a></li>
<li><b>Language:</b> Python (TensorFlow 1.15.5, Keras 2.3.1). GPL-3.0 license.</li>
<li><b>Code:</b> <a href="https://github.com/CLEANit/HHG">GitHub</a></li>
</ul>
</div>
<div class="story">
<h3>Leucippus</h3>
<iframe width="560" height="315" src="https://www.youtube.com/embed/oWQSNoVHg3A" frameborder="0" allowfullscreen></iframe>
<p>A plugin for the popular <a href="http://imagej.nih.gov/ij/">ImageJ</a> framework that extracts positional and compositional information from nanoscale microscopy data using computer vision. Named after the ancient Greek philosopher credited with originating the theory of atomism.</p>
<ul>
<li><b>Language:</b> Java (ImageJ plugin)</li>
</ul>
</div>
<h1>Reinforcement learning environments</h1>
<div class="story">
<h3>ChemGymRL — Reinforcement Learning for Digital Chemistry</h3>
<p>An open-source framework providing multiple customizable virtual chemistry laboratory benches where RL agents learn to perform chemical synthesis and material discovery tasks. Built on the Gymnasium API for compatibility with standard RL libraries (DQN, PPO, etc.). Includes reaction, extraction, distillation, and characterization benches, plus a Lab Manager for orchestrating multi-agent workflows.</p>
<ul>
<li><b>Paper:</b> C. Beeler, S.G. Subramanian, K. Sprague, N. Chatti, C. Bellinger, M. Shahen, N. Paquin, M. Baula, A. Dawit, Z. Yang, X. Li, M. Crowley, I. Tamblyn, <i>ChemGymRL: An Interactive Framework for Reinforcement Learning for Digital Chemistry</i>, Digital Discovery (2024). <a href="https://doi.org/10.1039/D3DD00183K">DOI</a></li>
<li><b>Language:</b> Python (Gymnasium API)</li>
<li><b>Website:</b> <a href="https://ChemGymRL.com">ChemGymRL.com</a> | <b>Docs:</b> <a href="https://docs.chemgymrl.com">docs.chemgymrl.com</a> | <b>Code:</b> <a href="https://github.com/chemgymrl/chemgymrl">GitHub</a></li>
</ul>
</div>
<h1>Network simulation</h1>
<div class="story">
<h3>HASHKAT — Agent-Based Social Network Simulation</h3>
<p>A free, open-source, agent-based kinetic Monte Carlo simulation engine for modeling the growth of and information propagation within large-scale online social networks. Agents can speak different languages, live in different regions, have ideological preferences, send and rebroadcast messages, and connect to or disconnect from other agents. Incorporates multiple user profiles (standard users, organizations, celebrities, bots), trending topics, and advertising. Produces random, preferential attachment, and hybrid network topologies.</p>
<ul>
<li><b>Paper:</b> K. Ryczko, A. Domurad, N. Buhagiar, I. Tamblyn, <i>Hashkat: large-scale simulations of online social networks</i>, Social Network Analysis and Mining <b>7</b>, 4 (2017). <a href="https://doi.org/10.1007/s13278-017-0424-7">DOI</a></li>
<li><b>Language:</b> C++ (with Bash and Python scripts)</li>
<li><b>Website:</b> <a href="http://hashkat.org" target="_blank">hashkat.org</a></li>
</ul>
</div>
<h1>Analysis scripts</h1>
<div class="story">
<h3>KIB, DOS, GW, MD</h3>
<p>Open-source analysis scripts for various computational physics tasks. Free to use with proper citation (see the README in each repository).</p>
<ul>
<li><a href="https://github.com/itamblyn/KIB" target="_blank"><b>KIB</b></a> — Kinetic Ising/Boltzmann model analysis</li>
<li><a href="https://github.com/itamblyn/DOS" target="_blank"><b>DOS</b></a> — Density of states calculations and visualization</li>
<li><a href="https://github.com/itamblyn/GW" target="_blank"><b>GW</b></a> — Post-processing for GW quasiparticle calculations and energy level alignment</li>
<li><a href="https://github.com/itamblyn/MD" target="_blank"><b>MD</b></a> — Molecular dynamics trajectory analysis</li>
</ul>
<p>To clone: <code>git clone https://github.com/itamblyn/XXX.git</code> (where XXX is the repo name).</p>
</div>
<h1>Software and tools we use</h1>
<div class="story">
<h3>Simulation and electronic structure</h3>
<p><a href="http://cms.mpi.univie.ac.at/vasp/vasp/vasp.html" target="_blank">VASP</a>, <a href="http://www.cpmd.org/" target="_blank">CPMD</a>, <a href="http://www.abinit.org/" target="_blank">ABINIT</a>, <a href="http://www.berkeleygw.org/" target="_blank">BerkeleyGW</a>, <a href="http://www.ks.uiuc.edu/Research/vmd/" target="_blank">VMD</a>, <a href="https://colina.chem.ufl.edu/research/polymatic/">Polymatic</a></p>
<h3>Machine learning</h3>
<p><a href="https://www.tensorflow.org/">TensorFlow</a>, <a href="http://caffe.berkeleyvision.org/">Caffe</a>, <a href="http://deepchem.io">DeepChem</a></p>
<h3>Development and deployment</h3>
<p><a href="https://hub.docker.com">Docker</a>, <a href="https://docs.pytest.org/en/stable">pytest</a></p>
</div>
<h1>Databases and data resources</h1>
<div class="story">
<p>
<a href="http://www.optimade.org/">OPTIMADE</a> |
<a href="https://cmr.fysik.dtu.dk/">CMR</a> |
<a href="http://moleculenet.ai">MoleculeNet</a> |
<a href="http://cccbdb.nist.gov/">NIST Computational Chemistry Databank</a> |
<a href="http://cepdb.molecularspace.org/">Harvard Clean Energy Project Database</a> |
<a href="https://materialsproject.org/">Materials Project</a> |
<a href="http://www.quantum-machine.org/">Quantum Machine Database</a>
</p>
</div>
<h1>Neural network potentials and tutorials</h1>
<div class="story">
<ul>
<li><a href="https://github.com/CSIprinceton/workshop-july-2020">CSI Princeton Workshop (July 2020)</a> — Neural network potential training workshop</li>
<li><a href="https://github.com/isayev/ASE_ANI">ASE_ANI</a> — ANI neural network potentials with ASE interface</li>
<li><a href="https://github.com/deepmodeling/deepmd-kit">DeePMD-kit</a> — Deep potential molecular dynamics</li>
</ul>
</div>
<a href="https://github.com/itamblyn/itamblyn.github.io/edit/master/codes.html" class="icon icon-github"> Edit on GitHub</a>
<!-- content goes above here -->
</div>
<!-- Start logos -->
<div id="siteInfo">
<img src="images/space.GIF" width="25" height="31"> <img src="images/clean_logo.png" alt="UOIT" border="0" height="50"> <img src="images/space.GIF" width="25" height="31">
<a href="http://www.uottawa.ca" target="_blank"><img src="images/uottawa.png" alt="uOttawa" border="0" height="50"></a> <img src="images/space.GIF" width="25" height="31">
<a href="http://uwaterloo.ca" target="_blank"><img src="images/uwaterloo.jpg" alt="uWaterloo" border="0" height="100"></a> <img src="images/space.GIF" width="25" height="31">
<a href="http://www.uoit.ca" target="_blank"><img src="images/uoit.jpg" alt="UOIT" border="0"></a> <img src="images/space.GIF" width="25" height="31">
<a href="http://www.nserc.gc.ca" target="_blank" border="0"><img src="images/nserc.gif" width="75" height="31" border="0"></a> <img src="images/space.GIF" width="25" height="31">
<a href="http://computecanada.ca" target="_blank"><img src="images/compute_canada.png" height="31"> <a href="http://www.computecanada.org"></a><img src="images/space.GIF" width="25" height="31">
<a href="https://vectorinstitute.ai/" target="_blank" border="0"><img src="images/vector_logo.png" height="31" border="0"></a> <img src="images/space.GIF" width="25" height="31">
</div>
<!-- End logos -->
</div>
</div>
</di>
<br>
<script type="text/javascript">
<!--
var menuitem1 = new menu(7,1,"hidden");
var menuitem2 = new menu(7,2,"hidden");
var menuitem3 = new menu(7,3,"hidden");
var menuitem4 = new menu(7,4,"hidden");
var menuitem5 = new menu(7,5,"hidden");
var menuitem6 = new menu(7,6,"hidden");
var menuitem7 = new menu(7,7,"hidden");
// -->
</script>
</body>
</html>