Go to the documentation of this file.
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;
dimensionedScalar tan(const dimensionedScalar &ds)
dimensionedScalar sin(const dimensionedScalar &ds)
virtual scalar rho(const scalar incidentAngle) const
virtual vector R(const vector &incident, const vector &n) const
Fresnel(const dictionary &dict, const fvMesh &mesh)
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
Macros for easy insertion into run-time selection tables.
Vector< scalar > vector
A scalar version of the templated Vector.
defineTypeNameAndDebug(cloudAbsorptionEmission, 0)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sqrt(const dimensionedScalar &ds)
addToRunTimeSelectionTable(absorptionEmissionModel, cloudAbsorptionEmission, dictionary)
dimensionedScalar cos(const dimensionedScalar &ds)