da3d4e0e
dmayerich
Initial commit.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#ifndef GLOBALS_H
#define GLOBALS_H
#include <vector>
#include <string>
#include <iostream>
#include "PerformanceData.h"
#include <complex>
using namespace std;
struct SpecPair{
float nu;
float A;
};
struct Material{
vector<float> nu;
vector<complex<float>> eta;
string name;
};
enum SpecType {AbsorbanceSpecType, IntensitySpecType};
enum OpticsType {TransmissionOpticsType, ReflectionOpticsType};
extern PerformanceData PD;
extern vector<vector<SpecPair>> RefSpectrum;
extern int currentSpec;
extern vector<SpecPair> SimSpectrum;
//IO Functions
vector<SpecPair> LoadSpectrum(string filename);
vector<SpecPair> SetReferenceSpectrum(char* text);
void SaveState();
void LoadState();
void SetDefaults();
void SaveSimulation(string fileName);
void SaveK(string fileName);
void SaveN(string fileName);
void LoadMaterial(string fileNameK, string fileNameN, string materialName);
void LoadMaterial(string fileNameK, string materialName);
//Display Functions
void FitDisplay();
//Update Functions
void UpdateDisplay();
void SimulateSpectrum();
void cudaKramersKronig(float* cpuN, float* cpuK, int nVals, float nuStart, float nuEnd, float nOffset);
void cudaComputeSpectrum(float* cpuI, float* cpuB, float* alpha,
int Nl, int nLambda, float oThetaI, float oThetaO, float cThetaI, float cThetaO, int nSamples);
//Window Parameters
extern float nuMin;
extern float nuMax;
extern float aMin;
extern float aMax;
extern float dNu;
extern bool dispRefSpec;
extern bool dispSimSpec;
extern bool dispSimK;
extern bool dispMatK;
extern bool dispSimN;
extern bool dispMatN;
extern SpecType dispSimType;
extern bool dispNormalize;
extern float dispNormFactor;
extern float dispScaleK;
extern float dispScaleN;
//material parameters
extern float radius;
extern float baseIR;
extern float cA;
extern vector<SpecPair> EtaK;
extern vector<SpecPair> EtaN;
extern bool applyMaterial;
//extern vector<SpecPair> KMaterial;
//extern vector<SpecPair> NMaterial;
extern vector<Material> MaterialList;
extern int currentMaterial;
void ChangeAbsorbance();
void SetMaterial();
//optical parameters
extern float cNAi;
extern float cNAo;
extern float oNAi;
extern float oNAo;
extern OpticsType opticsMode;
extern bool pointDetector;
extern int objectiveSamples;
//fitting parameters
extern float minMSE;
extern int maxFitIter;
void EstimateMaterial();
extern float scaleI0;
extern float refSlope;
float ComputeDistortion();
void MinimizeDistortion();
#endif
|