icedb
version 0.5.1
Snow particle scattering database API
|
Namespaces | |
boost | |
implementations | |
The raw dielectric providers implementations. | |
Classes | |
struct | provider_s |
struct | requirement_s |
Typedefs | |
typedef std::shared_ptr< const requirement_s > | requirement_p |
typedef std::shared_ptr< provider_s > | provider_mp |
typedef std::shared_ptr< const provider_s > | provider_p |
typedef std::multimap< int, provider_p > | provider_collection_type |
typedef std::shared_ptr< const provider_collection_type > | all_providers_p |
typedef std::shared_ptr< provider_collection_type > | all_providers_mp |
typedef std::function< void(double, std::complex< double > &)> | refractFunction_freqonly_t |
typedef std::function< void(double, double, std::complex< double > &)> | refractFunction_freq_temp_t |
Functions | |
all_providers_p | listAllProviders () |
all_providers_p | listAllProviders (const std::string &subst) |
void | enumProvider (provider_p p, std::ostream &out) |
void | enumProviders (all_providers_p p, std::ostream &out) |
void | enumSubstances (std::ostream &out) |
provider_p | findProviderByName (const std::string &providerName) |
provider_p | findProvider (const std::string &subst, bool haveFreq, bool haveTemp, const std::string &start) |
all_providers_p | findProviders (const std::string &subst, bool haveFreq, bool haveTemp) |
void | prepRefract (provider_p prov, const std::string &inFreqUnits, refractFunction_freqonly_t &res) |
void | prepRefract (provider_p prov, const std::string &inFreqUnits, const std::string &inTempUnits, refractFunction_freq_temp_t &res) |
void | bruggeman (std::complex< double > Ma, std::complex< double > Mb, double fa, std::complex< double > &Mres) |
void | debyeDry (std::complex< double > Ma, std::complex< double > Mb, double fa, std::complex< double > &Mres) |
void | maxwellGarnettSpheres (std::complex< double > Ma, std::complex< double > Mb, double fa, std::complex< double > &Mres) |
void | maxwellGarnettEllipsoids (std::complex< double > Ma, std::complex< double > Mb, double fa, std::complex< double > &Mres) |
void | sihvola (std::complex< double > Ma, std::complex< double > Mb, double fa, double nu, std::complex< double > &Mres) |
std::complex< double > | mToE (std::complex< double > m) |
m to e converters More... | |
void | mToE (std::complex< double > m, std::complex< double > &e) |
std::complex< double > | eToM (std::complex< double > e) |
void | eToM (std::complex< double > e, std::complex< double > &m) |
double | guessTemp (double freq, const std::complex< double > &m, std::function< void(double freq, double temp, std::complex< double > &mres)> meth, double TA, double TB) |
typedef std::shared_ptr<provider_collection_type > icedb::refract::all_providers_mp |
Definition at line 57 of file refract.hpp.
typedef std::shared_ptr<const provider_collection_type > icedb::refract::all_providers_p |
Definition at line 56 of file refract.hpp.
typedef std::multimap<int, provider_p> icedb::refract::provider_collection_type |
Definition at line 55 of file refract.hpp.
typedef std::shared_ptr<provider_s> icedb::refract::provider_mp |
Definition at line 27 of file refract.hpp.
typedef std::shared_ptr<const provider_s> icedb::refract::provider_p |
Definition at line 29 of file refract.hpp.
typedef std::function<void(double, double, std::complex<double>&)> icedb::refract::refractFunction_freq_temp_t |
Definition at line 60 of file refract.hpp.
typedef std::function<void(double, std::complex<double>&)> icedb::refract::refractFunction_freqonly_t |
Definition at line 59 of file refract.hpp.
typedef std::shared_ptr<const requirement_s> icedb::refract::requirement_p |
Definition at line 16 of file refract.hpp.
void icedb::refract::bruggeman | ( | std::complex< double > | Ma, |
std::complex< double > | Mb, | ||
double | fa, | ||
std::complex< double > & | Mres | ||
) |
Definition at line 353 of file refract.cpp.
References eToM(), ICEDB_log, icedb::logging::ICEDB_LOG_DEBUG_2, mToE(), and icedb::zeros::secantMethod().
void icedb::refract::debyeDry | ( | std::complex< double > | Ma, |
std::complex< double > | Mb, | ||
double | fa, | ||
std::complex< double > & | Mres | ||
) |
Definition at line 383 of file refract.cpp.
References eToM(), ICEDB_log, icedb::logging::ICEDB_LOG_DEBUG_2, and mToE().
void icedb::refract::enumProvider | ( | provider_p | p, |
std::ostream & | out | ||
) |
Definition at line 158 of file refract.cpp.
References ICEDB_throw, and icedb::error::xNullPointer.
Referenced by enumProviders(), and main().
void icedb::refract::enumProviders | ( | all_providers_p | p, |
std::ostream & | out | ||
) |
Definition at line 175 of file refract.cpp.
References enumProvider(), ICEDB_throw, and icedb::error::xNullPointer.
Referenced by main().
void icedb::refract::enumSubstances | ( | std::ostream & | out | ) |
Definition at line 184 of file refract.cpp.
References listAllProviders(), and icedb::refract::implementations::substs.
Referenced by main().
std::complex< double > icedb::refract::eToM | ( | std::complex< double > | e | ) |
Definition at line 485 of file refract.cpp.
Referenced by bruggeman(), debyeDry(), eToM(), maxwellGarnettEllipsoids(), maxwellGarnettSpheres(), and sihvola().
void icedb::refract::eToM | ( | std::complex< double > | e, |
std::complex< double > & | m | ||
) |
Definition at line 489 of file refract.cpp.
References eToM().
provider_p icedb::refract::findProvider | ( | const std::string & | subst, |
bool | haveFreq, | ||
bool | haveTemp, | ||
const std::string & | start | ||
) |
Definition at line 202 of file refract.cpp.
References icedb::refract::implementations::_init(), icedb::refract::implementations::allProvidersSet, ICEDB_throw, icedb::refract::implementations::providersByName, icedb::refract::implementations::providersSet, and icedb::error::xBadFunctionMap.
provider_p icedb::refract::findProviderByName | ( | const std::string & | providerName | ) |
Definition at line 191 of file refract.cpp.
References icedb::refract::implementations::_init(), icedb::refract::implementations::allProvidersSet, and icedb::refract::implementations::providersByName.
Referenced by main().
all_providers_p icedb::refract::findProviders | ( | const std::string & | subst, |
bool | haveFreq, | ||
bool | haveTemp | ||
) |
Definition at line 236 of file refract.cpp.
References icedb::refract::implementations::_init(), icedb::refract::implementations::allProvidersSet, ICEDB_throw, icedb::refract::implementations::providersByName, icedb::refract::implementations::providersSet, and icedb::error::xBadFunctionMap.
Referenced by main().
double icedb::refract::guessTemp | ( | double | freq, |
const std::complex< double > & | m, | ||
std::function< void(double freq, double temp, std::complex< double > &mres)> | meth, | ||
double | TA, | ||
double | TB | ||
) |
Definition at line 494 of file refract.cpp.
References icedb::zeros::secantMethod().
all_providers_p icedb::refract::listAllProviders | ( | ) |
Definition at line 145 of file refract.cpp.
References icedb::refract::implementations::_init(), and icedb::refract::implementations::allProvidersSet.
Referenced by enumSubstances(), and main().
all_providers_p icedb::refract::listAllProviders | ( | const std::string & | subst | ) |
Definition at line 150 of file refract.cpp.
References icedb::refract::implementations::_init(), icedb::refract::implementations::allProvidersSet, and icedb::refract::implementations::providersSet.
void icedb::refract::maxwellGarnettEllipsoids | ( | std::complex< double > | Ma, |
std::complex< double > | Mb, | ||
double | fa, | ||
std::complex< double > & | Mres | ||
) |
Definition at line 422 of file refract.cpp.
References eToM(), ICEDB_log, icedb::logging::ICEDB_LOG_DEBUG_2, and mToE().
void icedb::refract::maxwellGarnettSpheres | ( | std::complex< double > | Ma, |
std::complex< double > | Mb, | ||
double | fa, | ||
std::complex< double > & | Mres | ||
) |
Definition at line 403 of file refract.cpp.
References eToM(), ICEDB_log, icedb::logging::ICEDB_LOG_DEBUG_2, and mToE().
std::complex< double > icedb::refract::mToE | ( | std::complex< double > | m | ) |
m to e converters
Definition at line 476 of file refract.cpp.
Referenced by bruggeman(), debyeDry(), maxwellGarnettEllipsoids(), maxwellGarnettSpheres(), mToE(), and sihvola().
void icedb::refract::mToE | ( | std::complex< double > | m, |
std::complex< double > & | e | ||
) |
Definition at line 480 of file refract.cpp.
References mToE().
void icedb::refract::prepRefract | ( | provider_p | prov, |
const std::string & | inFreqUnits, | ||
refractFunction_freqonly_t & | res | ||
) |
Translation function exists to ensure that the units are passed as expected.
Definition at line 268 of file refract.cpp.
References icedb::refract::provider_s::FREQ, icedb::units::conv_spec::generate(), ICEDB_throw, icedb::error::xBadFunctionMap, and icedb::error::xBadInput.
Referenced by main().
void icedb::refract::prepRefract | ( | provider_p | prov, |
const std::string & | inFreqUnits, | ||
const std::string & | inTempUnits, | ||
refractFunction_freq_temp_t & | res | ||
) |
Translation function exists to ensure that the units are passed as expected.
Definition at line 302 of file refract.cpp.
References icedb::refract::provider_s::FREQTEMP, icedb::units::converter::generate(), icedb::units::conv_spec::generate(), ICEDB_throw, icedb::error::xBadFunctionMap, and icedb::error::xBadInput.
void icedb::refract::sihvola | ( | std::complex< double > | Ma, |
std::complex< double > | Mb, | ||
double | fa, | ||
double | nu, | ||
std::complex< double > & | Mres | ||
) |
Formula is: (e_eff - eb) / (e_eff + 2eb + v(e_eff - eb)) - fa (ea-eb)/(ea+2eb+v(e_eff-eb) = 0 This formula has no analytic solution. It is also complex-valued. Its derivative is hard to calculate. Because of this, I will be using the complex secant method to find the zeros. This is also why the other mixing formulas do not call this code.
Definition at line 443 of file refract.cpp.
References eToM(), ICEDB_log, icedb::logging::ICEDB_LOG_DEBUG_2, mToE(), and icedb::zeros::secantMethod().