-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
514a234
commit b94dd84
Showing
1 changed file
with
319 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,319 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" | ||
"JATS-publishing1.dtd"> | ||
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.2" article-type="other"> | ||
<front> | ||
<journal-meta> | ||
<journal-id></journal-id> | ||
<journal-title-group> | ||
<journal-title>Journal of Open Source Software</journal-title> | ||
<abbrev-journal-title>JOSS</abbrev-journal-title> | ||
</journal-title-group> | ||
<issn publication-format="electronic">2475-9066</issn> | ||
<publisher> | ||
<publisher-name>Open Journals</publisher-name> | ||
</publisher> | ||
</journal-meta> | ||
<article-meta> | ||
<article-id pub-id-type="publisher-id">6912</article-id> | ||
<article-id pub-id-type="doi">10.21105/joss.06912</article-id> | ||
<title-group> | ||
<article-title>f3dasm: Framework for Data-Driven Design and Analysis of | ||
Structures and Materials</article-title> | ||
</title-group> | ||
<contrib-group> | ||
<contrib contrib-type="author"> | ||
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-3602-0452</contrib-id> | ||
<name> | ||
<surname>van der Schelling</surname> | ||
<given-names>M. P.</given-names> | ||
</name> | ||
<xref ref-type="aff" rid="aff-1"/> | ||
</contrib> | ||
<contrib contrib-type="author"> | ||
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-5956-3877</contrib-id> | ||
<name> | ||
<surname>Ferreira</surname> | ||
<given-names>B. P.</given-names> | ||
</name> | ||
<xref ref-type="aff" rid="aff-2"/> | ||
</contrib> | ||
<contrib contrib-type="author" corresp="yes"> | ||
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-6216-0355</contrib-id> | ||
<name> | ||
<surname>Bessa</surname> | ||
<given-names>M. A.</given-names> | ||
</name> | ||
<xref ref-type="aff" rid="aff-2"/> | ||
<xref ref-type="corresp" rid="cor-1"><sup>*</sup></xref> | ||
</contrib> | ||
<aff id="aff-1"> | ||
<institution-wrap> | ||
<institution>Materials Science & Engineering, Delft University of | ||
Technology, the Netherlands</institution> | ||
</institution-wrap> | ||
</aff> | ||
<aff id="aff-2"> | ||
<institution-wrap> | ||
<institution>School of Engineering, Brown University, United States of | ||
America</institution> | ||
</institution-wrap> | ||
</aff> | ||
</contrib-group> | ||
<author-notes> | ||
<corresp id="cor-1">* E-mail: <email></email></corresp> | ||
</author-notes> | ||
<pub-date date-type="pub" publication-format="electronic" iso-8601-date="2024-05-31"> | ||
<day>31</day> | ||
<month>5</month> | ||
<year>2024</year> | ||
</pub-date> | ||
<volume>9</volume> | ||
<issue>100</issue> | ||
<fpage>6912</fpage> | ||
<permissions> | ||
<copyright-statement>Authors of papers retain copyright and release the | ||
work under a Creative Commons Attribution 4.0 International License (CC | ||
BY 4.0)</copyright-statement> | ||
<copyright-year>2022</copyright-year> | ||
<copyright-holder>The article authors</copyright-holder> | ||
<license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"> | ||
<license-p>Authors of papers retain copyright and release the work under | ||
a Creative Commons Attribution 4.0 International License (CC BY | ||
4.0)</license-p> | ||
</license> | ||
</permissions> | ||
<kwd-group kwd-group-type="author"> | ||
<kwd>Python</kwd> | ||
<kwd>data-driven</kwd> | ||
<kwd>materials</kwd> | ||
<kwd>framework</kwd> | ||
<kwd>machine learning</kwd> | ||
</kwd-group> | ||
</article-meta> | ||
</front> | ||
<body> | ||
<sec id="summary"> | ||
<title>Summary</title> | ||
<p><ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm"><monospace>f3dasm</monospace></ext-link> | ||
(Framework for Data-driven Design and Analysis of Structures and | ||
Materials) is a Python project that provides a general and | ||
user-friendly data-driven framework for researchers and practitioners | ||
working on the design and analysis of materials and structures. The | ||
package aims to streamline the data-driven process and make it easier | ||
to replicate research articles in this field, as well as share new | ||
work with the community.</p> | ||
<fig> | ||
<caption><p>Logo of | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm"><monospace>f3dasm</monospace></ext-link>. | ||
<styled-content id="figU003Af3dasm_logo"></styled-content></p></caption> | ||
<graphic mimetype="image" mime-subtype="png" xlink:href="f3dasm_logo_long.png" /> | ||
</fig> | ||
</sec> | ||
<sec id="statement-of-need"> | ||
<title>Statement of need</title> | ||
<p>In the last decades, advancements in computational resources have | ||
accelerated novel inverse design approaches for structures and | ||
materials. In particular, data-driven methods leveraging machine | ||
learning techniques play a major role in shaping our design processes | ||
today.</p> | ||
<p>Constructing a large material response database poses practical | ||
challenges, such as proper data management, efficient parallel | ||
computing, and integration with third-party software. Because most | ||
applied fields remain conservative when it comes to openly sharing | ||
databases and software, a lot of research time is instead being | ||
allocated to implement common procedures that would be otherwise | ||
readily available. This lack of shared practices also leads to | ||
compatibility issues for benchmarking and replication of results by | ||
violating the FAIR principles.</p> | ||
<p>In this work we introduce an interface for researchers and | ||
practitioners working on the design and analysis of materials and | ||
structures. The package is called | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm"><monospace>f3dasm</monospace></ext-link> | ||
(Framework for Data-driven Design and Analysis of Structures and | ||
Materials). This work generalizes the original closed-source framework | ||
proposed by Bessa and co-workers | ||
(<xref alt="Bessa et al., 2017" rid="ref-Bessa2017" ref-type="bibr">Bessa | ||
et al., 2017</xref>), making it more flexible and adaptable to | ||
different applications, namely by allowing the integration of | ||
different choices of software packages needed in the different steps | ||
of the data-driven process:</p> | ||
<list list-type="bullet"> | ||
<list-item> | ||
<p><bold>design of experiments</bold>, in which input variables | ||
describing the microstructure, properties and external conditions | ||
of the system are determined and sampled;</p> | ||
</list-item> | ||
<list-item> | ||
<p><bold>data generation</bold>, typically through computational | ||
analyses, resulting in the creation of a material response | ||
database | ||
(<xref alt="Ferreira et al., 2023" rid="ref-Ferreira2023" ref-type="bibr">Ferreira | ||
et al., 2023</xref>);</p> | ||
</list-item> | ||
<list-item> | ||
<p><bold>machine learning</bold>, in which a surrogate model is | ||
trained to fit experimental findings;</p> | ||
</list-item> | ||
<list-item> | ||
<p><bold>optimization</bold>, where we try to iteratively improve | ||
the design.</p> | ||
</list-item> | ||
</list> | ||
<p><xref alt="[fig:data-driven-process]" rid="figU003Adata-driven-process">[fig:data-driven-process]</xref> | ||
provides an illustration of the stages in the data-driven process.</p> | ||
<fig> | ||
<caption><p>Illustration of the <monospace>f3dasm</monospace> | ||
data-driven process. | ||
<styled-content id="figU003Adata-driven-process"></styled-content></p></caption> | ||
<graphic mimetype="image" mime-subtype="png" xlink:href="data-driven-process.png" /> | ||
</fig> | ||
<p><ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm"><monospace>f3dasm</monospace></ext-link> | ||
is an | ||
<ext-link ext-link-type="uri" xlink:href="https://pypi.org/project/f3dasm/">open-source | ||
Python package</ext-link> compatible with Python 3.8 or later. The | ||
library includes a suite of benchmark functions, optimization | ||
algorithms, and sampling strategies to serve as default | ||
implementations. Furthermore, | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm"><monospace>f3dasm</monospace></ext-link> | ||
offers automatic data management for experiments, easy integration | ||
with high-performance computing systems, and compatibility with the | ||
hydra configuration manager. Comprehensive | ||
<ext-link ext-link-type="uri" xlink:href="https://f3dasm.readthedocs.io/en/latest/">online | ||
documentation</ext-link> is also available to assist users and | ||
developers of the framework.</p> | ||
<p>In a similar scope, it is worth mentioning the projects | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/jacksund/simmate">simmate</ext-link> | ||
(<xref alt="Sundberg et al., 2022" rid="ref-Sundberg2022" ref-type="bibr">Sundberg | ||
et al., 2022</xref>) and | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/ICAMS/strucscan">strucscan</ext-link>, | ||
as they provide tools for the management of materials science | ||
simulation and databases. However, these projects focus on the | ||
generation and retrieval of materials properties and do not include | ||
machine learning or optimization interfaces. In recent years, numerous | ||
optimization frameworks have been developed to facilitate data-driven | ||
design. | ||
<ext-link ext-link-type="uri" xlink:href="https://optuna.org/">Optuna</ext-link> | ||
is a hyperparameter optimization framework that combines a variety of | ||
optimization algorithms with dynamically constructed search space | ||
(<xref alt="Akiba et al., 2019" rid="ref-Akiba2019" ref-type="bibr">Akiba | ||
et al., 2019</xref>) and | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/esa/pagmo2">pygmo</ext-link> | ||
provides unified interfaces for parallel global optimization | ||
(<xref alt="Biscani & Izzo, 2020" rid="ref-Biscani2020" ref-type="bibr">Biscani | ||
& Izzo, 2020</xref>). Interfaces to these and many other | ||
optimization frameworks have been integrated into a separate package | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm_optimize"><monospace>f3dasm_optimize</monospace></ext-link>, | ||
and can be used in conjunction with | ||
<ext-link ext-link-type="uri" xlink:href="https://github.com/bessagroup/f3dasm"><monospace>f3dasm</monospace></ext-link>.</p> | ||
</sec> | ||
<sec id="acknowledgements"> | ||
<title>Acknowledgements</title> | ||
<p>We would express our gratitude to Jiaxiang Yi for his contributions | ||
to writing an interface with the ABAQUS simulation software and to | ||
Deepesh Toshniwal for providing valuable feedback.</p> | ||
</sec> | ||
</body> | ||
<back> | ||
<ref-list> | ||
<title></title> | ||
<ref id="ref-Bessa2017"> | ||
<element-citation publication-type="article-journal"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Bessa</surname><given-names>Miguel</given-names></name> | ||
<name><surname>Bostanabad</surname><given-names>R.</given-names></name> | ||
<name><surname>Liu</surname><given-names>Z.</given-names></name> | ||
<name><surname>Hu</surname><given-names>A.</given-names></name> | ||
<name><surname>Apley</surname><given-names>Daniel W.</given-names></name> | ||
<name><surname>Brinson</surname><given-names>C.</given-names></name> | ||
<name><surname>Chen</surname><given-names>W.</given-names></name> | ||
<name><surname>Liu</surname><given-names>Wing Kam</given-names></name> | ||
</person-group> | ||
<article-title>A framework for data-driven analysis of materials under uncertainty: Countering the curse of dimensionality</article-title> | ||
<source>Computer Methods in Applied Mechanics and Engineering</source> | ||
<year iso-8601-date="2017">2017</year> | ||
<volume>320</volume> | ||
<issue>April</issue> | ||
<pub-id pub-id-type="doi">10.1016/j.cma.2017.03.037</pub-id> | ||
<fpage>633</fpage> | ||
<lpage>667</lpage> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-Sundberg2022"> | ||
<element-citation publication-type="article-journal"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Sundberg</surname><given-names>Jack D.</given-names></name> | ||
<name><surname>Benjamin</surname><given-names>Siona S.</given-names></name> | ||
<name><surname>McRae</surname><given-names>Lauren M.</given-names></name> | ||
<name><surname>Warren</surname><given-names>Scott C.</given-names></name> | ||
</person-group> | ||
<article-title>Simmate: A framework for materials science</article-title> | ||
<source>Journal of Open Source Software</source> | ||
<publisher-name>The Open Journal</publisher-name> | ||
<year iso-8601-date="2022">2022</year> | ||
<volume>7</volume> | ||
<issue>75</issue> | ||
<uri>https://doi.org/10.21105/joss.04364</uri> | ||
<pub-id pub-id-type="doi">10.21105/joss.04364</pub-id> | ||
<fpage>4364</fpage> | ||
<lpage></lpage> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-Biscani2020"> | ||
<element-citation publication-type="article-journal"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Biscani</surname><given-names>Francesco</given-names></name> | ||
<name><surname>Izzo</surname><given-names>Dario</given-names></name> | ||
</person-group> | ||
<article-title>A parallel global multiobjective framework for optimization: pagmo</article-title> | ||
<source>Journal of Open Source Software</source> | ||
<publisher-name>The Open Journal</publisher-name> | ||
<year iso-8601-date="2020">2020</year> | ||
<volume>5</volume> | ||
<issue>53</issue> | ||
<uri>https://doi.org/10.21105/joss.02338</uri> | ||
<pub-id pub-id-type="doi">10.21105/joss.02338</pub-id> | ||
<fpage>2338</fpage> | ||
<lpage></lpage> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-Akiba2019"> | ||
<element-citation publication-type="paper-conference"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Akiba</surname><given-names>Takuya</given-names></name> | ||
<name><surname>Sano</surname><given-names>Shotaro</given-names></name> | ||
<name><surname>Yanase</surname><given-names>Toshihiko</given-names></name> | ||
<name><surname>Ohta</surname><given-names>Takeru</given-names></name> | ||
<name><surname>Koyama</surname><given-names>Masanori</given-names></name> | ||
</person-group> | ||
<article-title>Optuna: A next-generation hyperparameter optimization framework</article-title> | ||
<source>Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining</source> | ||
<year iso-8601-date="2019">2019</year> | ||
<uri>https://doi.org/10.1145/3292500.3330701</uri> | ||
<pub-id pub-id-type="doi">10.1145/3292500.3330701</pub-id> | ||
<fpage>2623</fpage> | ||
<lpage>2631</lpage> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-Ferreira2023"> | ||
<element-citation publication-type="article-journal"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Ferreira</surname><given-names>Bernardo P.</given-names></name> | ||
<name><surname>Pires</surname><given-names>F. M. Andrade</given-names></name> | ||
<name><surname>Bessa</surname><given-names>Miguel A.</given-names></name> | ||
</person-group> | ||
<article-title>CRATE: A python package to perform fast material simulations</article-title> | ||
<source>Journal of Open Source Software</source> | ||
<publisher-name>The Open Journal</publisher-name> | ||
<year iso-8601-date="2023">2023</year> | ||
<volume>8</volume> | ||
<issue>87</issue> | ||
<uri>https://doi.org/10.21105/joss.05594</uri> | ||
<pub-id pub-id-type="doi">10.21105/joss.05594</pub-id> | ||
<fpage>5594</fpage> | ||
<lpage></lpage> | ||
</element-citation> | ||
</ref> | ||
</ref-list> | ||
</back> | ||
</article> |