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;
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.
Fresnel(const dictionary &dict, const fvMesh &mesh)
Construct from components.
virtual scalar rho(const scalar incidentAngle) const
Return reflectivity from medium1 to medium2 and a incident angle.
virtual vector R(const vector &incident, const vector &n) const
Return reflected direction.
Base class for radiation scattering.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Namespace for radiation modelling.
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)