Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
JPHYSICS::JPetzhold Class Referenceabstract

Measurement of light scattering in water. More...

#include <JPhysicsSupportkit.hh>

Inheritance diagram for JPHYSICS::JPetzhold:
JTOOLS::JPolint1Function1D_t JTOOLS::JPolintFunction1D_t< 1 > JTOOLS::JPolintFunction1D< N, JElement2D< double, double >, JCollection, double > JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, JResult_t, JDistance_t > JTOOLS::JFunction1D< JArgument_t, JResult_t > JTOOLS::JFunctional< JArgument_t, JResult_t >

Public Types

typedef JCollection< JElement2D< double, double >, JDistance< typename JElement_t::abscissa_type > > collection_type
 
typedef collection_type::abscissa_type abscissa_type
 
typedef collection_type::ordinate_type ordinate_type
 
typedef collection_type::value_type value_type
 
typedef collection_type::distance_type distance_type
 
typedef collection_type::const_iterator const_iterator
 
typedef collection_type::const_reverse_iterator const_reverse_iterator
 
typedef collection_type::iterator iterator
 
typedef collection_type::reverse_iterator reverse_iterator
 
typedef JFunction1D< abscissa_type, double > function_type
 
typedef function_type::argument_type argument_type
 
typedef function_type::result_type result_type
 
typedef function_type::JExceptionHandler exceptionhandler_type
 
enum  { NUMBER_OF_DIMENSIONS = 1 }
 
typedef JFunctional< JArgument_t, JResult_t > functional_type
 
typedef JSupervisor supervisor_type
 

Public Member Functions

 JPetzhold ()
 Default constructor. More...
 
double operator() (const double x) const
 Measurement of light scattering in water. More...
 
result_type operator() (const argument_type x) const
 Function value evaluation. More...
 
virtual result_type evaluate (const argument_type *pX) const =0
 Recursive function value evaluation. More...
 
JSupervisor getSupervisor () const
 Get supervisor. More...
 
const JExceptionHandlergetExceptionHandler () const
 Get exception handler. More...
 
void setExceptionHandler (const JSupervisor &supervisor)
 Set the supervisor for handling of exceptions. More...
 

Static Public Member Functions

static result_type getValue (const JFunctional &function, const argument_type *pX)
 Recursive function value evaluation. More...
 
static JClass< result_type >::argument_type getValue (typename JClass< result_type >::argument_type value, const argument_type *pX)
 Termination of recursive function value evaluation. More...
 

Protected Attributes

JSupervisor supervisor
 

Detailed Description

Measurement of light scattering in water.

Values are taken from reference C.D. Mobley "Light and Water", ISBN 0-12-502750-8, pag. 111, Table 3.10 (right column).

Definition at line 168 of file JPhysicsSupportkit.hh.

Member Typedef Documentation

◆ collection_type

typedef JCollection <JElement2D< double, double > , JDistance<typename JElement_t::abscissa_type> > JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::collection_type
inherited

Definition at line 1098 of file JPolint.hh.

◆ abscissa_type

typedef collection_type::abscissa_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::abscissa_type
inherited

Definition at line 1100 of file JPolint.hh.

◆ ordinate_type

typedef collection_type::ordinate_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::ordinate_type
inherited

Definition at line 1101 of file JPolint.hh.

◆ value_type

typedef collection_type::value_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::value_type
inherited

Definition at line 1102 of file JPolint.hh.

◆ distance_type

typedef collection_type::distance_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::distance_type
inherited

Definition at line 1103 of file JPolint.hh.

◆ const_iterator

typedef collection_type::const_iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::const_iterator
inherited

Definition at line 1105 of file JPolint.hh.

◆ const_reverse_iterator

typedef collection_type::const_reverse_iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::const_reverse_iterator
inherited

Definition at line 1106 of file JPolint.hh.

◆ iterator

typedef collection_type::iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::iterator
inherited

Definition at line 1107 of file JPolint.hh.

◆ reverse_iterator

typedef collection_type::reverse_iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::reverse_iterator
inherited

Definition at line 1108 of file JPolint.hh.

◆ function_type

typedef JFunction1D<abscissa_type, double > JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::function_type
inherited

Definition at line 1110 of file JPolint.hh.

◆ argument_type

typedef function_type::argument_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::argument_type
inherited

Definition at line 1112 of file JPolint.hh.

◆ result_type

typedef function_type::result_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::result_type
inherited

Definition at line 1113 of file JPolint.hh.

◆ exceptionhandler_type

typedef function_type::JExceptionHandler JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JCollection , double , JDistance<typename JElement_t::abscissa_type> >::exceptionhandler_type
inherited

Definition at line 1114 of file JPolint.hh.

◆ functional_type

template<class JArgument_t , class JResult_t >
typedef JFunctional<JArgument_t, JResult_t> JTOOLS::JFunction1D< JArgument_t, JResult_t >::functional_type
inherited

Definition at line 337 of file JFunctional.hh.

◆ supervisor_type

template<class JArgument_t , class JResult_t >
typedef JSupervisor JTOOLS::JFunctional< JArgument_t, JResult_t >::supervisor_type
inherited

Definition at line 89 of file JFunctional.hh.

Member Enumeration Documentation

◆ anonymous enum

template<class JArgument_t , class JResult_t >
anonymous enum
inherited
Enumerator
NUMBER_OF_DIMENSIONS 

Definition at line 335 of file JFunctional.hh.

Constructor & Destructor Documentation

◆ JPetzhold()

JPHYSICS::JPetzhold::JPetzhold ( )
inline

Default constructor.

Definition at line 175 of file JPhysicsSupportkit.hh.

176  {
177  // angle probability
178  // [deg]
179  (*this)[ 0.100] = 1.767e+03;
180  (*this)[ 0.126] = 1.296e+03;
181  (*this)[ 0.158] = 9.502e+02;
182  (*this)[ 0.200] = 6.991e+02;
183  (*this)[ 0.251] = 5.140e+02;
184  (*this)[ 0.316] = 3.764e+02;
185  (*this)[ 0.398] = 2.763e+02;
186  (*this)[ 0.501] = 2.188e+02;
187  (*this)[ 0.631] = 1.444e+02;
188  (*this)[ 0.794] = 1.022e+02;
189  (*this)[ 1.000] = 7.161e+01;
190  (*this)[ 1.259] = 4.958e+01;
191  (*this)[ 1.585] = 3.395e+01;
192  (*this)[ 1.995] = 2.281e+01;
193  (*this)[ 2.512] = 1.516e+01;
194  (*this)[ 3.162] = 1.002e+01;
195  (*this)[ 3.981] = 6.580e+00;
196  (*this)[ 5.012] = 4.295e+00;
197  (*this)[ 6.310] = 2.807e+00;
198  (*this)[ 7.943] = 1.819e+00;
199  (*this)[ 10.000] = 1.153e+00;
200  (*this)[ 15.000] = 4.893e-01;
201  (*this)[ 20.000] = 2.444e-01;
202  (*this)[ 25.000] = 1.472e-01;
203  (*this)[ 30.000] = 8.609e-02;
204  (*this)[ 35.000] = 5.931e-02;
205  (*this)[ 40.000] = 4.210e-02;
206  (*this)[ 45.000] = 3.067e-02;
207  (*this)[ 50.000] = 2.275e-02;
208  (*this)[ 55.000] = 1.699e-02;
209  (*this)[ 60.000] = 1.313e-02;
210  (*this)[ 65.000] = 1.046e-02;
211  (*this)[ 70.000] = 8.488e-03;
212  (*this)[ 75.000] = 6.976e-03;
213  (*this)[ 80.000] = 5.842e-03;
214  (*this)[ 85.000] = 4.953e-03;
215  (*this)[ 90.000] = 4.292e-03;
216  (*this)[ 95.000] = 3.782e-03;
217  (*this)[100.000] = 3.404e-03;
218  (*this)[105.000] = 3.116e-03;
219  (*this)[110.000] = 2.912e-03;
220  (*this)[115.000] = 2.797e-03;
221  (*this)[120.000] = 2.686e-03;
222  (*this)[125.000] = 2.571e-03;
223  (*this)[130.000] = 2.476e-03;
224  (*this)[135.000] = 2.377e-03;
225  (*this)[140.000] = 2.329e-03;
226  (*this)[145.000] = 2.313e-03;
227  (*this)[150.000] = 2.365e-03;
228  (*this)[155.000] = 2.506e-03;
229  (*this)[160.000] = 2.662e-03;
230  (*this)[165.000] = 2.835e-03;
231  (*this)[170.000] = 3.031e-03;
232  (*this)[175.000] = 3.092e-03;
233  (*this)[180.000] = 3.154e-03;
234 
235  this->mul(1.166); // normalisation
236  this->compile();
237  }

Member Function Documentation

◆ operator()() [1/2]

double JPHYSICS::JPetzhold::operator() ( const double  x) const
inline

Measurement of light scattering in water.

Parameters
xcosine scattering angle
Returns
probability

Definition at line 246 of file JPhysicsSupportkit.hh.

247  {
248  double a;
249 
250  if (x >= +1.0)
251  a = 0.0;
252  else if (x <= -1.0)
253  a = 180.0;
254  else
255  a = acos(x) * 180.0 / PI;
256 
257  if (a >= this->getXmax())
258  return this->rbegin()->getY();
259  else if (a <= this->getXmin())
260  return this-> begin()->getY();
261  else
263  }
const double a
Definition: JQuadrature.cc:42
static const double PI
Mathematical constants.
result_type operator()(const argument_type x) const
Function value evaluation.
Definition: JFunctional.hh:348

◆ operator()() [2/2]

template<class JArgument_t , class JResult_t >
result_type JTOOLS::JFunction1D< JArgument_t, JResult_t >::operator() ( const argument_type  x) const
inlineinherited

Function value evaluation.

Parameters
xargument value
Returns
function value

Definition at line 348 of file JFunctional.hh.

349  {
350  return this->evaluate(&x);
351  }
virtual result_type evaluate(const argument_type *pX) const =0
Recursive function value evaluation.

◆ evaluate()

template<class JArgument_t , class JResult_t >
virtual result_type JTOOLS::JFunctional< JArgument_t, JResult_t >::evaluate ( const argument_type pX) const
pure virtualinherited

Recursive function value evaluation.

Parameters
pXpointer to abscissa values
Returns
function value

Implemented in JTOOLS::JSplineMap< JKey_t, JValue_t, JMap_t, JResult_t, JDistance_t >, JTOOLS::JSplineMap< JKey_t, JValue_t, JGridMap, JResultType< JValue_t >::result_type, JDistance< JKey_t > >, JTOOLS::JSplineMap< JKey_t, JValue_t, JMap, JResultDerivative< JResultType< JValue_t >::result_type >, JDistance< JKey_t > >, JTOOLS::JSplineMap< JKey_t, JValue_t, JMap, JResultType< JValue_t >::result_type, JDistance< JKey_t > >, JTOOLS::JSplineMap< JKey_t, JValue_t, JGridMap, JResultDerivative< JResultType< JValue_t >::result_type >, JDistance< JKey_t > >, JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >, JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, JResultHesse< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, JResultPolynome< M, typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JPolintFunction< 1, JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >, JTOOLS::JPolintFunction< 0, JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >, JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >, JTOOLS::JPolfitFunction< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >, JTOOLS::JPolfitFunction< N, M, JElement_t, JCollection_t, typename JElement_t::ordinate_type, JDistance< typename JElement_t::abscissa_type > >, JTOOLS::JHermiteSplineMap< JKey_t, JValue_t, JMap_t, JResult_t, JDistance_t >, JTOOLS::JHermiteSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JHermiteSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >, JTOOLS::JHermiteSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >, JTOOLS::JFunctionObject1D< JArgument_t, JResult_t >, JTOOLS::JExternalFunction1D< JArgument_t, JResult_t >, and JTOOLS::JConstantFunction1D< JArgument_t, JResult_t >.

◆ getValue() [1/2]

template<class JArgument_t , class JResult_t >
static result_type JTOOLS::JFunctional< JArgument_t, JResult_t >::getValue ( const JFunctional< JArgument_t, JResult_t > &  function,
const argument_type pX 
)
inlinestaticinherited

Recursive function value evaluation.

Parameters
functionfunction
pXpointer to abscissa values

Definition at line 107 of file JFunctional.hh.

109  {
110  return function.evaluate(pX);
111  }

◆ getValue() [2/2]

template<class JArgument_t , class JResult_t >
static JClass<result_type>::argument_type JTOOLS::JFunctional< JArgument_t, JResult_t >::getValue ( typename JClass< result_type >::argument_type  value,
const argument_type pX 
)
inlinestaticinherited

Termination of recursive function value evaluation.

Parameters
valueresult
pXpointer to abscissa values

Definition at line 121 of file JFunctional.hh.

123  {
124  return value;
125  }

◆ getSupervisor()

template<class JArgument_t , class JResult_t >
JSupervisor JTOOLS::JFunctional< JArgument_t, JResult_t >::getSupervisor ( ) const
inlineinherited

Get supervisor.

Returns
supervisor

Definition at line 281 of file JFunctional.hh.

282  {
283  return supervisor;
284  }
JSupervisor supervisor
Definition: JFunctional.hh:310

◆ getExceptionHandler()

template<class JArgument_t , class JResult_t >
const JExceptionHandler& JTOOLS::JFunctional< JArgument_t, JResult_t >::getExceptionHandler ( ) const
inlineinherited

Get exception handler.

Returns
exception handler

Definition at line 292 of file JFunctional.hh.

293  {
294  return *supervisor;
295  }

◆ setExceptionHandler()

template<class JArgument_t , class JResult_t >
void JTOOLS::JFunctional< JArgument_t, JResult_t >::setExceptionHandler ( const JSupervisor supervisor)
inlineinherited

Set the supervisor for handling of exceptions.

Parameters
supervisorsupervisor

Definition at line 303 of file JFunctional.hh.

304  {
305  this->supervisor = supervisor;
306  }

Member Data Documentation

◆ supervisor

template<class JArgument_t , class JResult_t >
JSupervisor JTOOLS::JFunctional< JArgument_t, JResult_t >::supervisor
protectedinherited

Definition at line 310 of file JFunctional.hh.


The documentation for this class was generated from the following file: