Skip to content

Commit

Permalink
shrink the default variant
Browse files Browse the repository at this point in the history
  • Loading branch information
jonahm-LANL committed Dec 17, 2024
1 parent 3b030b1 commit 7886d11
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 25 deletions.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,9 @@ endif()
if(SINGULARITY_USE_HELMHOLTZ)
target_compile_definitions(singularity-eos_Interface INTERFACE SINGULARITY_USE_HELMHOLTZ)
endif()
if (SINGULARITY_USE_V_AND_V_EOS)
target_compile_definitions(singularity-eos_Interface INTERFACE SINGULARITY_USE_V_AND_V_EOS)
endif()
if(SINGULARITY_USE_SPINER_WITH_HDF5)
target_compile_definitions(singularity-eos_Interface INTERFACE SINGULARITY_USE_SPINER_WITH_HDF5)
endif()
Expand Down
37 changes: 12 additions & 25 deletions singularity-eos/eos/eos_type_lists.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@ using singularity::variadic_utils::transform_variadic_list;
// all eos's
static constexpr const auto full_eos_list =
tl<IdealGas, Gruneisen, Vinet, MGUsup, PowerMG, JWL, DavisReactants, DavisProducts,
StiffGas,
StiffGas
#ifdef SINGULARITY_USE_V_AND_V_EOS
,
SAP_Polynomial, NobleAbel, CarnahanStarling
#endif // SINGULARITY_USE_V_AND_V_EOS
#ifdef SINGULARITY_USE_SPINER_WITH_HDF5
Expand All @@ -67,14 +68,6 @@ static constexpr const auto full_eos_list =
EOSPAC
#endif // SINGULARITY_USE_EOSPAC
>{};
// eos's that get relativistic modifier
static constexpr const auto relativistic_eos_list =
tl<IdealGas
#ifdef SINGULARITY_USE_SPINER_WITH_HDF5
,
SpinerEOSDependsRhoT, SpinerEOSDependsRhoSie, StellarCollapse
#endif // SINGULAIRTY_USE_SPINER_WITH_HDF5
>{};
// eos's that get unit system modifier
static constexpr const auto unit_system_eos_list =
tl<IdealGas
Expand All @@ -92,35 +85,29 @@ static constexpr const auto apply_to_all = al<ScaledEOS, ShiftedEOS>{};
// variadic list of UnitSystem<T>'s
static constexpr const auto unit_system =
transform_variadic_list(unit_system_eos_list, al<UnitSystem>{});
// variadic list of Relativistic<T>'s
static constexpr const auto relativistic =
transform_variadic_list(relativistic_eos_list, al<RelativisticEOS>{});
// variadic list of eos's with shifted or scaled modifiers
static constexpr const auto shifted_1 =
transform_variadic_list(full_eos_list, al<ShiftedEOS>{});
static constexpr const auto scaled_1 =
transform_variadic_list(full_eos_list, al<ScaledEOS>{});
// relativistic and unit system modifiers
static constexpr const auto unit_or_rel =
singularity::variadic_utils::concat(unit_system, relativistic);
// variadic list of eos with shifted, relativistic or unit system modifiers
static constexpr const auto shifted_of_unit_or_rel =
transform_variadic_list(unit_or_rel, al<ShiftedEOS>{});
// variadic list of eos with shifted or unit system modifiers
static constexpr const auto shifted_of_unit =
transform_variadic_list(unit_system, al<ShiftedEOS>{});
// combined list of all shifted EOS
static constexpr const auto shifted =
singularity::variadic_utils::concat(shifted_1, shifted_of_unit_or_rel);
// variadic list of eos with scaled, relativistic or unit system modifiers
static constexpr const auto scaled_of_unit_or_rel =
transform_variadic_list(unit_or_rel, al<ScaledEOS>{});
singularity::variadic_utils::concat(shifted_1, shifted_of_unit);
// variadic list of eos with scaled or unit system modifiers
static constexpr const auto scaled_of_unit =
transform_variadic_list(unit_system, al<ScaledEOS>{});
// variadic list of Scaled<Shifted<T>>'s
static constexpr const auto scaled_of_shifted =
transform_variadic_list(shifted, al<ScaledEOS>{});
// combined list of all scaled EOS
static constexpr const auto scaled = singularity::variadic_utils::concat(
scaled_1, scaled_of_unit_or_rel, scaled_of_shifted);
static constexpr const auto scaled =
singularity::variadic_utils::concat(scaled_1, scaled_of_unit, scaled_of_shifted);
// create combined list
static constexpr const auto combined_list_1 =
singularity::variadic_utils::concat(full_eos_list, shifted, scaled, unit_or_rel);
singularity::variadic_utils::concat(full_eos_list, shifted, scaled, unit_system);
// make a ramped eos of everything
static constexpr const auto ramped_all =
transform_variadic_list(combined_list_1, al<BilinearRampEOS>{});
Expand Down
18 changes: 18 additions & 0 deletions singularity-eos/eos/singularity_eos.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ int init_sg_SAP_Polynomial(const int matindex, EOS *eos, const double rho0,
const double b1, const double b2c, const double b2e,
const double b3, int const *const enabled,
double *const vals) {
#if SINGULARITY_USE_V_AND_V_EOS
assert(matindex >= 0);
EOS eosi =
SGAPPLYMODSIMPLE(SAP_Polynomial(rho0, a0, a1, a2c, a2e, a3, b0, b1, b2c, b2e, b3));
Expand All @@ -154,6 +155,11 @@ int init_sg_SAP_Polynomial(const int matindex, EOS *eos, const double rho0,
EOS eos_ = SGAPPLYMOD(SAP_Polynomial(rho0, a0, a1, a2c, a2e, a3, b0, b1, b2c, b2e, b3));
eos[matindex] = eos_.GetOnDevice();
return 0;
#else
PORTABLE_THROW_OR_ABORT("SAP Polynomial not currently supported. Please build with "
"-DSINGULARITY_USE_V_AND_V_EOS");
return 1;
#endif // SINGULARITY_USE_V_AND_V_EOS
}

int init_sg_StiffGas(const int matindex, EOS *eos, const double gm1, const double Cv,
Expand All @@ -178,6 +184,7 @@ int init_sg_StiffGas(const int matindex, EOS *eos, const double gm1, const doubl
int init_sg_NobleAbel(const int matindex, EOS *eos, const double gm1, const double Cv,
const double bb, const double qq, int const *const enabled,
double *const vals) {
#if SINGULARITY_USE_V_AND_V_EOS
assert(matindex >= 0);
EOS eosi = SGAPPLYMODSIMPLE(NobleAbel(gm1, Cv, bb, qq));
if (enabled[3] == 1) {
Expand All @@ -187,6 +194,11 @@ int init_sg_NobleAbel(const int matindex, EOS *eos, const double gm1, const doub
EOS eos_ = SGAPPLYMOD(NobleAbel(gm1, Cv, bb, qq));
eos[matindex] = eos_.GetOnDevice();
return 0;
#else
PORTABLE_THROW_OR_ABORT("NobleAbel not currently supported. Please build with "
"-DSINGULARITY_USE_V_AND_V_EOS");
return 1;
#endif // SINGULARITY_USE_V_AND_V_EOS
}

int init_sg_NobleAbel(const int matindex, EOS *eos, const double gm1, const double Cv,
Expand All @@ -197,6 +209,7 @@ int init_sg_NobleAbel(const int matindex, EOS *eos, const double gm1, const doub
int init_sg_CarnahanStarling(const int matindex, EOS *eos, const double gm1,
const double Cv, const double bb, const double qq,
int const *const enabled, double *const vals) {
#if SINGULARITY_USE_V_AND_V_EOS
assert(matindex >= 0);
EOS eosi = SGAPPLYMODSIMPLE(CarnahanStarling(gm1, Cv, bb, qq));
if (enabled[3] == 1) {
Expand All @@ -206,6 +219,11 @@ int init_sg_CarnahanStarling(const int matindex, EOS *eos, const double gm1,
EOS eos_ = SGAPPLYMOD(CarnahanStarling(gm1, Cv, bb, qq));
eos[matindex] = eos_.GetOnDevice();
return 0;
#else
PORTABLE_THROW_OR_ABORT("Carnahan Starling not currently supported. Please build with "
"-DSINGULARITY_USE_V_AND_V_EOS");
return 1;
#endif // SINGULARITY_USE_V_AND_V_EOS
}

int init_sg_CarnahanStarling(const int matindex, EOS *eos, const double gm1,
Expand Down

0 comments on commit 7886d11

Please sign in to comment.