Skip to content

Commit

Permalink
Deploying to gh-pages-v2 from @ 46d2410 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
blaisb committed Nov 22, 2024
1 parent 955d8b3 commit 62b95b5
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 58 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This is an example of how to post-process results obtained in the `Small scale r

.. warning::

Details about installing the module or using it without installing it are available on this `documentation <../../../tools/postprocessing/postprocessing.py>`_.
Details about installing the module or using it without installing it are available on `here <../../../tools/postprocessing/postprocessing.py>`_.


----------------------------------
Expand Down Expand Up @@ -51,7 +51,7 @@ The DEM files used in this example are obtained following the `Small scale rotat
Python Code
---------------

Please, read this `documentation <../../../tools/postprocessing/postprocessing.py>`_ before jumping to the following steps.
Please, read this `documentation <../../../tools/postprocessing/postprocessing_pyvista>`_ before jumping to the following steps.

Constructing the Object
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,24 @@ Parameter File
Mesh
~~~~~

In this example, we choose a ``cylinder`` grid type to create a cylinder. Grid arguments are the radius of the cylinder (0.056 m) and half-length (0.051 m), respectively. The grid is refined 3 times using the ``set initial refinement`` parameters. The ``expand particle-wall contact search`` is used in concave geometries to enable extended particle-wall contact search with boundary faces of neighbor cells for particles located in each boundary cell (for more details see `Rotating Drum example <../rotating-drum/rotating-drum.html>`_).
In this example, we choose a ``cylinder`` grid type to create a cylinder. Grid arguments are the radius of the cylinder (0.056 m) and half-length (0.051 m), respectively. The grid is refined 3 times using the ``set initial refinement`` parameters. The ``expand particle-wall contact search`` is used in concave geometries to enable extended particle-wall contact search with boundary faces of neighbor cells for particles located in each boundary cell (for more details see `Rotating Drum example <../rotating-drum/rotating-drum.html>`_). The mesh subsection is the same for both parameter files.


.. code-block:: text
subsection mesh
set type = dealii
set grid type = cylinder
set grid arguments = 0.056:0.051
set initial refinement = 3
set type = dealii
set grid type = cylinder
set grid arguments = 0.056:0.051
set initial refinement = 3
set expand particle-wall contact search = true
end
Packing information
~~~~~~~~~~~~~~~~~~~~

An insertion box is defined inside the cylindrical domain, inserting 8000 particles every 0.5 seconds while the cylinder is at rest. It is important to note the size of the insertion box to make sure it is completely inside our geometry. Otherwise, particles will be lost during the insertion stage.
An insertion box is defined inside the cylindrical domain, inserting 8000 particles every 0.5 seconds while the cylinder is at rest. It is important to note the size of the insertion box to make sure it is completely inside our geometry to prevent particles loss during the insertion stage. This section is in the ``packing-rotating-drum.prm`` file.

.. code-block:: text
Expand All @@ -68,12 +70,12 @@ An insertion box is defined inside the cylindrical domain, inserting 8000 partic
set insertion prn seed = 19
end
Restart files are written once the packing ends. The restart files are used to start the DEM simulation with the imposed rotating boundary condition.
Restart files are written once the packing ends. Using these restart files we can run the rotating drum simulation the end of the packing simulation.

Lagrangian Physical Properties
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The particles are mono-dispersed with a radius of 0.0015 m and a density of 2500 kg/m3, respectively. All other particles' physical parameters are taken arbitrary and should be changed based on the physical properties and the experimental values.
The particles are mono-dispersed with a radius of 0.0015 m and a density of 2500 kg/m\ :sup:`3`. All other particles' physical parameters are taken arbitrary and should be changed based on the physical properties and the experimental values. Both parameters files have the same physical properties.

.. code-block:: text
Expand All @@ -95,23 +97,23 @@ The particles are mono-dispersed with a radius of 0.0015 m and a density of 2500
set young modulus wall = 100000000
set poisson ratio wall = 0.24
set restitution coefficient wall = 0.85
set friction coefficient wall = 0.35
set friction coefficient wall = 0.3
set rolling friction wall = 0.1
end
Model Parameters
~~~~~~~~~~~~~~~~~

In this example, we use the ``dynamic`` load balancing method. This method checks frequently if load balancing should be applied based on a user inputted frequency. Load balancing is dynamically applied if a certain condition is applied. More details regarding load balancing are explained in the `Rotating Drum example <../rotating-drum/rotating-drum.html>`_.
In this example, we use the ``dynamic`` load balancing method. This method checks frequently if load balancing should be applied based on a user inputted frequency. Load balancing is dynamically applied if a certain condition is applied. More details regarding load balancing are explained in the `Rotating Drum example <../rotating-drum/rotating-drum.html>`_. This section is in the ``small-rotating-drum-dem.prm`` file.

.. code-block:: text
subsection model parameters
subsection contact detection
set contact detection method = dynamic
set dynamic contact search size coefficient = 0.8
set neighborhood threshold = 1.3
set dynamic contact search size coefficient = 0.9
set neighborhood threshold = 1.2
end
subsection load balancing
set load balance method = dynamic
Expand All @@ -127,7 +129,7 @@ In this example, we use the ``dynamic`` load balancing method. This method check
DEM Boundary Conditions
~~~~~~~~~~~~~~~~~~~~~~~

The rotation of the cylinder is applied using a rotational boundary condition with a value of 1 rad/s over the x axis. Based on `deal.II boundary colouring <https://www.dealii.org/current/doxygen/deal.II/namespaceGridGenerator.html>`_, the hull of the cylinder (rotating drum) has an id = 0.
The rotation of the cylinder is applied using a rotational boundary condition with a value of 1 rad/s over the x axis. Based on `deal.II boundary colouring <https://www.dealii.org/current/doxygen/deal.II/namespaceGridGenerator.html>`_, the hull of the cylinder (rotating drum) has an id = 0. This section is in the ``small-rotating-drum-dem.prm`` file.

.. code-block:: text
Expand All @@ -145,28 +147,31 @@ The rotation of the cylinder is applied using a rotational boundary condition wi
Simulation Control
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The packing ``lethe-particles`` simulation was run for 2 seconds in real time.
The packing ``lethe-particles`` simulation was run for 2 seconds in real time. This section is in the ``packing-rotating-drum.prm`` file.

.. code-block:: text
subsection simulation control
set time step = 5e-6
set time end = 2
set log frequency = 2000
set output frequency = 2000
set output path = ./output_dem/
set time step = 5e-6
set time end = 2
set log frequency = 2000
set output frequency = 2000
set output path = ./output_dem/
set output boundaries = true
end
The actual rotation of the drum is 3 seconds in real time. We set the time equal to 5 seconds as the simulation is restarted after the packing ``lethe-particles`` simulation.
The actual rotation of the drum is 3 seconds in real time. We set the time equal to 5 seconds as the simulation is restarted after the packing ``lethe-particles`` simulation. This section is in the ``small-rotating-drum-dem.prm`` file.


.. code-block:: text
subsection simulation control
set time step = 5e-6
set time end = 5
set log frequency = 2000
set output frequency = 2000
set output path = ./output_dem/
set time step = 5e-6
set time end = 5
set log frequency = 2000
set output frequency = 2000
set output path = ./output_dem/
set output boundaries = true
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ In this subsection, contact detection, force models, time integration, load bala
subsection load balancing
# Choices are none|once|frequent|dynamic|dynamic_with_sparse_contacts
set load balance method = none
set particle weight = 10000 # Every method, except none
set particle weight = 2000 # Every method, except none
set step = 100000 # if method = once
set frequency = 100000 # if method = frequent
set dynamic check frequency = 10000 # if method = dynamic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ <h1>Small Scale Rotating Drum Postprocessing<a class="headerlink" href="#small-s
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Details about installing the module or using it without installing it are available on this <a class="reference external" href="../../../tools/postprocessing/postprocessing.py">documentation</a>.</p>
<p>Details about installing the module or using it without installing it are available on <a class="reference external" href="../../../tools/postprocessing/postprocessing.py">here</a>.</p>
</div>
<section id="features">
<h2>Features<a class="headerlink" href="#features" title="Link to this heading">#</a></h2>
Expand Down Expand Up @@ -471,7 +471,7 @@ <h2>Description of the Case<a class="headerlink" href="#description-of-the-case"
</section>
<section id="python-code">
<h2>Python Code<a class="headerlink" href="#python-code" title="Link to this heading">#</a></h2>
<p>Please, read this <a class="reference external" href="../../../tools/postprocessing/postprocessing.py">documentation</a> before jumping to the following steps.</p>
<p>Please, read this <a class="reference external" href="../../../tools/postprocessing/postprocessing_pyvista">documentation</a> before jumping to the following steps.</p>
<section id="constructing-the-object">
<h3>Constructing the Object<a class="headerlink" href="#constructing-the-object" title="Link to this heading">#</a></h3>
<p>The first step is to create an object to receive the data. In the present case, the object is called <code class="docutils literal notranslate"><span class="pre">particles</span></code>.</p>
Expand Down
Loading

0 comments on commit 62b95b5

Please sign in to comment.