rl_raysuplib
1.0.13
rl_Multilayer_rdb.h
1
#ifndef rl_Multilayer_rdb_h_INCLUDED
2
#define rl_Multilayer_rdb_h_INCLUDED
3
4
// File: rl_Multilayer_rdb.h
5
// Author: Terry Gaetz
6
7
/* --8<--8<--8<--8<--
8
*
9
* Copyright (C) 2006 Smithsonian Astrophysical Observatory
10
*
11
* This file is part of rl_ray
12
*
13
* rl_ray is free software; you can redistribute it and/or
14
* modify it under the terms of the GNU General Public License
15
* as published by the Free Software Foundation; either version 2
16
* of the License, or (at your option) any later version.
17
*
18
* rl_ray is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
22
*
23
* You should have received a copy of the GNU General Public License
24
* along with this program; if not, write to the
25
* Free Software Foundation, Inc.
26
* 51 Franklin Street, Fifth Floor
27
* Boston, MA 02110-1301, USA
28
*
29
* -->8-->8-->8-->8-- */
30
31
#include <cstddef>
// ptrdiff_t
32
#include <rl_raylib/rl_Traits.h>
// rl_Traits::rl_DielectricPOD
33
#include <rl_raylib/rl_Multilayer.h>
// rl_Multilayer
34
35
//########################################################################
36
// rl_Multilayer_rdb
37
//########################################################################
38
39
40
//
41
/***
42
* /class rl_Multilayer_rdb
43
*
44
* Construct or initialize rl_Multilayer based on contents of an /rdb table.
45
* The rdb table is assumed to contain one row for each layer
46
* of the multilayer, ordered from the top (adjacent to vacuum) layer
47
* to the substrate (conventionally with thickness of 1.e30).
48
* The rdb table is assumed to contain the following columns:
49
* - material: an ascii string containing the compostion of
50
* the layer; used for labeling and i/o. This column is required.
51
* - thickness: thickness of the layer in Angstroms
52
* - bulkdensity: relative bulk density of the layer; 1.0 is full
53
* nominal bulk density. This column is required.
54
* - roughness_type: type of interlayer grading.
55
* This column is optional; if it is not present, "none" is assumed.
56
* Currently acceptable values are (case-insensitive):
57
* - none: no interlayer grading
58
* - DW_RSAO: Debye-Waller factor (SAO variant on Windt's DW,
59
* taking only the real part of the factor)
60
* - DW_CSAO: Debye-Waller factor (SAO variant on Windt's DW,
61
* using the complex factor)
62
* - DW_SPILLER: Debye-Waller factor (variant on DW from a paper by
63
* Spiller (1988)
64
* - MDW: "Modified Debye-Waller" factor
65
* - NC: Nevot-Croce factor
66
* - srough: interlayer grading "roughness" sigma (in Angstroms);
67
* This column is required only if the roughness_type column is present.
68
* - pathname</code> - This contains a string containing the filename
69
* (optionally prefixed with a path) for the /rdb table containing the
70
* optical constant data for this layer. The layer is optical
71
* constants are initialized using rl_DielectricPOD_rdb to read
72
* the /rdb data.
73
*/
74
class
rl_Multilayer_rdb
75
:
public
rl_Multilayer
76
{
77
public
:
78
82
~rl_Multilayer_rdb();
83
98
rl_Multilayer_rdb(
char
const
rdb_file[], rl_Traits::EInterpMode interp_mode );
99
113
void
init_from_rdb(
char
const
rdb_file[], rl_Traits::EInterpMode interp_mode );
114
};
115
116
// rl_Multilayer_rdb_h_INCLUDED
117
#endif
data
pelf1
dj
hd0
axaf
src
rl_raysuplib
rl_raysuplib
rl_Multilayer_rdb.h
Generated by
1.8.15