lanl/singularity-eos

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

Open

#544 opened on Aug 18, 2025

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C++ (21 forks)auto 404
enhancementgood first issue

Repository metrics

Stars
 (36 stars)
PR merge metrics
 (PR metrics pending)

Description

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

Contributor guide