From 880e3ff9366dd57e7a456346829c270486cb2f19 Mon Sep 17 00:00:00 2001 From: "Adam M. Krajewski" <54290107+amkrajewski@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:21:28 +0200 Subject: [PATCH] Updates from Overleaf --- introduction.tex | 2 +- main.tex | 2 +- nimcsotutorial.tex | 65 +++++++++++++++++++++--------------------- pysipfennTutorial2.tex | 6 ++-- referencesAdam.bib | 50 ++++++++++++++++++++++---------- 5 files changed, 72 insertions(+), 53 deletions(-) diff --git a/introduction.tex b/introduction.tex index 61231b8..13ca9a8 100644 --- a/introduction.tex +++ b/introduction.tex @@ -23,7 +23,7 @@ \section{Big Picture} \label{intro:sec:bigpicture} Secondly, such alloys are of great interest to the society. For instance, per the US Department of Energy's ARPA-E estimates, developing a standalone alloy that could continuously operate at $1300^oC$ has the potential to increase gas turbine efficiency up to $7\%$, which will significantly reduce wasted energy and carbon emissions by saving up to 20 quads of energy in electricity generation and civilian aviation between now and 2050 \cite{ULTIMATEArpa-e.energy.gov}. Such efficiency increase could prevent the release of approximately 1,000,000,000,000 kg of \ch{CO_2} from burning natural gas, or double that from coal; thus, becoming a critical effort in fighting global warming in applications, like airplanes, where green technologies cannot be directly adapted. Another extreme environment application, quite far from the first one, is the class of hypersonic vehicles that travel faster than 5 times the speed of sound \emph{through Earth's atmosphere for extended periods of time}, thus generating extreme sustained temperatures within structural components. This prompts the need for novel materials and engineering techniques, as evidenced by massive funding assigned to this research area by the US military, which increased its yearly budgets for hypersonic \emph{research} from \$3.8 billion in FY2022 to \$4.7 billion in FY2023, and to an undisclosed amount this year (FY2024) \cite{Sayler2024HypersonicCongress}, further demonstrating the criticality of such materials. -- CHADWICK +- CHADWICK \cite{CHADWICKArpa-e.energy.gov} \section{Flow of Material Discovery and This Work} \label{intro:sec:flow} diff --git a/main.tex b/main.tex index 81a6284..4d861f6 100644 --- a/main.tex +++ b/main.tex @@ -26,7 +26,7 @@ \renewcommand{\familydefault}{\sfdefault} \definecolor{darkgreen}{rgb}{0.05, 0.3, 0.1} -\usepackage[htt]{hyphenat} %texttt hyphenation breaks +%\usepackage[htt]{hyphenat} %texttt hyphenation breaks \let\oldtexttt\texttt \renewcommand{\texttt}[1]{\oldtexttt{\textcolor{darkgreen}{#1}}} diff --git a/nimcsotutorial.tex b/nimcsotutorial.tex index 839c8ec..97301fa 100644 --- a/nimcsotutorial.tex +++ b/nimcsotutorial.tex @@ -1,4 +1,4 @@ -\chapter{\texttt{nimCSO} Tutorial} \label{chap:nimplextutorial2} +\chapter{\texttt{nimCSO} Basic Tutorial on Selecting Elements for High Entropy Alloy Modeling} \label{chap:nimcsotutorial} The purpose of this guide is to demonstrate some common use cases of \texttt{nimCSO} and go in a bit more into the details @@ -13,7 +13,7 @@ \section{Dataset, Config, and To get started, let's first recap what we need to do to get \texttt{nimCSO} up and running. -\textbf{1.} Install nim and dependencies, but \textbf{that's already +\textbf{1.} Install \texttt{nim} and dependencies, but \textbf{that's already done for you if you are in the Codespace}. You can see what was run to get the environment set up in the \href{../.devcontainer/Dockerfile}{\texttt{Dockerfile}}. @@ -24,7 +24,7 @@ \section{Dataset, Config, and \texttt{../dataList.txt}. Let's have a look at the first few lines of the file to see what it looks like. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} !head -n 8 ../dataList.txt \end{minted} @@ -47,9 +47,7 @@ \section{Dataset, Config, and \textbf{4.} Finally, we can run the \texttt{nimCSO} package to get the results. To do so, we will use one long command you -can see below. Let's break it down: - \passthrough{\lstinline"!"} is a -Jupyter Notebook magic command that allows us to run shell commands from -within the notebook. +can see below. Let's break it down: \begin{itemize} \item @@ -103,8 +101,8 @@ \section{Dataset, Config, and Let's run the command and see what happens! Shouldn't take more than a few seconds. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!nim c -f -d:release -d:configPath=config.yaml --out:nimcso ../src/nimcso +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +nim c -f -d:release -d:configPath=config.yaml --out:nimcso ../src/nimcso \end{minted} \begin{minted}[xleftmargin=3\parindent, fontsize=\small, bgcolor=subtlegray]{output} @@ -117,18 +115,19 @@ \section{Dataset, Config, and CC: nimcso/bitArrayAutoconfigured.nim CC: nimcso.nim Hint: orc; threads: on; opt: speed; options: -d:release -87026 lines; 7.635s; 257.383MiB peakmem; proj: /workspaces/nimCSO/src/nimcso; out: /workspaces/nimCSO/examples/nimcso[SuccessX] +87026 lines; 7.635s; 257.383MiB peakmem; proj: /workspaces/nimCSO/src/nimcso; +out: /workspaces/nimCSO/examples/nimcso[SuccessX] \end{minted} Now, let's run \texttt{nimCSO} and see what happens! -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/1.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/1.png} \end{figure} You should have seen a neat \texttt{help} message that @@ -137,13 +136,13 @@ \section{Dataset, Config, and datapoints will be removed from the dataset if we remove the first 5 elements of \texttt{elementOrder}. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso -cb +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso -cb \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/2.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/2.png} \end{figure} \hypertarget{key-routines-and-brute-forcing}{ @@ -155,13 +154,13 @@ \section{Key Routines and Brute Forcing}\label{nimcsotutorial:key-routines-and-b Let's try the simplest routine \texttt{mostCommon} or \emph{What are the most common elements in the dataset?} -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso --mostCommon +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso --mostCommon \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/3.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/3.png} \end{figure} If you didn't modify anything, you should now see that elements like @@ -182,13 +181,13 @@ \section{Key Routines and Brute Forcing}\label{nimcsotutorial:key-routines-and-b With a dataset spanning 19 elements, the solution space is around 0.5M, so we can actually just brute force it in seconds :) -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso -bfi +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso -bfi \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/4.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/4.png} \end{figure} Let's look at the result! As expected, \texttt{N}, @@ -207,13 +206,13 @@ \section{Key Routines and Brute Forcing}\label{nimcsotutorial:key-routines-and-b using the \texttt{--singleSolution} / \texttt{-ss} routine. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso -ss Ta W Hf Si Re Y B C N -ss V W Hf Si Re Y B C N +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso -ss Ta W Hf Si Re Y B C N -ss V W Hf Si Re Y B C N \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/5.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/5.png} \end{figure} Wow! Looking at the \texttt{--mostCommon} output from @@ -238,13 +237,13 @@ \section{Key Routines and Brute Forcing}\label{nimcsotutorial:key-routines-and-b \texttt{--singleSolution} / \texttt{-ss} routine. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso -ss Ta V W Zr Hf Nb Si Re Y B C N -ss Ta V W Zr Hf Mo Si Re Y B C N -ss Ta V W Zr Hf Ti Si Re Y B C N +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small, breaklines]{shell} +./nimcso -ss Ta V W Zr Hf Nb Si Re Y B C N -ss Ta V W Zr Hf Mo Si Re Y B C N -ss Ta V W Zr Hf Ti Si Re Y B C N \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/6.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/6.png} \end{figure} We can see that \textbf{\texttt{Nb} is present in 121 @@ -274,13 +273,13 @@ \section{Algorithm Search}\label{nimcsotutorial:algorithm-search}} likely to be valid (see manuscript), to limit the search space and find the solution in a reasonable time. Let's try it now! -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso -as +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso -as \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/7.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/7.png} \end{figure} As you can see, \textbf{the algorithm reproduced the same results as the @@ -299,13 +298,13 @@ \section{Genetic Search}\label{nimcsotutorial:genetic-search}} Please note that the results are stochastic, so you might get different results than ones shown below if you run the command again. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} -!./nimcso -gs +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{shell} +./nimcso -gs \end{minted} \begin{figure}[H] \centering - \includegraphics[width=0.9\textwidth]{nimcsotutorial/8.png} + \includegraphics[width=0.97\textwidth]{nimcsotutorial/8.png} \end{figure} \hypertarget{summary}{% diff --git a/pysipfennTutorial2.tex b/pysipfennTutorial2.tex index e8e9320..b7eccd2 100644 --- a/pysipfennTutorial2.tex +++ b/pysipfennTutorial2.tex @@ -967,7 +967,7 @@ \subsection{Random Selection}\label{pysipfenntutorial2:random-selection}} \textbf{\emph{And finally, train the model}} -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small, breaklines]{python} model.eval() transferLosses = [float(loss(model(transferData, None), transferLabels))] validationLosses = [float(loss(model(validationData, None), validationLabels))] @@ -1040,7 +1040,7 @@ \subsection{Feature-Space-Informed Start by reloading feature data from pySIPFENN. -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small, breaklines]{python} with resources.files('pysipfenn').joinpath('modelsSIPFENN/SIPFENN_Krajewski2020_NN24.onnx') as nn24model: model = onnx2torch.convert(onnx.load(nn24model)) model.eval() @@ -1074,7 +1074,7 @@ \subsection{Feature-Space-Informed torch.index_select(labelTensor, 0, torch.LongTensor(validationIndexes)).float() \end{minted} -\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small]{python} +\begin{minted}[xleftmargin=3\parindent, linenos=true, fontsize=\small, breaklines]{python} model.eval() transferLosses = [float(loss(model(transferData, None), transferLabels))] validationLosses = [float(loss(model(validationData, None), validationLabels))] diff --git a/referencesAdam.bib b/referencesAdam.bib index af853c7..d85291a 100644 --- a/referencesAdam.bib +++ b/referencesAdam.bib @@ -1040,6 +1040,21 @@ @article{Hu2021Atomtransmachine:Learning keywords = {Atomism, Distributed representation, Feature engineering, Machine learning} } +@article{Ury2024AutomatedSystem, + title = {{Automated path planning for functionally graded materials considering phase stability and solidification behavior: Application to the Mo-Nb-Ta-Ti system}}, + year = {2024}, + journal = {Computational Materials Science}, + author = {Ury, Nicholas and Bocklund, Brandon and Perron, Aurelien and Bertsch, Kaila M.}, + month = {9}, + pages = {113172}, + volume = {244}, + publisher = {Elsevier}, + url = {https://linkinghub.elsevier.com/retrieve/pii/S0927025624003938}, + doi = {10.1016/j.commatsci.2024.113172}, + issn = {09270256}, + keywords = {Additive Manufacturing, CALPHAD, Phase stability, crack susceptibility, functionally graded material} +} + @article{Gomezgomez-Bombarelli2022AutomaticMolecules, title = {{Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules}}, year = {2022}, @@ -1197,6 +1212,11 @@ @article{Patterson2022CategoricalComputing keywords = {Category Theory, Computer Science, Databases, Logic in Computer Science, Mathematics} } +@misc{CHADWICKArpa-e.energy.gov, + title = {{CHADWICK | arpa-e.energy.gov}}, + url = {https://arpa-e.energy.gov/technologies/programs/chadwick} +} + @article{George2021ChemistTechniques, title = {{Chemist versus Machine: Traditional Knowledge versus Machine Learning Techniques}}, year = {2021}, @@ -6246,6 +6266,21 @@ @article{Lederer2018TheApproach arxivId = {1711.03426}, keywords = {high-entropy systems, high-throughput calculations} } +@misc{ULTERAwebsite, + title = {{ULtrahigh TEmperature Refractory Alloys (ULTERA) Database}}, + year = {2022}, + author = {Krajewski, Adam and Debnath, Arindam and Ahn, Marcia and Lin, Shuang and Sun, Hui and Beese, Allison and Reinhart, Wesley and Liu, Zi-Kui}, + url = {https://phaseslab.com/ultera} +} + +@article{Huo2017, + title = {{Unified Representation of Molecules and Crystals for Machine Learning}}, + year = {2017}, + author = {Huo, Haoyan and Rupp, Matthias}, + month = {4}, + url = {http://arxiv.org/abs/1704.06439}, + arxivId = {1704.06439} +} @article{Peierls1940TheDislocation, title = {{The size of a dislocation}}, @@ -6268,21 +6303,6 @@ @article{Smith1972TheSolutions pages = {195--200}, volume = {27} } -@misc{ULTERAwebsite, - title = {{ULtrahigh TEmperature Refractory Alloys (ULTERA) Database}}, - year = {2022}, - author = {Krajewski, Adam and Debnath, Arindam and Ahn, Marcia and Lin, Shuang and Sun, Hui and Beese, Allison and Reinhart, Wesley and Liu, Zi-Kui}, - url = {https://phaseslab.com/ultera} -} - -@article{Huo2017, - title = {{Unified Representation of Molecules and Crystals for Machine Learning}}, - year = {2017}, - author = {Huo, Haoyan and Rupp, Matthias}, - month = {4}, - url = {http://arxiv.org/abs/1704.06439}, - arxivId = {1704.06439} -} @inproceedings{Kuo2017TheTechnique, title = {{The study on surface characteristics of high transmission components by 3D printing technique}},