Jpp  18.0.0-rc.4
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JAbstractMedium.hh
Go to the documentation of this file.
1 #ifndef __JPHYSICS__JABSTRACTMEDIUM__
2 #define __JPHYSICS__JABSTRACTMEDIUM__
3 
4 
5 /**
6  * \author mdejong
7  */
8 
9 namespace JPHYSICS {}
10 namespace JPP { using namespace JPHYSICS; }
11 
12 namespace JPHYSICS {
13 
14  /**
15  * Medium interface.
16  */
18  public:
19  /**
20  * Virtual destructor.
21  */
22  virtual ~JAbstractMedium()
23  {}
24 
25 
26  /**
27  * Absorption length.
28  *
29  * \param lambda wavelenth [nm]
30  * \return absorption length [m]
31  */
32  virtual double getAbsorptionLength(const double lambda) const = 0;
33 
34 
35  /**
36  * Scattering length.
37  *
38  * \param lambda wavelenth [nm]
39  * \return scattering length [m]
40  */
41  virtual double getScatteringLength(const double lambda) const = 0;
42 
43 
44  /**
45  * Model specific function to describe light scattering in water
46  * (integral over full solid angle normalised to unity).
47  *
48  * \param ct cosine scattering angle
49  * \return probability
50  */
51  virtual double getScatteringProbability(const double ct) const = 0;
52  };
53 }
54 
55 #endif
virtual double getScatteringLength(const double lambda) const =0
Scattering length.
virtual double getAbsorptionLength(const double lambda) const =0
Absorption length.
virtual ~JAbstractMedium()
Virtual destructor.
virtual double getScatteringProbability(const double ct) const =0
Model specific function to describe light scattering in water (integral over full solid angle normali...