#pragma once #include "gridfire/reaction/reaction.h" #include "fourdst/composition/atomicSpecies.h" #include "cppad/cppad.hpp" #include namespace gridfire::screening { class ScreeningModel { public: using ADDouble = CppAD::AD; virtual ~ScreeningModel() = default; virtual std::vector calculateScreeningFactors( const reaction::LogicalReactionSet& reactions, const std::vector& species, const std::vector& Y, const double T9, const double rho ) const = 0; virtual std::vector calculateScreeningFactors( const reaction::LogicalReactionSet& reactions, const std::vector& species, const std::vector& Y, const ADDouble T9, const ADDouble rho ) const = 0; }; }