Jpp 20.0.0-195-g190c9e876
the software that should make you happy
Loading...
Searching...
No Matches
JPHYSICS::JScatteringLength Struct Reference

Auxiliary data structure to customize scattering length. More...

#include <JPDFSupportkit.hh>

Inheritance diagram for JPHYSICS::JScatteringLength:
JPHYSICS::JScatteringLength_t std::map< std::string, JScatteringLength_t::pF >

Public Types

typedef double(*) pF(const double)
 

Public Member Functions

 JScatteringLength ()
 Default constructor.
 

Static Public Member Functions

static double getScatteringLength (const double lambda)
 Get scattering length.
 

Static Private Member Functions

static double & get_factor ()
 Get reference to multiplication factor.
 
static pFget_function ()
 Get reference to global functon.
 

Friends

std::istream & operator>> (std::istream &in, JScatteringLength &scattering)
 Read scattering length from input stream.
 
std::ostream & operator<< (std::ostream &out, const JScatteringLength &scattering)
 Write scattering length to output stream.
 

Detailed Description

Auxiliary data structure to customize scattering length.

Definition at line 147 of file JPDFSupportkit.hh.

Member Typedef Documentation

◆ pF

double(*) JPHYSICS::JScatteringLength_t::pF(const double)
inherited

Definition at line 140 of file JPDFSupportkit.hh.

Constructor & Destructor Documentation

◆ JScatteringLength()

JPHYSICS::JScatteringLength::JScatteringLength ( )
inline

Default constructor.

Definition at line 154 of file JPDFSupportkit.hh.

155 {
156 (*this)["default"] = NAMESPACE::getScatteringLength;
157 }
double getScatteringLength(const double lambda)

Member Function Documentation

◆ getScatteringLength()

static double JPHYSICS::JScatteringLength::getScatteringLength ( const double lambda)
inlinestatic

Get scattering length.

Parameters
lambdawavelength of light [nm]
Returns
scattering length [m]

Definition at line 210 of file JPDFSupportkit.hh.

211 {
212 return get_factor() * (*get_function())(lambda);
213 }
static double & get_factor()
Get reference to multiplication factor.
static pF & get_function()
Get reference to global functon.

◆ get_factor()

static double & JPHYSICS::JScatteringLength::get_factor ( )
inlinestaticprivate

Get reference to multiplication factor.

Returns
factor

Definition at line 221 of file JPDFSupportkit.hh.

222 {
223 static double factor = 1.0;
224
225 return factor;
226 }

◆ get_function()

static pF & JPHYSICS::JScatteringLength::get_function ( )
inlinestaticprivate

Get reference to global functon.

Returns
function

Definition at line 234 of file JPDFSupportkit.hh.

235 {
237
238 return f1;
239 }
double(*) pF(const double)

Friends And Related Symbol Documentation

◆ operator>>

std::istream & operator>> ( std::istream & in,
JScatteringLength & scattering )
friend

Read scattering length from input stream.

Parameters
ininput stream
scatteringscattering length
Returns
input stream

Definition at line 167 of file JPDFSupportkit.hh.

168 {
169 using namespace std;
170
171 for (string option; in >> option >> JScatteringLength::get_factor(); ) {
172
173 JScatteringLength::const_iterator p = scattering.find(option);
174
175 if (p != scattering.end())
177 else
178 in.setstate(ios_base::badbit);
179 }
180
181 return in;
182 }

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const JScatteringLength & scattering )
friend

Write scattering length to output stream.

Parameters
outoutput stream
scatteringscattering length
Returns
output stream

Definition at line 192 of file JPDFSupportkit.hh.

193 {
194 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
195 if (i->second == JScatteringLength::get_function()) {
196 out << i->first << ' ';
197 }
198 }
199
200 return out << JScatteringLength::get_factor();
201 }

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