1 | // Dominique YVON, CEA/DAPNIA/SPP 02/2000
|
---|
2 | #include <math.h>
|
---|
3 | #ifdef __MWERKS__
|
---|
4 | #include "unixmac.h"
|
---|
5 | #endif
|
---|
6 |
|
---|
7 | #include "abslightsource.h"
|
---|
8 | #include "lsrcradspec.h"
|
---|
9 |
|
---|
10 |
|
---|
11 |
|
---|
12 | UnitVector AbsLightSource::GetVSrcCenter() {
|
---|
13 | //Make sense only for QuasiPointSource
|
---|
14 | cerr<<"Call for GetVSrcCenter() for a non QuasiPointSource: exit"<<endl;
|
---|
15 | exit(-1);
|
---|
16 | UnitVector vec;
|
---|
17 | return vec;
|
---|
18 | }
|
---|
19 |
|
---|
20 | double AbsLightSource::planckSpecDiff(double DTempe, double freq, double Tempe)
|
---|
21 | { // W/m2/st/Hz
|
---|
22 | double h_kT=4.800e-11/Tempe;
|
---|
23 | double prefac= 2*6.626e-34*6.626e-34/(9.e16*1.38e-23*Tempe*Tempe);
|
---|
24 | //
|
---|
25 | return prefac*pow(freq,4)*exp(h_kT*freq)/pow((exp(h_kT*freq)-1.),2)*DTempe;
|
---|
26 | }
|
---|
27 |
|
---|
28 | double AbsLightSource::planckSpectrum(double freq, double Tempe){
|
---|
29 | double h_kT=4.800e-11/Tempe;
|
---|
30 | double prefac=2.*6.626e-34/9.e16; //2*h/c^2
|
---|
31 | return prefac*freq*freq*freq/(exp(h_kT*freq)-1.);
|
---|
32 | // units (J m-3 Hz-1)
|
---|
33 | // Very usefull spectrum!
|
---|
34 | // W/m2/st/Hz
|
---|
35 | }
|
---|
36 |
|
---|
37 | LSrcRadSpec AbsLightSource::getPowerSpec(double theta,double phi) {
|
---|
38 | // Return Object including power spectrum versus frequency in direction theta, phi
|
---|
39 | // (W/m2/Hz/St)
|
---|
40 | // Not recommended for intensive use. May Be inefficient or inaccurrate
|
---|
41 | return LSrcRadSpec(this, theta, phi);
|
---|
42 | }
|
---|
43 |
|
---|
44 | void AbsLightSource::print(ostream& OutStr) const
|
---|
45 | { OutStr<<"Source de lumiere: "<<Name<<endl;
|
---|
46 | OutStr<<"Resolution: "<< resolution<<endl;
|
---|
47 | return ;
|
---|
48 | }
|
---|
49 |
|
---|