icedb  version 0.5.1
Snow particle scattering database API
refractBase.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "../defs.h"
3 #include <complex>
4 #include <functional>
5 
6 namespace icedb {
7  namespace refract {
8 
10  namespace implementations {
13  void mWaterLiebe(double f, double t, std::complex<double> &m);
17  void mWaterFreshMeissnerWentz(double f, double t, std::complex<double> &m);
20  void mIceMatzler(double f, double t, std::complex<double> &m);
22  void mIceWarren(double f, double t, std::complex<double> &m);
24  void mWaterHanel(double lambda, std::complex<double> &m);
26  void mIceHanel(double lambda, std::complex<double> &m);
28  void mNaClHanel(double lambda, std::complex<double> &m);
30  void mSeaSaltHanel(double lambda, std::complex<double> &m);
32  void mDustHanel(double lambda, std::complex<double> &m);
34  void mSandOHanel(double lambda, std::complex<double> &m);
36  void mSandEHanel(double lambda, std::complex<double> &m);
37  }
38 
40  std::complex<double> mToE(std::complex<double> m);
41  void mToE(std::complex<double> m, std::complex<double> &e);
42  std::complex<double> eToM(std::complex<double> e);
43  void eToM(std::complex<double> e, std::complex<double> &m);
44 
45  // Temperature-guessing
46  double guessTemp(double freq, const std::complex<double> &mToEval,
47  std::function<void(double freq, double temp, std::complex<double>& mres)> meth
49  double tempGuessA_K = 263, double tempGuessB_K = 233);
50 
51  }
52 }
std::complex< double > eToM(std::complex< double > e)
Definition: refract.cpp:485
void mIceWarren(double f, double t, std::complex< double > &m)
Ice complex refractive index for microwave/uv.
void mWaterHanel(double lambda, std::complex< double > &m)
Water complex refractive index for ir/vis.
void mIceMatzler(double f, double t, 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)
Definition: refract.cpp:494
void mNaClHanel(double lambda, std::complex< double > &m)
Sodium chloride refractive index for ir/vis.
void mSandEHanel(double lambda, std::complex< double > &m)
Sand E-ray refractive index for ir/vis (birefringent)
void mSandOHanel(double lambda, std::complex< double > &m)
Sand O-ray refractvie index for ir/vis (birefringent)
void mDustHanel(double lambda, std::complex< double > &m)
Dust-like particle refractive index for ir/vis.
void mWaterLiebe(double f, double t, std::complex< double > &m)
void mWaterFreshMeissnerWentz(double f, double t, std::complex< double > &m)
void mIceHanel(double lambda, std::complex< double > &m)
Ice complex refractive index for ir/vis.
std::complex< double > mToE(std::complex< double > m)
m to e converters
Definition: refract.cpp:476
void mSeaSaltHanel(double lambda, std::complex< double > &m)
Sea salt refractive index for ir/vis.