6 #ifndef MATERIALS_REFRACTIVE_INDEX_H 7 #define MATERIALS_REFRACTIVE_INDEX_H 92 const double k_ = std::numeric_limits<double>::quiet_NaN());
95 void make_tabulated(
const std::string & n_tab_,
const std::string & k_tab_ =
"");
100 const std::string & k_tab_ =
"");
147 virtual double _eval(
double)
const;
167 std::string _n_table_;
168 std::string _k_table_;
175 std::shared_ptr<mygsl::tabulated_function> _n_tabfunc_;
176 std::shared_ptr<mygsl::tabulated_function> _k_tabfunc_;
182 #endif // MATERIALS_REFRACTIVE_INDEX_H Tabulated dispersion.
Definition: refractive_index.h:38
double eval_attenuation_coefficient(const double lambda_) const
Compute the attenuation coefficient from the vacuum wavelength.
Sellmeier formula (alternative)
Definition: refractive_index.h:40
virtual bool is_in_domain_of_definition(const double x_) const
Check if a value is in the domain of definition.
bool is_eval_n() const
Check the refractive index evaluation mode.
Definition: refractive_index.h:53
Definition: refractive_index.h:43
Compute the refractive index or the extinction coefficient for a given medium.
Definition: refractive_index.h:30
Definition: refractive_index.h:42
bool has_lambda_range() const
Check if validity range of lambda is set.
bool has_rii_coeff(const std::size_t) const
Check if a RII coeff is set.
void set_eval_k()
Set to extinction coefficient evaluation mode.
void set_eval_n()
Set to refractive index evaluation mode.
double _eval_k(double) const
bool is_initialized() const
Check initialization status.
Sellmeier formula (preferred)
Definition: refractive_index.h:39
double compute_abbe_number_e() const
Compute the Abbe number (from Fraunhofer Cd, Hg spectral lines)
virtual bool has_explicit_domain_of_definition() const
Check if a domain of definition is set.
double eval_extinction_coefficient(const double lambda_) const
Compute the extinction coefficient from the vacuum wavelength.
std::map< std::size_t, double > coeff_dict_type
Type alias for a dictionry of parameters.
Definition: refractive_index.h:57
double get_rii_coeff(const std::size_t) const
Return the RII coeff at given rank.
Definition: refractive_index.h:45
void initialize(const datatools::properties &config_, const mygsl::unary_function_dict_type &)
Initialize from properties.
const datatools::real_range & get_lambda_range() const
Return the validity range of lambda.
Definition: refractive_index.h:41
void set_lambda_range(const double lambda_min_, const double lambda_max_)
Set the validity range of lambda.
void make_tabulated(const std::string &n_tab_, const std::string &k_tab_="")
Use a tabulated refractive index and extension coefficient.
Abstract interface for unary functions : R -> R.
Definition: i_unary_function.h:44
double _eval_n(double) const
double eval_penetration_depth(const double lambda_) const
Compute the penetration depth from the vacuum wavelength.
void make_constant(const double n_, const double k_=std::numeric_limits< double >::quiet_NaN())
refractive_index()
Default constructor.
eval_mode_type
Evaluation mode.
Definition: refractive_index.h:51
double compute_abbe_number() const
Compute the Abbe number (from Fraunhofer D-, F-, C-spectral lines)
bool is_eval_k() const
Check the extinction coefficient evaluation mode.
virtual ~refractive_index()
Destructor.
std::map< std::string, unary_function_handle_type > unary_function_dict_type
Alias for dictionary of handles to unary function objects.
Definition: unary_function_utils.h:30
void make_dispersion_rii(const dispersion_formula_type formula_, const coeff_dict_type &coeffs_, const std::string &k_tab_="")
Use a RII dispersion formula refractive index.
double compute_principal_dispersion() const
Compute the principal dispersion (from Fraunhofer F-, C-spectral lines)
Invalid formula.
Definition: refractive_index.h:36
virtual double _eval(double) const
The function evaluation abstract method.
Definition: refractive_index.h:44
Definition: refractive_index.h:52
No dispersion (constant refractive index)
Definition: refractive_index.h:37
dispersion_formula_type
Definition: refractive_index.h:35
double eval_refractive_index(const double lambda_) const
Compute the refractive index from the vacuum wavelength (where E = hc/lambda)
Top-level namespace of the Bayeux/materials module library.
Definition: geom_manager_utils.h:14