# Prediction of steel nanohardness by using graph neural networks on surface
polycrystallinity maps

Kamran Karimi1<EMAIL_ADDRESS>Henri Salmenjoki2 Katarzyna Mulewska1
Lukasz Kurpaska1 Anna Kosińska1 Mikko J. Alava1,2 Stefanos Papanikolaou1
<EMAIL_ADDRESS>1 NOMATEN Centre of Excellence, National
Center for Nuclear Research, ul. A. Sołtana 7, 05-400 Swierk/Otwock, Poland
2 Aalto University, Department of Applied Physics, PO Box 11000, 00076 Aalto,
Espoo, Finland

###### Abstract

As a bulk mechanical property, nanoscale hardness in polycrystalline metals is
strongly dependent on microstructural features that are believed to be heavily
influenced from complex features of polycrystallinity —namely, individual
grain orientations and neighboring grain properties. We train a graph neural
network (GNN) model, with each grain center location being a graph node, to
assess the predictability of micromechanical responses of nano-indented low-
carbon 310S stainless steel (alloyed with Ni and Cr) surfaces, solely based on
surface polycrystallinity, captured by electron backscatter diffraction maps.
The grain size distribution ranges between $1-100\leavevmode\nobreak\ \mu$m,
with mean grain size at $18\leavevmode\nobreak\ \mu$m. The GNN model is
trained on a set of nanomechanical load-displacement curves, obtained from
nanoindentation tests and is subsequently used to make predictions of nano-
hardness at various depths, with sole input being the grain locations and
orientations. Model training is based on a sub-standard set of $\sim 10^{2}$
hardness measurements, leading to an overall satisfactory performance. We
explore model performance and its dependence on various structural/topological
grain-level descriptors, such as the grain size and number of nearest
neighbors. Analogous GNN model frameworks may be utilized for quick,
inexpensive hardness estimates, for guidance to detailed nanoindentation
experiments, akin to cartography tool developments in the world exploration
era.

##  I Introduction

Polycrystals consist of complex crystalline grain networks that are known to
dictate multiscale mechanical responses [1]. Nevertheless, inherent
microstructure-property-process correlations may not be typically captured by
constitutive relations and contain overwhelming complexity [2]. A remarkable
exception is the famous Hall–Petch relationship [3, 4], connecting grain size
and strength [5, 6]. Primary strengthening mechanisms, such as dislocation
pile-ups and slip transfer capacity (across adjacent grains), are closely tied
to intrinsic geometry of grains as well as their crystallographic orientation
and associated degree of misalignment across boundaries [7, 8, 9, 10]. Indeed,
conventional phenomenological frameworks are limited in these respects, thus
significantly restricting their predictive capacities [1]. In this paper, we
construct a machine-learned graph neural network (GNN)-based framework from a
fairly large ensemble of intrinsic structural features associated with the
complex polycrystallinity of 310S steel. Using a relevant set of nano-
mechanical tests, our supervised model is trained to produce interpretable
predictions of micromechanical responses and indentation hardness solely based
on (an appropriate suite of) microstructural predictors. The proposed
framework may complement elaborate experimental and numerical investigations
of metals’ surface polycrystallinity by drastically improving material surface
exploration for mechanical purposes.

\begin{overpic}[width=433.62pt]{Figs/MLworkflowReduced2nd.jpg}
\put(29.0,40.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(20.0,50.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(43.0,40.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{\color[rgb]{0,1,1}\definecolor[named]{pgfstrokecolor}{rgb}{0,1,1}\pgfsys@color@cmyk@stroke{1}{0}{0}{0}\pgfsys@color@cmyk@fill{1}{0}{0}{0}
Target}\end{turn}}}}
\put(1.0,23.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(42.0,21.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>Neural Net}\end{turn}}}}
\put(71.0,29.5){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(81.0,33.5){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(91.5,29.5){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(77.0,37.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>n_{\text{proc}}$}\end{turn}}}}
\put(70.0,44.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>Process-Decode Architecture}\end{turn}}}}
\put(27.0,11.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(32.0,8.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(35.0,9.5){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>attributes ${v}_{i}:$}\end{turn}}}}
\put(35.0,8.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{\scriptsize(grain
size, perimeter, \\# of neighbors, ...)}\end{turn}}}}
\put(35.0,5.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>attributes ${e}_{ij}:$}\end{turn}}}}
\put(35.0,3.4){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{\scriptsize(misorientation
angle)}\end{turn}}}}
\put(42.0,14.5){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{\color[rgb]{1,.5,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,.5,0}
Predictors}\end{turn}}}}
\put(93.0,1.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(72.0,18.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(83.0,17.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>in}\end{turn}}}}
\put(56.0,17.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(56.0,14.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{{\large$\\{{e}_{ij}\\}_{i,j<i}$}}\end{turn}}}}
\leavevmode\hbox to472.88pt{\vbox
to91.15pt{\pgfpicture\makeatletter\hbox{\hskip 4.02745pt\lower-3.5969pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{{}}{}{}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{{}}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{1,1,1}\definecolor[named]{pgfstrokecolor}{rgb}{1,1,1}\pgfsys@color@gray@stroke{1}\pgfsys@invoke{
}\pgfsys@color@gray@fill{1}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{1,1,1}{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{1,1,1}\definecolor[named]{pgfstrokecolor}{rgb}{1,1,1}\pgfsys@color@gray@stroke{1}\pgfsys@invoke{
}\pgfsys@color@gray@fill{1}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{1,1,1}
\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-0.69444pt}{-0.26389pt}\pgfsys@invoke{
}\hbox{{\definecolor[named]{.}{rgb}{1,1,1}\definecolor[named]{pgfstrokecolor}{rgb}{1,1,1}\pgfsys@color@gray@stroke{1}\pgfsys@invoke{
}\pgfsys@color@gray@fill{1}\pgfsys@invoke{
}\hbox{{\definecolor[named]{.}{rgb}{1,1,1}\color[rgb]{1,1,1}\definecolor[named]{pgfstrokecolor}{rgb}{1,1,1}\pgfsys@color@gray@stroke{1}\pgfsys@color<EMAIL_ADDRESS>}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}} {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0,1,1}\definecolor[named]{pgfstrokecolor}{rgb}{0,1,1}\pgfsys@color@cmyk@stroke{1}{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@cmyk@fill{1}{0}{0}{0}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0,1,1}\pgfsys@setlinewidth{1.1381pt}\pgfsys@invoke{
}{}\pgfsys@moveto{270.30121pt}{71.1319pt}\pgfsys@lineto{278.83711pt}{71.1319pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{{}}{}{}{}{}{}{}{}{}}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@invoke{
}\pgfsys@color@gray@fill{0}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0,0,0}\definecolor[named]{pgffillcolor}{rgb}{0,0,0}\pgfsys@color@gray@fill{0}\pgfsys@invoke{
}{}\pgfsys@moveto{275.99167pt}{85.35828pt}\pgfsys@moveto{277.98335pt}{85.35828pt}\pgfsys@curveto{277.98335pt}{86.45827pt}{277.09166pt}{87.34996pt}{275.99167pt}{87.34996pt}\pgfsys@curveto{274.89168pt}{87.34996pt}{273.99998pt}{86.45827pt}{273.99998pt}{85.35828pt}\pgfsys@curveto{273.99998pt}{84.25829pt}{274.89168pt}{83.3666pt}{275.99167pt}{83.3666pt}\pgfsys@curveto{277.09166pt}{83.3666pt}{277.98335pt}{84.25829pt}{277.98335pt}{85.35828pt}\pgfsys@closepath\pgfsys@moveto{275.99167pt}{85.35828pt}\pgfsys@fillstroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope
{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{{}}{}{}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{{{}{}{}{}{}{}{}{}{}{}}{{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}}{{}{}{}{}{}{}}}{{{}{}{}{}{}{}{}{}{}{}}{{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}}{{}{}{}{}{}{}}}{{{}{}{}{}{}}}{{{}{}{}{}{}}}{{}}{}{}{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{
}{{}{{}}{}{}} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{{}}{}{}{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{{}}{}{}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{{{}{}{}{}{}{}{}{}{}{}}{{}{}{}{}{}{}{}{}{}{}}}{{}}{}{}{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{
}{{}{{}}{}{}} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{{}}{}{}{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{
{}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{451.97604pt}{47.48157pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\hbox{{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\hskip
1.0pt \large$\frac{dp}{dh}$}}} }}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{{}}{}{{}}{}{{}} {}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@invoke{
}\pgfsys@color@gray@fill{0}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0,0,0}\pgfsys@setlinewidth{0.28453pt}\pgfsys@invoke{
}{}\pgfsys@moveto{453.05815pt}{31.40703pt}\pgfsys@lineto{448.89464pt}{31.40732pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{}}{}{{}}{}{{}}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@invoke{
}\pgfsys@color@gray@fill{0}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0,0,0}\pgfsys@setlinewidth{0.28453pt}\pgfsys@invoke{
}{}\pgfsys@moveto{453.05815pt}{31.40703pt}\pgfsys@lineto{453.05815pt}{71.02277pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{}}{}{{}}{}{{}}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@invoke{
}\pgfsys@color@gray@fill{0}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0,0,0}\pgfsys@setlinewidth{0.28453pt}\pgfsys@invoke{
}{}\pgfsys@moveto{448.89464pt}{31.40732pt}\pgfsys@lineto{453.05815pt}{71.02277pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope
\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}} \end{overpic} Figure
1: The supervised machine-learning workflow combining nanoindentation and
scanning electron microscope EBSD experimental data with graph neural net
(GNN) based approach. The load-depth curves obtained from a nanoindented
specimen serve as the _target_ data for the GNN model. The grain
microstructure and associated attributes are utilized as relevant
_predictors_. The combined data set is employed to construct a GNN, with each
grain center location being a graph node, to be trained through the “encode-
process-decode” architecture. The model can learn from underlying correlations
between the metallic microstructure and materials’ mechanical response and
make predictions on the latter (i.e. grain hardness) purely based on the
former information.

Graph-based representations of polycrystals have been quite common in the
attempt to describe microstructre-property relationships [11, 12, 13, 14].
However, individual grain behaviors in polycrystals have been challenging to
identify, with a wealth of constitutive parameters being commonly used to
model them [14]. GNNs provide a way to capture and learn these behaviors in a
consistent way, that can then be used to predict mechanical responses, solely
based on the grain environment. GNNs combine conveniences of both conventional
(feature-based) machine learning methods and deep learning, but with
unstructured architectures that are more adherent to real physical contexts
[15, 16, 17, 18]. GNN has been used in recent applications in materials
science relevant to dynamics of glassy systems [19, 20] as well as property
predictions in crystalline materials [21] and some aspects of polycrystalline
metals [22].

\begin{overpic}[width=121.41306pt]{Figs/force_time.png}
\put(4.0,70.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(4.0,12.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(26.0,4.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(40.0,78.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(53.0,4.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(73.0,4.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(17.0,79.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$a)$}}}
\end{overpic}

\begin{overpic}[width=121.41306pt]{Figs/disp_time.png}
\put(4.0,40.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(26.0,4.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(53.0,4.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(73.0,4.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(17.0,79.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$b)$}}}
\end{overpic}

Figure 2: Load-depth curves corresponding to the force-controlled
nanoindentation tests. a) dynamics of the applied force b) measured
indentation depths versus elapsed time. The graphs are not scale.

Nanoindentation tests provide valuable insights into complex microstructural
strengthening and hardening mechanisms at the nanoscale, albeit with size
effects [23] that mask bulk microstructural responses [24, 25, 26]. Electron
microscopy has been shown to significantly assist the interpretation of
nanoindentation results in a wealth of materials [27, 28, 29]. Here, we
integrate nanoindentation data, informed by electron backscatter diffraction
(EBSD) mapping, with a supervised data-driven approach based on the graph
neural net model to infer micromechanical responses and grain-scale hardness
from the surface polycrystallinity information (see Fig. 1). We construct and
train the GNN using an EBSD orientation imaging map containing individual
grains’ orientations and neighboring grain properties which was supplemented
by a micromechanical data set corresponding to a nanoindented low-carbon 310S
stainless steel (alloyed with Ni and Cr). The latter information consists of
grain-scale load-displacement curves to be used as _response_ variables for
the prediction task. Microstructural _predictors_ include an exhaustive list
of (quantitative and categorical) grain-related characteristics with quite
different scales that are all inferred and post-processed from the EBSD grain
map (see Fig. 3). This includes grain size (area), perimeter, length of inner
boundaries (subBoundaryLength), diameter, perimeter of a circle with the same
area (equivalentPerimeter), perimeter divided by equivalent perimeter
(shapeFactor), a boundary grain (isBoundary), a grain with inclusions
(hasHole), an inclusion grain (isInclusion), and number of neighboring grains
(numNeighbors) as well as the misorientation angle (misOrientationAngle)
between neighboring grains and associated boundary length (boundaryLength).
The grains’ (numerical) descriptors are typically distributed over a broad
range of scales with large variations in the associated nanomechanical
response. The grain size distribution, as an example, has a lower cutoff at
about $1\leavevmode\nobreak\ \mu$m and mean value of $18\leavevmode\nobreak\
\mu$m but is largely skewed with a long tail that extends up to $100$ microns.
Nevertheless, the overall predictive accuracy of our GNN model is fair given a
relatively limited size of statistics (less than $200$ sample points). This is
verified in a systematic way by considering the learning process and its
dependence on the training size as well as descriptor sets of varying size.

On top of high predictive accuracy, GNNs provide highly interpretable results
and qualitative insights about underlying correlations between structural
metrics and predicted nanomechanical response. More specifically, we find the
grain diameter as a relevant hardness predictor which is in agreement with
physics principles and could be verified in the context of the well-
established Hall-Petch relationship, connecting the former and polycrystalline
metals’ strength (and/or hardness). In this framework, machine-learned models
may accelerate experimental investigations relevant to the hardness
_exploration_ in polycrystalline metals. In addition to bulk mechanical
properties (i.e. indentation hardness), our model may also be fine-tuned to
accurately forecast indentation-induced strain bursts (i.e. pop-ins) [30] and
associated statistical distributions solely based on microstructural inputs.

##  II Methods

###  II.1 Nanoindentation Testing

The sample preparation, nanoindentation experiments, and microstructural
characterization of the low-carbon $310$S stainless steel but high in Ni
($19-22\%$) and Cr ($24-26\%$) content are detailed in [31]. We performed
nanoindentation tests using the NanoTest Vantage system designed by Micro
Materials Ltd. Hardness measurements were made at room temperature by using a
Berkovich diamond indenter tip in a load-controlled manner at various depths.
Dynamics of the applied force is given in Fig. 2(a) with the maximum load
level, denoted by $f_{\text{max}}$, exerted over the loading period of
duration $t_{\text{load}}$ and following (first) dwell period
$t^{0}_{\text{dwell}}$. The specimen is subsequently unloaded to a residual
force $f_{\text{min}}$ over the time scale $t_{\text{unload}}$ before it goes
through the second dwell period of duration $t^{1}_{\text{dwell}}$ for thermal
drift corrections. The experiments were repeated over $12$ distinct
$f_{\text{max}}$ values selected between $0.25-10$ mN and $15$ different
indentation points per $f_{\text{max}}$ which were chosen to be about
$20\leavevmode\nobreak\ \mu$m (the mean grain size) apart in distance . This
led to $180$ mechanical tests in total. Here $f_{\text{min}}=0.25$ mN and
$t^{1}_{\text{dwell}}=60$ s. We also set $t_{\text{load}}=10$ s,
$t^{0}_{\text{dwell}}=2$ s, $t_{\text{unload}}=5$ s for $f_{\text{max}}>5$ mN
and $t_{\text{load}}=5$ s, $t^{0}_{\text{dwell}}=1$ s, $t_{\text{unload}}=3$ s
otherwise. As the outputs, we measure indentation depths as a function of time
with a temporal resolution of order $\Delta t\simeq 0.05$ s, as in Fig. 2(b).

###  II.2 Microstructural Characterization

The microstructural characterization and EBSD analysis of the indented sample
was performed through a ThermoFisher Scientific Helios 5 UX scanning electron
microscope equipped with an EDAX Velocity Pro EBSD system. The grain mapping
was performed using a $20$ keV electron beam with a $6.4$ nA probe current.
The EBSD map was subsequently reconstructed through an EDAX OIM Analysis 8
software by grouping sets of (at least $2$) connected and similarly-oriented
points (within $\pm 5^{\circ}$ uncertainties in angle) into individual grains.
Crystallographic orientations, expressed in terms of Miller indices, can be
assigned to each reconstructed grain (Fig. 3) to be used as model inputs for
the GNN framework.

###  II.3 Training workflow

Nanoindentation load-depth curves were obtained from tests performed
independently on $n_{\text{ind}}=131$ individual grains (out of $n_{g}=1080$
grains) based on a load-controlled protocol described above. We discretized
the corresponding displacement and force data (excluding the second dwell
period) as a function of time into regular arrays of size
$n_{\text{dis}}=100$, as in Fig. A1 and A2, and assembled the former in the
target matrix $Y_{n_{\text{ind}}\times n_{\text{dis}}}$ to serve as training
and test examples for our network. For the case of (large) grains with
multiple indentation sites, we simply used the average displacement curves and
our network was trained to predict deformation for individual grains. To
reconstruct the network from the EBSD map (Fig. 3), each grain is treated as a
separate node with index $i$ and $i=1...n_{g}$ in our graph. The graph
connectivity is based on neighboring grains; that is, grain index $i$ and $j$
sharing a common border on the grain map are connected by an edge $ij$ (see
Fig. 1).

As a nodal _feature_ , every node is assigned two dimensional Cartesian
coordinates (x,y) associated with the center of each grain. Additional nodal
attributes extracted from the original map (and expected to correlate with the
mechanical response) include grain size (area), perimeter, length of inner
boundaries (subBoundaryLength), diameter, perimeter of a circle with the same
area (equivalentPerimeter), perimeter divided by equivalent perimeter
(shapeFactor), a boundary grain (isBoundary), a grain with inclusions
(hasHole), an inclusion grain (isInclusion), and number of neighboring grains
(numNeighbors). The discretized force vector (as a control parameter in the
experiment) was concatenated with the above set of structural attributes of
dimension $n_{f}=12$ with the assembled feature matrix given as
$X_{n_{\text{ind}}\times(n_{\text{dis}}+n_{f})}$. To avoid features with
significant variations in scale, every column of the above matrix was
$z$-scored independently to have a zero mean and unit variance. Furthermore,
the edges of the graph accommodate the misorientation angle
(misOrientationAngle) between two neighboring grains $i$ and $j$ along with
the associated boundary length (boundaryLength) as their features [32] .

$x(\mu\text{m})$

$y(\mu\text{m})$

microstructural predictors |  statistical mean |  standard deviation
---|---|---
x |  $-120.9(\mu\text{m})$ |  $75.5$
y |  $-148.1(\mu\text{m})$ |  $95.7$
area |  $82.9(\mu\text{m}^{2})$ |  $192.5$
perimeter |  $35.3(\mu\text{m})$ |  $48.5$
subBoundaryLength |  $0.1(\mu\text{m})$ |  $0.9$
diameter |  $11.0(\mu\text{m})$ |  $13.7$
equivalentPerimeter |  $20.1(\mu\text{m})$ |  $25.2$
shapeFactor |  $1.5$ |  $0.5$
isBoundary∗ |  $0.1$ |  $0.3$
hasHole∗ |  $0.1$ |  $0.2$
isInclusion∗ |  $0.2$ |  $0.4$
numNeighbors |  $4.8$ |  $4.3$
misOrientationAngle† |  $45.0^{\circ}$ |  $12.1$
boundaryLength† |  $7.3$ |  $10.9$

${}^{*}\leavevmode\nobreak\ $Binary variables

${}^{\dagger}\leavevmode\nobreak\ $Edge-based attributes

Figure 3: The EBSD map used to extract numerical and binary microstructural
variables as the model input.

The full set of nodal and edge-based features, i.e.
$\\{{v}_{i}\\}_{i=1...n_{g}}$ and $\\{{e}_{ij}\\}_{i,j<i}$ in the input graph,
is initially encoded by an “Encoder” block and subsequently processed via a
“Core” structure with $n_{\text{proc}}=3$ rounds of processing based on the
message-passing framework [15]. The “Decoder” block returns an output graph
(with the exact same structure as the input one) based on the Core’s outcome
but with predicted attributes, i.e. expected displacements, based on the nodal
and edge-based descriptors. Within the message-passing framework, the GNN
applies two learning multilayer perceptrons (mlp) including an edge-based
$\phi_{e}$ and node-based $\phi_{v}$ to each edge and node in order to compute
updated node and edge attributes iteratively. The two mlp’s have identical
architectures and are composed of two hidden layers and eight neurons per
layer with a tangent hyperbolic activation function.

The optimization of the GNN model was performed by minimizing the loss
function based on the mean-squared error (MSE) between the actual
displacements and those outputted by the GNN using the stochastic gradient
descent over the entire parameter space with a learning rate of $10^{-3}$. The
graph data was split into training and testing sets and further trained using
a four-fold cross validation. We note that both sets (the training and testing
examples) are present within the same graph and that the node labels
associated with the test data (i.e. displacements) are invisible during the
training process. We use the GNNs library in Python which is DeepMind’s
implementation of graph neural nets based on Google’s Tensorflow [15].

##  III Results

We first investigate the GNN model and assess its predictive power of
nanoindentation responses based on the grains’ surface structure and given
history of applied forces. This includes a systematic analysis of the learning
process of GNN from different subsets of existing grain-level predictors and
varying training sizes. As a further validation, we extract grain nano
hardness at various depths from the predicted response and quantify how well
the predictions compare with the actual data.

###  III.1 Training and validation

The evolution of the GNN performance in minimizing the loss function is
illustrated in Fig. 4(a) and (b). The learning rate corresponding to the
training and test data are shown as a function of the number of iterations.
The GNN training involves $92$ training cases ($70\%$) and $39$ test
observations ($30\%$). Applying the GNN model to the training data set lead to
a fairly low training set error ($\text{MSE}<10$), showing a decay of at least
four orders of magnitude after about $10^{4}$ iterations. However, the test
error rate appears to decrease more slowly as the optimization iterations
proceed, decaying around two order of magnitude before it reaches a noise
floor. Figure 4(c) and (d) show learning curves for the GNN-based prediction
task, plots of MSE against the (relative) size of the training set. Here the
results correspond to the four-fold cross-validation estimating the
performance of the graph network over the training sets of varying sizes (and
testing sets of a fixed size). The performance tends to improves as the
(relative) training set size increases to $50\%$ (less than 50 sample points)
and increasing the number further leads to a small improvement.

\begin{overpic}[width=99.73074pt]{Figs/learning_rate_train.png}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$a)\leavevmode\nobreak\
\text{Train}$}}}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/learning_rate_test.png}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$b)\leavevmode\nobreak\
\text{Test}$}}}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/learning_curve_train.png}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$c)$}}}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>size}\end{turn}}}}
\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/learning_curve_test.png}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$d)$}}}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>size}\end{turn}}}}
\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

Figure 4: Learning rate of the graph neural net corresponding to the a)
training b) test set as a function of the number of iterations. Learning
curves based on the cross-validated c) training and d) test mean squared
errors for different training set sizes. The solid curves in c) and d)
indicate lower bounds corresponding to the four-fold cross validation.

\begin{overpic}[width=99.73074pt]{Figs/mse_grainSize_train_scatter.png}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$a)\leavevmode\nobreak\
\text{Train}$}}}
\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/mse_grainSize_test_scatter.png}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$b)\leavevmode\nobreak\
\text{Test}$}}}
\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/prediction0_bigGrain_lowMSE.png}
\put(14.0,44.0){\includegraphics[width=43.36464pt]{Figs/grain_indx0_bigGrain_lowMSE.png}}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$c)\leavevmode\nobreak\
\scriptstyle\text{mse}\simeq 3,\texttt{area}\simeq 1200\leavevmode\nobreak\
\mu\text{m}^{2}$}}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/prediction1_smallGrain_hiMSE.png}
\put(14.0,66.0){\includegraphics[width=43.36464pt]{Figs/grain_indx1_smallGrain_hiMSE.png}}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$d)\leavevmode\nobreak\
\scriptstyle\text{mse}\simeq 10^{2},\texttt{area}\simeq 40\leavevmode\nobreak\
\mu\text{m}^{2}$}}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

Figure 5:  a) Training and b) test errors plotted against area. Actual
(symbols) and predicted (dashdotted curve) load-depth curves associated with a
c) good and d) poor prediction within the test set. The insets show the
corresponding grain maps.

The predictive power of GNN as a function of variable area is shown in Fig. 5
with the training and testing sets in Fig. 5(a) and Fig. 5(b). As expected,
the latter displays larger variations in terms of the test errors (almost
three orders of magnitude in MSE). The observed (anti-)correlations in both
data sets indicate that, on average, the GNN exhibits a better performance
with increasing grain size — cf. Fig. 5(c), Fig. 5(d), Fig. A1, and Fig. A2.

Figure 6 features the performance of the GNN model for all the predictor
subsets (excluding the binary metrics). We pre-selected six quantitative
variables including area, perimeter, diameter, equivalentPerimeter,
shapeFactor, and numNeighbors to probe the training and test errors for every
possible subset of size $k=1...5$. In every analysis, the nodal coordinates
(x, y) as well as the edge-based predictors misOrientationAngle and
boundaryLength are incorporated as a fixed set of descriptors that are
supplemented by additional variables as described above. Overall, the training
errors in Fig. 6(a) and the associated base-line do not seem to be very
sensitive to the subset size $k$. However, the minimum MSE corresponding to
the testing set in Fig. 6(b) shows meaningful variations with $k$ featuring a
dip at $k=4$ that corresponds to perimeter, diameter, equivalentPerimeter, and
numNeighbors as predictor variables (see the table). In fact, the model
performance will drastically degrade by including a subset of size $k=5$. Out
of the six numeric variables, diameter and shapeFactor are the most and least
repeated entries of the table in Fig. 6 and, therefore, can be viewed as the
most and least relevant descriptors.

\begin{overpic}[width=99.73074pt]{Figs/validation_curve_train.png}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>size $k$}\end{turn}}}}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$a)\leavevmode\nobreak\
\text{Train}$}}}
\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

\begin{overpic}[width=99.73074pt]{Figs/validation_curve_test.png}
\put(50.0,-3.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>size $k$}\end{turn}}}}
\put(17.0,14.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$b)\leavevmode\nobreak\
\text{Test}$}}}
\put(-3.0,46.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>\end{overpic}

subset size $k$ |  $1$ |  $2$ |  $3$ |  $4$ |  $5$
---|---|---|---|---|---
area |  |  |  $\dagger$ |  |  $\dagger$
perimeter |  |  |  $\dagger$ |  $\dagger$ |  $\dagger$
diameter |  $\dagger$ |  |  $\dagger$ |  $\dagger$ |  $\dagger$
equivalentPerimeter |  |  $\dagger$ |  |  $\dagger$ |  $\dagger$
shapeFactor |  |  |  |  |  $\dagger$
numNeighbors |  |  $\dagger$ |  |  $\dagger$ |

Figure 6: Validation curves determining a) training and b) test errors for
varying sets of descriptors. Here symbols correspond to all possible subsets
of size $k=1...5$ corresponding to the full set of numeric variables area,
perimeter, diameter, equivalentPerimeter, shapeFactor, numNeighbors. The solid
curves indicate minimal errors corresponding to each $k$ and the table denotes
the associated set of predictors (relevant to the testing set) by $\dagger$.

###  III.2 Hardness Prediction

We infer grain-scale hardness from the GNN-predicted load-depth diagrams
following the Oliver-Pharr framework [33]. The scatter plot of the predicted
($h_{\text{pred}}$) and actual hardness ($h_{\text{act}}$) is also shown in
Fig. 7. The predictions associated with the testing set is, apart from a few
outliers, reasonably distributed around $h_{\text{pred}}=h_{\text{act}}$. This
is further quantified by a fairly high Pearson’s correlation coefficient
$\rho_{h}=\langle\hat{h}_{\text{pred}}\leavevmode\nobreak\
\hat{h}_{\text{act}}\rangle$ with $\rho^{\text{test}}_{h}\simeq 0.7$. Here
$\hat{h}\doteq(h-\langle h\rangle)/\text{var}^{\frac{1}{2}}(h)$ with the
angular brackets $\langle.\rangle$ denoting an average. The hardness maps
associated with the indented grains are shown for the actual and predicted
data sets in in Fig. 8(a) and (b) as well as the difference between the former
and the latter as in in Fig. 8(c). The actual map in Fig. 8(a) indicates that
harder grains (in red) are, on average, smaller in size. We note that the
bluish (reddish) colors in Fig. 8(c) indicate regions where the GNN tends to
over(under)predict hardness. A visual inspection of Fig. 8(c) might indicate
that grains with over(under)-predicted hardness may not possess any clear,
distinguishable features (i.e. an abnormal geometry) that could delineate
these cases. In this context, dimensionality reduction and/or clustering
algorithms might allow for extracting anomalous attributes associated with
such outliers (cf. Fig. 7) in a more systematic way.

##  IV Conclusions & Discussions

We have studied the effectiveness and robustness of a GNN-based supervised
machine learning model in predicting mechanical nanoindentation response from
experimentally-measured grain microstructure replicated as a graph.
Microstructural patterns are encapsulated in the GNN via a set of node-based
and edge-based hidden layers that learn from nanoindentation-induced
deformation in a supervised learning context. We have probed hardness as an
experimentally measurable micromechanical property to test the predictive
power of the GNN. A rich set of grain-level structural features was extracted
from the grain map and the robustness and accuracy of the prediction task was
verified with respect to varying subsets of selected descriptors.

Given the convenience of GNNs (i.e. predictiveness, speed, and
interpretability) in the hardness prediction, the proposed framework may also
be augmented to account for indentation-induced pop-in behavior abrupt
displacement jumps (in a load-controlled indentation) and associated
statistical distributions solely based on microstructural inputs. As pop-ins
typically trigger as a result of the interplay between dislocations and
embedding grain boundary, one might envision the use of more elaborate
indicators of microstructure (such as dislocation density) to be incorporated
as nodal and/or edge-based ingredients.

As a final remark, applications of data-driven methodologies shall not be
regarded as substitutes but rather complements to laboratory-based
measurements and/or high-throughput physics-based simulations. Machine-learned
models require smooth access to well-maintained, accurate, and reusable data
sets, relevant to materials’ micro-structure and associated (micro-)mechanical
response, which are otherwise impossible to measure in the absence of
experimental/numeric observations. In fact, a coherent integration of the
above methodologies will be essential in a way that they guide one another to
achieve the desired speed, interpretability, and predictiveness of outcomes.
Our GNN development provides a fine example in this context, where a fairly
limited number of surface measurements (order $10^{2}$ indentation tests) was
performed for the prediction task. Nevertheless, the model outcomes will allow
us to efficiently infer a _full_ hardness cartography map from the prescribed
force dynamics, as in Fig. 2(a), and a fine-scale EBSD analysis of nearly
$10^{3}$ grains.

\begin{overpic}[width=104.07117pt]{Figs/validation_scatter.png}
\put(50.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{$h_{\text{act}}$(Gpa)}\end{turn}}}}
\put(-12.0,50.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{$h_{\text{pred}}$(Gpa)}\end{turn}}}}
\end{overpic} Figure 7: Scatter plot of the predicted hardness and the actual
values corresponding to the training set (  ) and the test set (  ). The
diagonal dashdotted line indicates $h_{\text{pred}}=h_{\text{act}}$. The
hardness is measured in Gpa.

\begin{overpic}[width=121.41306pt]{Figs/actual_hmap.png}
\put(16.0,99.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$a)\leavevmode\nobreak\
h_{\text{act}}$}}}
\put(50.0,13.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{$x(\mu\text{m})$}\end{turn}}}}
\put(-8.0,50.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{$y(\mu\text{m})$}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=121.41306pt]{Figs/predicted_hmap.png}
\put(16.0,99.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$b)\leavevmode\nobreak\
h_{\text{pred}}$}}}
\put(50.0,13.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{$x(\mu\text{m})$}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=121.41306pt]{Figs/dh.png}
\put(16.0,99.0){\hbox{\pagecolor{white}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}$c)\leavevmode\nobreak\
h_{\text{pred}}-h_{\text{act}}$}}}
\put(50.0,13.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{$x(\mu\text{m})$}\end{turn}}}}
\end{overpic}

Figure 8: Hardness maps (including indented grains only) associated with the
a) actual data $h_{\text{act}}$ b) GNN prediction $h_{\text{pred}}$ c)
difference between predicted and actual data $h_{\text{pred}}-H_{\text{act}}$.
The harness is measured in Gpa. The hatched areas denote non-indented grains.

###### Acknowledgements.

This research was funded by the European Union Horizon 2020 research and
innovation program under grant agreement no. 857470 and from the European
Regional Development Fund via Foundation for Polish Science International
Research Agenda PLUS program grant no. MAB PLUS/2018/8. We wish to acknowledge
fruitful discussions with Daniel Cieslinski.

## References

  * Wadhwa and Dhaliwal [2008] A. S. Wadhwa and H. S. Dhaliwal,  _A Textbook of Engineering Material and Metallurgy_ (Firewall Media, 2008).
  * Lasalmonie and Strudel [1986] A. Lasalmonie and J. Strudel, Influence of grain size on the mechanical behaviour of some high strength materials, Journal of Materials Science 21, 1837 (1986).
  * Hall [1951] E. Hall, The deformation and ageing of mild steel: Iii discussion of results, Proceedings of the Physical Society. Section B 64, 747 (1951).
  * Petch [1953] N. Petch, The cleavage strength of polycrystals, Journal of the Iron and Steel institute 174, 25 (1953).
  * Alavudeen  _et al._ [2006] A. Alavudeen, N. Venkateshwaran, and J. W. Jappes,  _A textbook of engineering materials and metallurgy_ (Firewall Media, 2006).
  * Yang and Vehoff [2005] B. Yang and H. Vehoff, Grain size effects on the mechanical properties of nanonickel examined by nanoindentation, Materials Science and Engineering: A 400, 467 (2005).
  * Wang and Ngan [2004] M. Wang and A. Ngan, Indentation strain burst phenomenon induced by grain boundaries in niobium, Journal of materials research 19, 2478 (2004).
  * Britton  _et al._ [2009] T. Britton, D. Randman, and A. Wilkinson, Nanoindentation study of slip transfer phenomenon at grain boundaries, Journal of Materials Research 24, 607 (2009).
  * Pathak  _et al._ [2012] S. Pathak, J. Michler, K. Wasmer, and S. R. Kalidindi, Studying grain boundary regions in polycrystalline materials using spherical nano-indentation and orientation imaging microscopy, Journal of Materials Science 47, 815 (2012).
  * Ohmura  _et al._ [2005] T. Ohmura, K. Tsuzaki, and F. Yin, Nanoindentation-induced deformation behavior in the vicinity of single grain boundary of interstitial-free steel, Materials transactions 46, 2026 (2005).
  * Ozturk  _et al._ [2015] T. Ozturk, C. Stein, R. Pokharel, C. Hefferan, H. Tucker, S. K. Jha, R. John, R. A. Lebensohn, P. Kenesei, R. M. Suter, and A. D. Rollett, Simulation domain size requirements for elastic response of 3d polycrystalline materials, Modelling and Simulation in Materials Science and Engineering 24 (2015).
  * Jackson  _et al._ [2019] M. Jackson, M. Groeber, S. Donegan, and D. Dimiduk, Advancements to the digital representation environment for analysis of materials in 3-dimensions—dream. 3d, Microscopy and Microanalysis 25, 176 (2019).
  * Bronkhorst  _et al._ [1992] C. A. Bronkhorst, S. Kalidindi, and L. Anand, Polycrystalline plasticity and the evolution of crystallographic texture in fcc metals, Philosophical Transactions of the Royal Society of London. Series A: Physical and Engineering Sciences 341, 443 (1992).
  * Bronkhorst  _et al._ [2019] C. A. Bronkhorst, J. R. Mayeur, V. Livescu, R. Pokharel, D. W. Brown, and G. T. Gray III, Structural representation of additively manufactured 316l austenitic stainless steel, International Journal of Plasticity 118, 70 (2019).
  * Battaglia  _et al._ [2018] P. W. Battaglia, J. B. Hamrick, V. Bapst, A. Sanchez-Gonzalez, V. Zambaldi, M. Malinowski, A. Tacchetti, D. Raposo, A. Santoro, R. Faulkner, _et al._ , Relational inductive biases, deep learning, and graph networks, arXiv preprint arXiv:1806.01261 (2018).
  * Bronstein  _et al._ [2017] M. M. Bronstein, J. Bruna, Y. LeCun, A. Szlam, and P. Vandergheynst, Geometric deep learning: going beyond euclidean data, IEEE Signal Processing Magazine 34, 18 (2017).
  * Zhou  _et al._ [2020] J. Zhou, G. Cui, S. Hu, Z. Zhang, C. Yang, Z. Liu, L. Wang, C. Li, and M. Sun, Graph neural networks: A review of methods and applications, AI Open 1, 57 (2020).
  * Frydrych  _et al._ [2021] K. Frydrych, K. Karimi, M. Pecelerowicz, R. Alvarez, F. J. Dominguez-Gutiérrez, F. Rovaris, and S. Papanikolaou, Materials informatics for mechanical deformation: A review of applications and challenges, Materials 14, 5764 (2021).
  * Bapst  _et al._ [2020] V. Bapst, T. Keck, A. Grabska-Barwińska, C. Donner, E. D. Cubuk, S. S. Schoenholz, A. Obika, A. W. Nelson, T. Back, D. Hassabis, _et al._ , Unveiling the predictive power of static structure in glassy systems, Nature Physics 16, 448 (2020).
  * Shiba  _et al._ [2022] H. Shiba, M. Hanai, T. Suzumura, and T. Shimokawabe, Unraveling intricate processes of glassy dynamics from static structure by machine learning relative motion, arXiv preprint arXiv:2206.14024 (2022).
  * Xie and Grossman [2018] T. Xie and J. C. Grossman, Crystal graph convolutional neural networks for an accurate and interpretable prediction of material properties, Physical review letters 120, 145301 (2018).
  * Pagan  _et al._ [2022] D. C. Pagan, C. R. Pash, A. R. Benson, and M. P. Kasemer, Graph neural network modeling of grain-scale anisotropic elastic behavior using simulated and measured microscale data, arXiv preprint arXiv:2205.06324 (2022).
  * Nix and Gao [1998] W. D. Nix and H. Gao, Indentation size effects in crystalline materials: a law for strain gradient plasticity, Journal of the Mechanics and Physics of Solids 46, 411 (1998).
  * Bolin  _et al._ [2019] R. Bolin, H. Yavas, H. Song, K. J. Hemker, and S. Papanikolaou, Bending nanoindentation and plasticity noise in fcc single and polycrystals, Crystals 9, 652 (2019).
  * Durst  _et al._ [2006] K. Durst, B. Backes, O. Franke, and M. Göken, Indentation size effect in metallic materials: Modeling strength from pop-in to macroscopic hardness using geometrically necessary dislocations, Acta Materialia 54, 2547 (2006).
  * Papanikolaou  _et al._ [2017] S. Papanikolaou, Y. Cui, and N. Ghoniem, Avalanches and plastic flow in crystal plasticity: an overview, Modelling and Simulation in Materials Science and Engineering 26, 013001 (2017).
  * Ruiz-Moreno and Hähner [2018] A. Ruiz-Moreno and P. Hähner, Indentation size effects of ferritic/martensitic steels: A comparative experimental and modelling study, Materials & Design 145, 168 (2018).
  * Kurpaska  _et al._ [2022] L. Kurpaska, F. Dominguez-Gutierrez, Y. Zhang, K. Mulewska, H. Bei, W. Weber, A. Kosińska, W. Chrominski, I. Jozwik, R. Alvarez-Donado, _et al._ , Effects of fe atoms on hardening of a nickel matrix: Nanoindentation experiments and atom-scale numerical modeling, Materials & Design 217, 110639 (2022).
  * Gouldstone  _et al._ [2007] A. Gouldstone, N. Chollacoop, M. Dao, J. Li, A. M. Minor, and Y.-L. Shen, Indentation across size scales and disciplines: Recent developments in experimentation and modeling, Acta Materialia 55, 4015 (2007).
  * Kossman and Bigerelle [2021] S. Kossman and M. Bigerelle, Pop-in identification in nanoindentation curves with deep learning algorithms, Materials 14, 7027 (2021).
  * Domínguez-Gutíerrez  _et al._ [2022] F. J. Domínguez-Gutíerrez, K. Mulewska, A. Ustrzycka, R. Alvarez-Donado, A. Kosínska, W. Huo, L. Kurpaska, I. Jozwik, S. Papanikolaou, and M. Alava, Mechanisms of strength and hardening in austenitic stainless 310s steel: Nanoindentation experiments and multiscale modeling, arXiv preprint arXiv:2205.03050 (2022).
  * Bachmann  _et al._ [2010] F. Bachmann, R. Hielscher, P. E. Jupp, W. Pantleon, H. Schaeben, and E. Wegert, Inferential statistics of electron backscatter diffraction data from within individual crystalline grains, Journal of Applied Crystallography 43, 1338 (2010).
  * Oliver and Pharr [1992] W. C. Oliver and G. M. Pharr, An improved technique for determining hardness and elastic modulus using load and displacement sensing indentation experiments, Journal of materials research 7, 1564 (1992).

## Appendix

In this appendix, we present the actual and predicted load-depth curves
associated with a subset of the indented grains within the testing sets in
Fig. A1 and training sets in Fig. A2. The first and second rows indicate
bottom $5\%$ (good predictions) and top $5\%$ (poor predictions) in mean-
squared errors.

\begin{overpic}[width=104.07117pt]{Figs/prediction0_10percent_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx0_10percent_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction1_10percent_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx1_10percent_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction2_10percent_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx2_10percent_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction3_10percent_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx3_10percent_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction0_10percent_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx0_10percent_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction1_10percent_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx1_10percent_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction2_10percent_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx2_10percent_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction3_10percent_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx3_10percent_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

Figure A1: Actual (symbols) and predicted (dashdotted curve) load-depth curves
associated with a subset of the indented grains (the insets) within the test
set. The first and second rows indicate bottom $5\%$ (good predictions) and
top $5\%$ (poor predictions) in mean-squared errors.

\begin{overpic}[width=104.07117pt]{Figs/prediction0_10percent_train_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx0_10percent_train_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction1_10percent_train_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx1_10percent_train_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction2_10percent_train_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx2_10percent_train_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction3_10percent_train_loMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx3_10percent_train_loMSE.png}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction0_10percent_train_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx0_10percent_train_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction1_10percent_train_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx1_10percent_train_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction2_10percent_train_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx2_10percent_train_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

\begin{overpic}[width=104.07117pt]{Figs/prediction3_10percent_train_hiMSE.png}
\put(14.0,50.0){\includegraphics[width=43.36464pt]{Figs/grain_indx3_10percent_train_hiMSE.png}}
\put(42.0,-6.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{0.0}{Depth(nm)}\end{turn}}}}
\put(-5.0,32.0){{{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\begin{turn}{90.0}{{Load(mN)}}\end{turn}}}}
\end{overpic}

Figure A2: Actual (symbols) and predicted (dashdotted curve) load-depth curves
associated with a subset of the indented grains (insets) within the training
sets. The first and second rows indicate bottom $5\%$ (good predictions) and
top $5\%$ (poor predictions) in mean-squared errors.