53 const dictionary&
dict,
58 coeffsDict_(
dict.subDict(typeName +
"Coeffs")),
59 nk1_(coeffsDict_.lookup(
"nk1")),
60 nk2_(coeffsDict_.lookup(
"nk2"))
68 const scalar incidentAngle
72 scalar n1 =
sqr(nk1_[0]);
76 scalar n2 =
sqr(nk2_[0]);
77 scalar k2 =
sqr(nk2_[1]);
79 scalar sinTheta1 =
sin(incidentAngle);
86 sqr(n2-k2-n1*
sqr(sinTheta1)) + 4*n2*k2
88 + (n2-k2-n1*
sqr(sinTheta1))
96 sqr(n2-k2-n1*
sqr(sinTheta1)) + 4*n2*k2
98 - (n2-k2-n1*
sqr(sinTheta1))
101 scalar cosTheta1 =
cos(incidentAngle);
102 scalar tanTheta1 =
tan(incidentAngle);
113 (
sqr(
sqrt(sqrP) -
sqrt(n1)*sinTheta1*tanTheta1) + sqrQ)
115 (
sqr(
sqrt(sqrP) +
sqrt(n1)*sinTheta1*tanTheta1) + sqrQ)
118 return 0.5*(rhoP + rhoN);
128 return i + 2.0*(-i &
n) *
n;
#define R(A, B, C, D, E, F, K, M)
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
General Fresnel reflection model bewtween a dialectric and an absorbing medium.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
dimensionedScalar tan(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sin(const dimensionedScalar &ds)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar cos(const dimensionedScalar &ds)