idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.71k stars 1.04k forks source link

Solid property homogenization methods #25536

Open aprilnovak opened 12 months ago

aprilnovak commented 12 months ago

Reason

For heat conduction through material mixtures (such as TRISO fuel compacts), it is often desired to have a homogenized material property based on some weighted function of the individual material properties. For example, one might take a volume average of thermal conductivity over 3 mixed phases, and use that in a homogenized heat conduction simulation. Currently, MOOSE does not have anything built in to do this, so we have been extensively relying on ParsedFunction with a lot of manual effort, like this

[Functions]
  [k_graphite]
    type = ParsedFunction
    expression = '${matrix_k}'
  []
  [k_TRISO] # volume average of layers in a TRISO
    type = ParsedFunction
    expression = '${kernel_fraction} * ${kernel_k} + ${buffer_fraction} * ${buffer_k} + ${fparse ipyc_fraction + opyc_fraction} * ${PyC_k} + ${sic_fraction} * ${SiC_k}'
  []
  [k_compacts] # volume average of TRISOs and graphite
    type = ParsedFunction
    expression = '${triso_pf} * k_TRISO + ${fparse 1.0 - triso_pf} * k_graphite'
    symbol_names = 'k_TRISO k_graphite'
    symbol_values = 'k_TRISO k_graphite'
  []
[]

Design

Add a MixtureSolidProperties user object to the solid properties module which mixes an arbitrary number of individual properties together according to some "recipe" (like a volume average, or something fancier -- many more sophisticated models exist for binary mixtures, for instance).

Impact

New feature.

aprilnovak commented 11 months ago

@meltawila will be tackling this one