Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize a bit the structure of the wall files #935

Merged
merged 53 commits into from
Aug 22, 2023
Merged
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
904e277
Split the previous PR in 2 and keep the pseudo-refactor here
tulioricci Jul 17, 2023
155f768
Put mask_from_elements in simutil
tulioricci Jul 17, 2023
7b35aa4
Get the rest of the copy-and-paste in simutil
tulioricci Jul 17, 2023
7c1f834
Fix typo
tulioricci Jul 18, 2023
2046995
Use zeros_like
tulioricci Jul 18, 2023
24983ef
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Jul 18, 2023
0a182be
flake8
tulioricci Jul 19, 2023
fee6169
More changes everywhere
tulioricci Jul 19, 2023
c598d78
Fix the AW example
tulioricci Jul 19, 2023
24b361f
Change timestep in AW example
tulioricci Jul 19, 2023
36bd8d6
Start splitting wall_model from gas_mode;
tulioricci Jul 21, 2023
463f875
docs
tulioricci Jul 21, 2023
16a6f3e
cosmetics in AW example
tulioricci Jul 21, 2023
639a38e
Include wv; extra changes to gas_model and wall_model
tulioricci Jul 21, 2023
9af4794
flake8; pydocstyle; docs
tulioricci Jul 21, 2023
cfed1f8
Fix wrong conditional
tulioricci Jul 22, 2023
49c5e17
Add new transport class for porous flow
tulioricci Jul 22, 2023
9781598
mypy
tulioricci Jul 22, 2023
a39e413
Fix SolidWallInitializer
tulioricci Jul 22, 2023
9c3110b
Improve docs
tulioricci Jul 23, 2023
d5cf096
Improve again the docs
tulioricci Jul 23, 2023
d5a62f3
Do NOT change thermally_coupled.rst
tulioricci Jul 23, 2023
10f30b2
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Jul 24, 2023
a398d9e
Fix transport doc
tulioricci Jul 24, 2023
2fdc22d
Improve docs
tulioricci Jul 24, 2023
01c205a
Finish docs (?) and include function for user-prescribed materials
tulioricci Jul 25, 2023
3c952b0
pydocstyle
tulioricci Jul 25, 2023
98cb6d6
Add istep for restart example
tulioricci Jul 25, 2023
57b7735
Rename the user-defined material and fix the decomposition progress func
tulioricci Jul 27, 2023
ed98da2
flake8
tulioricci Jul 27, 2023
121f6fb
Add blank line to AW example
tulioricci Jul 27, 2023
2a81ce7
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Aug 1, 2023
cfb3daf
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Aug 16, 2023
f57bde4
Matts review
tulioricci Aug 17, 2023
9335933
Use 'and' instead of 'or'
tulioricci Aug 17, 2023
803aadb
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Aug 17, 2023
ed9b7dc
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Aug 18, 2023
7439296
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Aug 18, 2023
671850b
Matts review
tulioricci Aug 18, 2023
0919ff3
Check mypy and circular import
tulioricci Aug 18, 2023
a7934bb
flake8, mypy, pylint etc etc
tulioricci Aug 18, 2023
8c9f9b3
Ignore mypy error
tulioricci Aug 19, 2023
166c261
Cosmetic changes
tulioricci Aug 20, 2023
31c433c
Rename wall_model to wall_eos for consistency with gas nomenclature
tulioricci Aug 20, 2023
18b9daf
Remove conflict thing
tulioricci Aug 20, 2023
9052f63
Fix AW example
tulioricci Aug 20, 2023
4a74d2f
Add mypy stuff to eos
tulioricci Aug 21, 2023
b06eb90
Fix missing 'gas_model.wall_model' left
tulioricci Aug 21, 2023
5538973
Merge branch 'main' into tulio/reorganize_phenolics
tulioricci Aug 21, 2023
ce8d26e
Fix porous wall initializer
tulioricci Aug 21, 2023
071e652
Ignore change to transport
tulioricci Aug 21, 2023
60e6864
Matts review
tulioricci Aug 21, 2023
378c622
mypy
tulioricci Aug 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ Table of Contents
.. toctree::
:numbered:

fluid
mathematical/mathematical
discretization
wall_model
operators/operators
support/support
development/development
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,8 @@
Wall Degradation Modeling
=========================

Conserved Quantities
^^^^^^^^^^^^^^^^^^^^
.. autoclass:: mirgecom.wall_model.PorousFlowDependentVars

Equations of State
^^^^^^^^^^^^^^^^^^
.. autoclass:: mirgecom.wall_model.WallEOS
.. autoclass:: mirgecom.wall_model.WallDependentVars

Model-specific properties
^^^^^^^^^^^^^^^^^^^^^^^^^
The properties of the materials are defined in specific files. These files
are required by :class:`~mirgecom.wall_model.WallEOS`.

Carbon fiber
------------
.. automodule:: mirgecom.materials.carbon_fiber

TACOT
-----
.. automodule:: mirgecom.materials.tacot
Wall Degradation
================

Carbon Fiber Oxidation
^^^^^^^^^^^^^^^^^^^^^^
----------------------

This section covers the response of carbon fiber when exposed to oxygen.
The carbon fibers are characterized as a highly porous material,
Expand All @@ -35,7 +13,7 @@ Carbon Fiber Oxidation

The temporal evolution of mass density is solved in
order to predict the material degradation. As the
:class:`~mirgecom.materials.carbon_fiber.Oxidation` progresses,
:attr:`~mirgecom.materials.carbon_fiber.Oxidation` progresses,
majosm marked this conversation as resolved.
Show resolved Hide resolved
the temporal evolution of the fibers mass is given by

.. math ::
Expand Down Expand Up @@ -77,36 +55,35 @@ Carbon Fiber Oxidation

From the conserved variables, it is possible to compute the oxidation
progress, denoted by
:attr:`~mirgecom.wall_model.WallDependentVars.tau`.
:attr:`~mirgecom.wall_model.PorousWallVars.tau`.
As a consequence, the instantaneous material properties will change due to
the mass loss.

The
:attr:`~mirgecom.eos.GasDependentVars.temperature`
is evaluated using Newton iteration based on both
:attr:`~mirgecom.eos.PyrometheusMixture.get_internal_energy` and
:attr:`~mirgecom.wall_model.WallEOS.enthalpy`,
:attr:`~mirgecom.wall_model.PorousWallEOS.enthalpy`,
as well as their respective derivatives, namely
:attr:`~mirgecom.eos.PyrometheusMixture.heat_capacity_cv` and
:attr:`~mirgecom.wall_model.WallEOS.heat_capacity`.
:attr:`~mirgecom.wall_model.PorousWallEOS.heat_capacity`.
Note that :mod:`pyrometheus` is used to handle the species properties.

Composite Materials
^^^^^^^^^^^^^^^^^^^
-------------------

This section covers the response of composite materials made of phenolic
resin and carbon fibers.
The carbon fibers are characterized as a highly porous material,
with void fraction $\approx 90\%$. Phenolic resins are added to rigidize
the fibers by permeating the material and filling partially the gaps between
fibers. As the material is heated up by the flow, the resin pyrolysis, i.e.,
it degrades and produces gaseous species.
Phenolic resins are added to rigidize the fibers by permeating the
material and filling partially the gaps between fibers, reducing the porousity
to $\approx 80\%$. As the material is heated up by the flow, the resin
pyrolyses, i.e., it degrades and produces gaseous species.

The temporal evolution of wall density is solved in
order to predict the material degradation. As the
The temporal evolution of wall density is solved in order to predict the
material degradation. As the
:class:`~mirgecom.materials.tacot.Pyrolysis` progresses, the mass of each
$i$ constituents of the resin, denoted by
:attr:`~mirgecom.wall_model.PorousFlowDependentVars.material_densities`,
:attr:`~mirgecom.wall_model.PorousWallVars.material_densities`,
is calculated as

.. math ::
Expand Down Expand Up @@ -156,40 +133,27 @@ Composite Materials

From the conserved variables, it is possible to compute the decomposition
status, denoted by
:attr:`~mirgecom.wall_model.WallDependentVars.tau`.
:attr:`~mirgecom.wall_model.PorousWallVars.tau`.
This yields the proportion of virgin (unpyrolyzed material) to char (fully
pyrolyzed) and, consequently, the different thermophysicochemical
properties of the solid phase. Thus, the instantaneous material properties
depend on the current state of the material, as well as the
:attr:`~mirgecom.eos.GasDependentVars.temperature`.
It is evaluated using Newton iteration based on both
:attr:`~mirgecom.materials.tacot.GasProperties.enthalpy` (tabulated
data) or
:attr:`~mirgecom.eos.PyrometheusMixture.get_internal_energy` (Pyrometheus)
and
:attr:`~mirgecom.wall_model.WallEOS.enthalpy`,
as well as their respective derivatives, namely
:attr:`~mirgecom.materials.tacot.GasProperties.heat_capacity` and
:attr:`~mirgecom.wall_model.WallEOS.heat_capacity`.
It is evaluated using Newton iteration based on
:attr:`~mirgecom.eos.PyrometheusMixture.get_internal_energy` and
:attr:`~mirgecom.wall_model.PorousWallEOS.enthalpy`,
as well as their respective derivatives
:attr:`~mirgecom.eos.PyrometheusMixture.heat_capacity_cv` and
:attr:`~mirgecom.wall_model.PorousWallEOS.heat_capacity`.

In *MIRGE-Com*, the solid properties are obtained by fitting polynomials
to tabulated data for easy evaluation of the properties based on the
temperature. The complete list of properties can be find, for instance, in
:mod:`~mirgecom.materials.tacot`.
Different materials can be incorporated as separated files.

The
:class:`~mirgecom.materials.tacot.GasProperties` are obtained based on
tabulated data, assuming chemical equilibrium, and evaluated with splines
for interpolation of the entries. However, the data is currently obtained
by PICA.

.. important ::

The current implementation follows the description of [Lachaud_2014]_
for type 2 code. Additional details, extensive formulation and references
are provided in https://github.com/illinois-ceesd/phenolics-notes

Helper Functions
----------------
.. autofunction:: mirgecom.multiphysics.phenolics.initializer
5 changes: 2 additions & 3 deletions doc/fluid.rst → doc/mathematical/fluid.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
================================
Mathematical Model of Fluid Flow
================================
Fluid Flow
==========

.. raw:: latex

Expand Down
8 changes: 8 additions & 0 deletions doc/mathematical/mathematical.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
==================
Mathematical Model
==================

.. toctree::

fluid
composite_material
1 change: 0 additions & 1 deletion doc/operators/operators.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,3 @@ Operators
artificial_viscosity
gas-dynamics
thermally_coupled
composite_materials
23 changes: 23 additions & 0 deletions doc/wall_model.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Wall Model
==========

.. automodule:: mirgecom.wall_model

Material specification
^^^^^^^^^^^^^^^^^^^^^^

Carbon fiber
""""""""""""
.. automodule:: mirgecom.materials.carbon_fiber

TACOT
"""""
.. automodule:: mirgecom.materials.tacot

User-defined material
"""""""""""""""""""""
.. automodule:: mirgecom.materials.prescribed_porous_material

Helper Functions
^^^^^^^^^^^^^^^^
.. automodule:: mirgecom.materials.initializer
Loading