ukaea / neutronics_material_maker

A tool for making parametric material cards for use in neutronics codes. Original developed for the Paramak
19 stars 10 forks source link

Consistent variations of material temperature/pressure #103

Open DanShort12 opened 4 years ago

DanShort12 commented 4 years ago

Currently the temperature (temperature_in_K and temperature_in_C) and pressure (pressure_in_Pa) are exposed via properties. However, nmm does not handle side effects of varying one of these properties. For example, changing the temperature_in_K should consistently change the temperature_in_C (currently one can end up with a material who's temperature in C is not 273.15 less than the temperature in K). It also appears that the density is not recalculated when changing the temperature or pressure, which may similarly lead to unexpected behaviour.

This can likely be handled by the following:

An alternative to the second point could be to adjust the getter for density to re-evaluate the density on each request, although I suspect setting the density when a dependent property is changed may be more efficient.

DanShort12 commented 4 years ago

Thinking about this a bit more, I'm wondering if it's worth considering consolidating the density information into a callable property, then the value can be obtained at whatever temperature the user requests - the temperature and pressure aren't intrinsic properties of the material after all, unlike density (particularly if defined by a function), composition, etc. I believe that may have been discussed before though, so would be happy to see if there are any opinions on that before I put something together.