3. Wall Model

mirgecom.wall_model handles solid walls and fluid-wall models.

3.1. Solid materials

3.1.1. Impermeable-wall variables

class mirgecom.wall_model.SolidWallConservedVars(mass, energy)[source]

Wall conserved variables for heat conduction only material.

Parameters:
class mirgecom.wall_model.SolidWallDependentVars(thermal_conductivity, temperature)[source]

Wall dependent variables for heat conduction only materials.

Parameters:
class mirgecom.wall_model.SolidWallState(cv, dv)[source]

Wall state for heat conduction only materials.

Parameters:

3.1.2. Impermeable material properties

The material properties are defined exclusively at the driver. The user must provide density, enthalpy, heat capacity and thermal conductivity of all constituents and their spatial distribution using mask_from_elements.

3.1.3. Impermeable wall model

class mirgecom.wall_model.SolidWallModel(density_func, enthalpy_func, heat_capacity_func, thermal_conductivity_func)[source]

Model for calculating wall quantities for heat conduction only materials.

Since different materials can be coupled together in the same domain governed by diffusion equation, this wall model works as a wrapper of driver-defined functions that prescribe the actual properties and their spatial distribution.

density()[source]

Return the wall density for all components.

Return type:

DOFArray

heat_capacity(temperature=None)[source]

Return the wall heat_capacity for all components.

Parameters:

temperature (DOFArray)

Return type:

DOFArray

enthalpy(temperature)[source]

Return the wall enthalpy for all components.

Parameters:

temperature (DOFArray)

Return type:

DOFArray

thermal_diffusivity(mass, temperature, thermal_conductivity=None)[source]

Return the wall thermal diffusivity for all components.

Parameters:
Return type:

DOFArray

thermal_conductivity(temperature)[source]

Return the wall thermal conductivity for all components.

Parameters:

temperature (DOFArray)

Return type:

DOFArray

get_temperature(wv, tseed=None, niter=3)[source]

Evaluate the temperature based on the energy.

Parameters:
Return type:

DOFArray

dependent_vars(wv, tseed=None, niter=3)[source]

Return solid wall dependent variables.

Parameters:
Return type:

SolidWallDependentVars

3.2. Porous materials

3.2.1. Porous-wall variables

class mirgecom.wall_model.PorousWallVars(material_densities, tau, void_fraction, emissivity, permeability, tortuosity, density)[source]

Variables for the porous material.

It combines conserved variables, such as material_densities, with those that depend on the current status of the wall, which is uniquely defined based on the material densities.

Parameters:
material_densities
tau
void_fraction
emissivity
permeability
tortuosity
density

3.2.2. Porous Media Transport

class mirgecom.wall_model.PorousWallTransport(base_transport)[source]

Transport model for porous media flow.

Takes any transport model and modifies it to consider the interaction with the porous materials.

Parameters:

base_transport (TransportModel)

__init__(base_transport)[source]

Initialize transport model.

Parameters:

base_transport (TransportModel)

bulk_viscosity(cv, dv, wv, eos)[source]

Get the bulk viscosity for the gas, \(\mu_{B}\).

Parameters:
Return type:

DOFArray

viscosity(cv, dv, wv, eos)[source]

Viscosity of the gas through the porous wall.

Parameters:
Return type:

DOFArray

volume_viscosity(cv, dv, wv, eos)[source]

Get the 2nd viscosity coefficent, \(\lambda\).

Parameters:
Return type:

DOFArray

thermal_conductivity(cv, dv, wv, eos, wall_eos)[source]

Return the effective thermal conductivity of the gas+solid.

It is a function of temperature and degradation progress. As the fibers are oxidized, they reduce their cross area and, consequently, their ability to conduct heat.

It is evaluated using a mass-weighted average given by

\[\frac{\rho_s \kappa_s + \rho_g \kappa_g}{\rho_s + \rho_g}\]
Parameters:
Return type:

DOFArray

species_diffusivity(cv, dv, wv, eos)[source]

Mass diffusivity of gaseous species through the porous wall.

Parameters:
Return type:

DOFArray

3.2.3. Porous material properties

The properties of the materials are defined in specific files and used by PorousWallEOS.

class mirgecom.wall_model.PorousWallEOS[source]

Abstract interface for porous media domains.

The properties are material-dependent and specified in individual files that inherit this class.

abstract void_fraction(tau)[source]

Void fraction \(\epsilon\) filled by gas around the solid.

Parameters:

tau (DOFArray)

Return type:

DOFArray

abstract enthalpy(temperature, tau)[source]

Evaluate the enthalpy \(h_s\) of the solid.

Parameters:
Return type:

DOFArray

abstract heat_capacity(temperature, tau)[source]

Evaluate the heat capacity \(C_{p_s}\) of the solid.

Parameters:
Return type:

DOFArray

abstract thermal_conductivity(temperature, tau)[source]

Evaluate the thermal conductivity \(\kappa\) of the solid.

Parameters:
Return type:

DOFArray

abstract volume_fraction(tau)[source]

Fraction \(\phi\) occupied by the solid.

Parameters:

tau (DOFArray)

Return type:

DOFArray

abstract permeability(tau)[source]

Permeability \(K\) of the porous material.

Parameters:

tau (DOFArray)

Return type:

DOFArray

abstract emissivity(temperature=None, tau=None)[source]

Emissivity for energy radiation.

Return type:

DOFArray

abstract tortuosity(tau)[source]

Tortuosity of the porous material.

Parameters:

tau (DOFArray)

Return type:

DOFArray

abstract decomposition_progress(mass)[source]

Evaluate the progress ratio \(\tau\) of the phenolics decomposition.

Parameters:

mass (DOFArray)

Return type:

DOFArray

3.2.4. Porous Media Model

class mirgecom.wall_model.PorousFlowModel(eos, wall_eos, transport, temperature_iteration=3)[source]

Main class of the porous media flow.

It is the equivalent to GasModel and wraps:

Parameters:
wall_eos

The thermophysical properties of the wall material and its EOS.

eos

The thermophysical properties of the gas and its EOS. For now, only mixtures are considered.

transport

Transport class that governs how the gas flows through the porous media. This is accounted for in PorousWallTransport

It also include functions that combine the properties of the porous material and the gas that permeates, yielding the actual porous flow EOS:

solid_density(material_densities)[source]

Return the solid density \(\epsilon_s \rho_s\).

The material density is relative to the entire control volume, and is not to be confused with the intrinsic density, hence the \(\epsilon\) dependence. It is computed as the sum of all N solid phases:

\[\epsilon_s \rho_s = \sum_i^N \epsilon_i \rho_i\]
Return type:

DOFArray

decomposition_progress(material_densities)[source]

Evaluate the progress ratio \(\tau\) of the decomposition.

Where \(\tau=1\), the material is locally virgin. On the other hand, if \(\tau=0\), then the fibers were all consumed.

Return type:

DOFArray

get_temperature(cv, wv, tseed)[source]

Evaluate the temperature based on solid+gas properties.

It uses the assumption of thermal equilibrium between solid and fluid. Newton iteration is used to get the temperature based on the internal energy/enthalpy and heat capacity for the bulk (solid+gas) material:

\[T^{n+1} = T^n - \frac {\epsilon_g \rho_g e_g + \rho_s h_s - \rho e} {\epsilon_g \rho_g C_{p_g} + \epsilon_s \rho_s C_{p_s}}\]
Parameters:
Return type:

DOFArray

get_pressure(cv, wv, temperature)[source]

Return the pressure of the gas considering the void fraction.

Since the density is evaluated based on the entire bulk material, i.e., considering the void fraction, the pressure is evaluated as

\[P = \frac{\epsilon \rho}{\epsilon} \frac{R}{M} T\]

where \(\epsilon \rho\) is stored in ConservedVars and \(M\) is the molar mass of the mixture.

Parameters:
Return type:

DOFArray

internal_energy(cv, wv, temperature)[source]

Return the enthalpy of the gas+solid material.

\[\rho e = \epsilon_s \rho_s e_s + \epsilon_g \rho_g e_g\]
Parameters:
Return type:

DOFArray

heat_capacity(cv, wv, temperature)[source]

Return the heat capacity of the gas+solid material.

\[\rho e = \epsilon_s \rho_s {C_p}_s + \epsilon_g \rho_g {C_v}_g\]
Parameters:
Return type:

DOFArray

3.3. Material specification

3.3.1. Carbon fiber

mirgecom.materials.carbon_fiber evaluate carbon fiber data.

class mirgecom.materials.carbon_fiber.Oxidation[source]

Abstract interface for wall oxidation model.

abstract get_source_terms(temperature, tau, rhoY_o2)[source]

Source terms of fiber oxidation.

Parameters:
Return type:

DOFArray

class mirgecom.materials.carbon_fiber.FiberEOS(dim, anisotropic_direction, char_mass, virgin_mass)[source]

Evaluate the properties of the solid state containing only fibers.

The properties are obtained as a function of oxidation progress. It can be computed based on the mass \(m\), which is related to the void fraction \(\epsilon\) and radius \(r\) as:

\[\tau = \frac{m}{m_0} = \frac{\rho_i \epsilon}{\rho_i \epsilon_0} = \frac{r^2}{r_0^2}\]
void_fraction(tau)[source]

Return the volumetric fraction \(\epsilon\) filled with gas.

The fractions of gas and solid phases must sum to one, \(\epsilon_g + \epsilon_s = 1\). Both depend only on the oxidation progress ratio \(\tau\).

Parameters:

tau (DOFArray)

Return type:

DOFArray

enthalpy(temperature, tau=None)[source]

Evaluate the solid enthalpy \(h_s\) of the fibers.

Return type:

DOFArray

heat_capacity(temperature, tau=None)[source]

Evaluate the heat capacity \(C_{p_s}\) of the fibers.

The coefficients are obtained with the analytical derivative of the enthalpy fit.

Return type:

DOFArray

thermal_conductivity(temperature, tau=None)[source]

Evaluate the thermal conductivity \(\kappa\) of the fibers.

It accounts for anisotropy and oxidation progress.

Return type:

DOFArray

volume_fraction(tau)[source]

Fraction \(\phi\) occupied by the solid.

Parameters:

tau (DOFArray)

Return type:

DOFArray

permeability(tau)[source]

Permeability \(K\) of the porous material.

Parameters:

tau (DOFArray)

Return type:

DOFArray

emissivity(temperature=None, tau=None)[source]

Emissivity for energy radiation.

Return type:

DOFArray

tortuosity(tau)[source]

Tortuosity \(\eta\) affects the species diffusivity.

Parameters:

tau (DOFArray)

Return type:

DOFArray

decomposition_progress(mass)[source]

Evaluate the mass loss progress ratio \(\tau\) of the oxidation.

Parameters:

mass (DOFArray)

Return type:

DOFArray

3.3.2. TACOT

tacot evaluates TACOT-related data.

TACOT is the Theoretical Ablative Composite for Open Testing, a surrogate composite material closely related to PICA (Phenolic Impregnated Carbon Ablator) proposed as an open-source material for the Ablation Workshop.

class mirgecom.materials.tacot.Pyrolysis[source]

Evaluate the source terms for the pyrolysis decomposition.

The source terms follow as Arrhenius-like equation given by

\[\dot{\omega}_i^p = \mathcal{A}_{i} T^{n_{i}} \exp\left(- \frac{E_{i}}{RT} \right) \left( \frac{\epsilon_i \rho_i - \epsilon^c_i \rho^c_i}{\epsilon^0_i \rho^0_i} \right)^{m_i}\]

For TACOT, 2 different reactions, which are assumed to only happen after a minimum temperature, are considered based on the resin constituents. The third reaction is the fiber oxidation, which is not handled here for now.

get_source_terms(temperature, chi)[source]

Return the source terms of pyrolysis decomposition for TACOT.

Parameters:
  • temperature (DOFArray) – The temperature of the bulk material.

  • chi (numpy.ndarray) – Either the solid mass \(\rho_i\) of all fractions of the resin or the progress ratio \(\chi\) of the decomposition. The actual parameter depends on the modeling itself.

Returns:

source – The source terms for the pyrolysis

Return type:

numpy.ndarray

class mirgecom.materials.tacot.TacotEOS(char_mass, virgin_mass)[source]

Evaluate the properties of the solid state containing resin and fibers.

A linear weighting between the virgin and chared states is applied to yield the material properties. Polynomials were generated offline to avoid interpolation and they are not valid for temperatures above 3200K.

void_fraction(tau)[source]

Return the volumetric fraction \(\epsilon\) filled with gas.

The fractions of gas and solid phases must sum to one, \(\epsilon_g + \epsilon_s = 1\). Both depend only on the pyrolysis progress ratio \(\tau\).

Parameters:

tau (DOFArray)

Return type:

DOFArray

enthalpy(temperature, tau)[source]

Solid enthalpy as a function of pyrolysis progress.

Parameters:
Return type:

DOFArray

heat_capacity(temperature, tau)[source]

Solid heat capacity \(C_{p_s}\) as a function of pyrolysis progress.

Parameters:
Return type:

DOFArray

thermal_conductivity(temperature, tau)[source]

Solid thermal conductivity as a function of pyrolysis progress.

Parameters:
Return type:

DOFArray

volume_fraction(tau)[source]

Fraction \(\phi\) occupied by the solid.

Parameters:

tau (DOFArray)

Return type:

DOFArray

permeability(tau)[source]

Permeability \(K\) of the composite material.

Parameters:

tau (DOFArray)

Return type:

DOFArray

emissivity(temperature=None, tau=None)[source]

Emissivity for energy radiation.

Return type:

DOFArray

tortuosity(tau)[source]

Tortuosity \(\eta\) affects the species diffusivity.

Parameters:

tau (DOFArray)

Return type:

DOFArray

decomposition_progress(mass)[source]

Evaluate the progress ratio \(\tau\) of the phenolics decomposition.

Where \(\tau=1\), the material is locally virgin. On the other hand, if \(\tau=0\), then the pyrolysis is locally complete and only charred material exists:

\[\tau = \frac{\rho_0}{\rho_0 - \rho_c} \left( 1 - \frac{\rho_c}{\rho(t)} \right)\]
Parameters:

mass (DOFArray)

Return type:

DOFArray

3.3.3. User-defined material

mirgecom.materials.prescribed_porous_material for user-defined material.

The user can create any material with driver-oriented functions.

class mirgecom.materials.prescribed_porous_material.PrescribedMaterialEOS(enthalpy_func, heat_capacity_func, thermal_conductivity_func, volume_fraction_func, permeability_func, emissivity_func, tortuosity_func, decomposition_progress_func)[source]

Evaluate the properties of a user-defined material.

void_fraction(tau)[source]

Return the volumetric fraction \(\epsilon\) filled with gas.

The fractions of gas and solid phases must sum to one, \(\epsilon_g + \epsilon_s = 1\). Both depend only on the oxidation progress ratio \(\tau\).

Parameters:

tau (DOFArray)

Return type:

DOFArray

enthalpy(temperature, tau)[source]

Evaluate the solid enthalpy \(h_s\) of the fibers.

Parameters:
Return type:

DOFArray

heat_capacity(temperature, tau)[source]

Evaluate the heat capacity \(C_{p_s}\) of the fibers.

Parameters:
Return type:

DOFArray

thermal_conductivity(temperature, tau)[source]

Evaluate the thermal conductivity \(\kappa\) of the fibers.

It employs a rescaling of the experimental data based on the fiber shrinkage during the oxidation.

Parameters:
Return type:

DOFArray

volume_fraction(tau)[source]

Fraction \(\phi\) occupied by the solid.

Parameters:

tau (DOFArray)

Return type:

DOFArray

permeability(tau)[source]

Permeability \(K\) of the porous material.

Parameters:

tau (DOFArray)

Return type:

DOFArray

emissivity(temperature=None, tau=None)[source]

Emissivity for energy radiation.

Return type:

DOFArray

tortuosity(tau)[source]

Tortuosity \(\eta\) affects the species diffusivity.

Parameters:

tau (DOFArray)

Return type:

DOFArray

decomposition_progress(mass)[source]

Evaluate the progress rate \(\tau\).

Parameters:

mass (DOFArray)

Return type:

DOFArray

3.4. Helper Functions

initializer returns wall materials initialization.

class mirgecom.materials.initializer.SolidWallInitializer(temperature)[source]

Initializer for heat conduction only materials.

class mirgecom.materials.initializer.PorousWallInitializer(temperature, species, material_densities, pressure=None, density=None)[source]

Initializer for porous materials.