FresnelLaser.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2017 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::radiation::FresnelLaser
28 
29 Description
30  Modified Fresnel reflection model.
31 
32  \verbatim
33  Implementation of real-time multiple reflection and Fresnel absorption
34  of FresnelLaser beam in keyhole.
35  J. Phys. D: Appl. Phys. 39 (2006) 5372-5378
36  \endverbatim
37 
38 SourceFiles
39  FresnelLaser.C
40 
41 \*---------------------------------------------------------------------------*/
42 
43 #ifndef radiation_FresnelLaser_H
44 #define radiation_FresnelLaser_H
45 
46 #include "reflectionModel.H"
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 namespace radiation
53 {
54 
55 /*---------------------------------------------------------------------------*\
56  Class FresnelLaser Declaration
57 \*---------------------------------------------------------------------------*/
58 
59 class FresnelLaser
60 :
61  public reflectionModel
62 {
63 
64  // Private data
65 
66  //- Model constant
67  scalar epsilon_;
68 
69 
70 public:
71 
72  //- Runtime type information
73  TypeName("FresnelLaser");
74 
75  //- Construct from components
76  FresnelLaser(const dictionary& dict, const fvMesh& mesh);
77 
78  //- Destructor
79  virtual ~FresnelLaser() = default;
80 
81 
82  // Member Functions
83 
84  //- Return reflected direction
85  virtual vector R(const vector& incident, const vector& n) const;
86 
87  //- Return reflectivity from medium1 to medium2 and a incident angle.
88  // nk1 = (n1 - i k1) from medium 1.
89  virtual scalar rho(const scalar incidentAngle) const;
90 };
91 
92 
93 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
94 
95 } // End namespace radiation
96 } // End namespace Foam
97 
98 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
99 
100 #endif
101 
102 // ************************************************************************* //
Foam::radiation::FresnelLaser::FresnelLaser
FresnelLaser(const dictionary &dict, const fvMesh &mesh)
Construct from components.
Foam::radiation::FresnelLaser::R
virtual vector R(const vector &incident, const vector &n) const
Return reflected direction.
Foam::radiation::FresnelLaser::TypeName
TypeName("FresnelLaser")
Runtime type information.
n
label n
Definition: TABSMDCalcMethod2.H:31
reflectionModel.H
radiation
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:6
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::radiation::FresnelLaser::~FresnelLaser
virtual ~FresnelLaser()=default
Destructor.
Foam::radiation::FresnelLaser::rho
virtual scalar rho(const scalar incidentAngle) const
Return reflectivity from medium1 to medium2 and a incident angle.
Foam::Vector< scalar >
Foam::radiation::FresnelLaser
Modified Fresnel reflection model.
Definition: FresnelLaser.H:58
Foam::radiation::reflectionModel
Base class for radiation scattering.
Definition: reflectionModel.H:53