<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>DEVELOPMENT OF A TOOL FOR INTERACTIVE DETAILING OF AREAS OF OBJECTS FOR THE STRENGTH MODELLING SYSTEM</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>E. Budlov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>O. Iakushkin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>O. Sedova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Gogotov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Egor Budlov</institution>
          ,
          <addr-line>Oleg Iakushkin, Olga Sedova, Alexander Gogotov</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Saint Petersburg State University</institution>
          ,
          <addr-line>7-9 Universitetskaya emb., Saint Petersburg, 199034</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>5</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>The development of technological progress makes increased demands on the strength properties of structural elements of buildings and structures, machines and mechanisms, and a decrease in their material consumption. This leads to the need for effective use of existing and creation of new methods of solid mechanics and the training of new highly qualified specialists. Additionally, having control over the objects` sizes will allow potential users (designers, engineers etc.) to consider the desired properties in the optimization problem. Otherwise, it would be both quite difficult and inefficient to utilize. This article describes a system for CAD modelling. Its implementation is based on open-source software, such as Python programming language, Jupyterlab and FEniCS library. The system also supports topological optimization and allows its user to integrate the desired numerical methods, which is currently not supported in the existing solutions. The execution time of solving the example problem was measured and presented together with the result. Special attention was paid to the comparison of the described solution with the currently existing ones.</p>
      </abstract>
      <kwd-group>
        <kwd>CAD</kwd>
        <kwd>FEM</kwd>
        <kwd>Jupyterlab</kwd>
        <kwd>Modelling</kwd>
        <kwd>Cloud computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>One of the most important tasks in the field of deformable body mechanics is the
representation of an existing CAD model in the form of a finite element mesh. Such a transformation
will allow for the final calculations and optimization of the mathematical parameters of the object. Our
work aims to find the optimal way to solve the following (and other related) problems:



</p>
      <p>Preservation of all geometric features of a complex object in its model.</p>
      <p>Ability to make changes of any scale to every part of the model.</p>
      <p>Support for complex operations with the object: local rescaling of big and small details,
optimization of parameters.</p>
      <p>Elimination of loss of information about the properties of objects.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related work</title>
      <p>
        Although various popular solutions already exist, both open-source (Freecad, Salome) and
commercial (Comsol, Ansys [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]), they nevertheless have their drawbacks.
      </p>
      <p>In particular, to make the user experience as easy as possible, integration with an intuitive
visual interface is required. This approach will provide interactivity, as well as the speed of interaction
and execution of operations. Its implementation will increase the speed and productivity of work, as
well as reduce the requirements for the necessary user skills.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Problem definition</title>
      <p>Various existing methods of numerical modelling are based on testing the technology's
operability on separate boundary value problems and do not allow the transition from the description
of the algorithm to its immediate application by end-users. Our goal is to create an environment
suitable for easily integrating custom calculation methods into the underlying system we have
implemented. At the same time, an important task is to support local scaling.</p>
    </sec>
    <sec id="sec-4">
      <title>4. System description</title>
      <p>
        We believe that the most optimal solution for the described problems is an implementation in
the form of a computer-aided design system that will support the modelling and processing of objects.
To improve efficiency, the web service format was chosen [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. At this stage, the following
prototype system is being developed in Python:




      </p>
      <p>The main functionality of numerical calculations was performed using the FEniCS and
TopOpt modules;
To implement the automated design of 3D models, tools of the PythonOCC, VTKjs libraries
were used;
The Jupyter framework, as well as the GMSH and VTK utilities, were chosen as the basis for
the interface visualization;
Containerization is done using Docker functionality.</p>
      <sec id="sec-4-1">
        <title>4.1 FEniCS</title>
        <p>FEniCS is a popular open-source computing platform for solving partial differential equations
(PDEs). FEniCS enables users to quickly translate scientific models into efficient finite element code.
With the high-level Python and C++ interfaces, it is easy to get started, but it also offers powerful
capabilities for more experienced programmers. Each component of the FEniCS platform has been
fundamentally designed for parallel processing, and it can run on a multitude of platforms ranging
from laptops to high-performance clusters.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2 TopOpt</title>
      </sec>
      <sec id="sec-4-3">
        <title>4.3 JupyterLab</title>
        <p>TopOpt is a fully parallel framework for conducting very large scale topology optimization on
structured grids. It solves the compliance minimization problem subject to volume and maximum size
restrictions. The problem is formulated using the robust design approach based on eroded,
intermediate and dilated designs. A quarter of the 3D MBB beam is modelled and the density filter
weights are adjusted to simulate an extension of the design domain.</p>
        <p>JupyterLab is an interactive development environment for working with notebooks, code and
data. Most importantly, JupyterLab has full support for Jupyter notebooks. Additionally, JupyterLab
enables you to use text editors, terminals, data file viewers, and other custom components side by side
with notebooks in a tabbed work area. It is easy to deploy, fast, interactive and highly customizable –
so this framework was chosen as the interface of the system [fig. 1].</p>
        <p>More efficient usage of the system and resources, easy scaling, stability and cross-platform are
ensured via Docker.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Calculations</title>
      <sec id="sec-5-1">
        <title>5.1 The example problem</title>
        <p>As an example, let us consider an area of a 3-D cube held at 4 corners on one face of the cube.
A pressure load is applied to the outer face of the center piece on the opposite side. A .vtu file is saved
for the result of each iteration of the algorithm. The result of the last iteration is the proposed solution
by the algorithm [fig. 2].</p>
        <p>Another possible application – FEM modelling and optimization. The general procedure is as
follows:




</p>
        <p>Mesh definition via parameters;
FEM and modelling analysis with FEniCS;
Topological optimization using TopOpt;
FEM analysis of the result;
Comparison with the original;</p>
      </sec>
      <sec id="sec-5-2">
        <title>5.2 The execution time</title>
        <p>The console displays information about the execution of the algorithm, indicating the number
of the corresponding iteration. The result is an optimally rigid design to solve problems of minimum
compliance (maximum stiffness), optimal distribution of two materials for thermal conductivity
problems, and optimal distribution of material for efficient mobility.</p>
        <p>Parallel computing is of utmost importance when we are talking about modelling and
optimization. The calculations were performed on a virtual machine with six physical cores [fig. 3].
Because topological optimization is a relatively complex operation, even when using MPI
technologies, it still takes a significant amount of time.</p>
        <p>250
200
150
n
im 100
,
t
50
0
6x Intel(R) Core(TM) i7-8750H
1
2</p>
        <p>4</p>
        <p>MPI np</p>
      </sec>
      <sec id="sec-5-3">
        <title>5.3 The differences from the existing solutions</title>
        <p>Although some open-source projects can sometimes offer quite decent performance, they
usually have very limited scope and lack an intuitive interface. Commercial solutions are expensive,
complex and hardly customizable. In described solution, we try to solve most of these problems
through integrating modern open-source solutions into a unified system that will support
customization, be scalable and intuitive [fig. 4].</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>The proposed solution made it possible to introduce a step for interactive adjustment of the
local mesh resolution between the step of modelling the object and its division into finite elements.
This gives us many opportunities to fine-tune the characteristics of the processed object. The system
also supports the topological optimization of the object. At the same time, the implementation of tools
for managing the local mesh resolution will allow users to integrate their modern numerical methods,
such as XFEM and GFEM, the use of which is not available in existing modelling packages. In future,
we plan to work on the integration of more functional libraries and further interface improvement.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Iakushkin</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sedova</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grishkin</surname>
            <given-names>V</given-names>
          </string-name>
          .
          <article-title>Jupyter extension for creating CAD designs and their subsequent analysis by the finite element method /</article-title>
          / CEUR Workshop Proceedings, vol
          <volume>1787</volume>
          . RWTH Aahen University,
          <year>2016</year>
          . P.
          <volume>530</volume>
          -
          <fpage>534</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Iakushkin</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sedova</surname>
            <given-names>O. Creating</given-names>
          </string-name>
          <article-title>CAD designs and performing their subsequent analysis using open source solutions</article-title>
          in Python // AIP Conference Proceedings, vol
          <year>1922</year>
          .
          <year>2018</year>
          . P.
          <volume>140011</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Iakushkin</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kondratiuk</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eremin</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sedova</surname>
            <given-names>O</given-names>
          </string-name>
          .
          <article-title>Development of a Containerized System to Build Geometric Models and Perform Their Strength Analysis /</article-title>
          / ICAIT'2018
          <source>: Proceedings of the 3rd International Conference on Applications in Information Technology</source>
          .
          <year>2018</year>
          . P.
          <volume>146</volume>
          -
          <fpage>149</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Sedova</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iakushkin</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kondratiuk</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Creating</surname>
          </string-name>
          <article-title>a tool for stress computation with respect to surface defects /</article-title>
          / CEUR Workshop Proceedings, vol
          <volume>2507</volume>
          . RWTH Aahen University,
          <year>2019</year>
          . P.
          <volume>371</volume>
          -
          <fpage>375</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>