Skip to content

Create spinerEOS constructor that takes a method to populate the spiner grid and some settings for the grid #544

@jhp-lanl

Description

@jhp-lanl

At the moment, SpinerEOS (SpinerEOSDependsRhoT and SpinerEOSDependsRhoSie) constructors require a file containing the spiner data with the exception of course of the trivial constructor. However, it would be useful to be able to instead pass an EOS model and a set of grid parameters to the constructor and have the SpinerEOS call the model at the grid points in order to generate the grid.

This issue would likely require the following:

  1. Develop a struct to contain the parameters for the spiner grid. At the moment, the only default parameters I see are the grid resolutions, so thse should likely be moved from generate_files.hpp in sesame2spiner into eos_spiner_common.hpp. Other constants can be moved as needed. The struct should contain defaults that mirror the sesame data.
  2. Add a constructor to the SpinerEOS class that is templated on the EOS model (the class itself need not be templated since the model is only used during construction) and takes the grid parameters object. The constructor should then create the spiner grid and populate it with the model called at the grid points.

Some optional things that could be their own issues after the above is done:

  • Use the MinimumDensity(), MinimumTemperature(), and MaximumDensity() member functions of the EOS model to determine the bounds of the EOS itself and compare them to the provided bounds, adjusting as necessary (see getMatBounds() function). Basically we don't want the spiner grid to exceed the boundaries of the EOS itself. This would likely require creating a new MaximumTemperature() member function.
  • The EOSPAC class should be updated to properly use sesame table information to return values for MinimumDensity() and the other related member function

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions