Skip to content
Snippets Groups Projects
Commit 426651e7 authored by Jameson Rollins's avatar Jameson Rollins
Browse files

Merge branch 'cd-noise' into 'master'

Remove carrier density noise from pygwinc

Closes #50

See merge request !90
parents 83625807 2d949c5c
No related branches found
No related tags found
1 merge request!90Remove carrier density noise from pygwinc
Pipeline #141012 failed
......@@ -54,7 +54,6 @@ class Substrate(nb.Budget):
noises = [
ITMThermoRefractive,
ITMCarrierDensity,
SubstrateBrownian,
SubstrateThermoElastic,
]
......
......@@ -227,15 +227,6 @@ Materials:
RefractiveIndex: 3.5 # 3.38 * (1 + 4e-5 * T) (ioffe)
dndT: 1e-4 # ~123K & 1900 nm : http://arxiv.org/abs/physics/0606168
Temp: 123 # mirror temperature [K]
## parameters for semiconductor optics
isSemiConductor: True # we are doing semiconductor optics
CarrierDensity: 1e19 # 1/m^3; carrier density for phosphorous-doped silicon
ElectronDiffusion: 9.7e-3 # m^2/s; electron diffusion coefficient for silicon at 120 K
HoleDiffusion: 3.5e-3 # m^2/s; hole diffusion coefficient for silicon at 120 K
ElectronEffMass: 9.747e-31 # kg; effective mass of each electron 1.07*m_e
HoleEffMass: 8.016e-31 # kg; effective mass of each hole 0.88*m_e
ElectronIndexGamma: -8.8e-28 # m**3; dependence of index of refraction on electron carrier density
HoleIndexGamma: -1.02e-27 # m**3; dependence of index of refraction on hole carrier density
MassRadius: 0.4 # m; 80 cm mCZ silicon
MassThickness: 0.286
......
......@@ -14,7 +14,6 @@ class Voyager(nb.Budget):
CoatingBrownian,
CoatingThermoOptic,
ITMThermoRefractive,
ITMCarrierDensity,
SubstrateBrownian,
SubstrateThermoElastic,
ExcessGas,
......
......@@ -252,15 +252,6 @@ Materials:
RefractiveIndex: 3.5 # 3.38 * (1 + 4e-5 * T) (ioffe)
dndT: 1e-4 # ~123K & 1900 nm : http://arxiv.org/abs/physics/0606168
Temp: 123 # mirror temperature [K]
## parameters for semiconductor optics
isSemiConductor: True # we are doing semiconductor optics
CarrierDensity: 1e19 # 1/m^3; carrier density for phosphorous-doped silicon
ElectronDiffusion: 9.7e-3 # m^2/s; electron diffusion coefficient for silicon at 120 K
HoleDiffusion: 3.5e-3 # m^2/s; hole diffusion coefficient for silicon at 120 K
ElectronEffMass: 9.747e-31 # kg; effective mass of each electron 1.07*m_e
HoleEffMass: 8.016e-31 # kg; effective mass of each hole 0.88*m_e
ElectronIndexGamma: -8.8e-28 # m**3; dependence of index of refraction on electron carrier density
HoleIndexGamma: -1.02e-27 # m**3; dependence of index of refraction on hole carrier density
MassRadius: 0.225 # m; 45 cm mCZ silicon
MassThickness: 0.55
......
......@@ -345,25 +345,6 @@ class ITMThermoRefractive(nb.Noise):
return n * 2 / gPhase**2
class ITMCarrierDensity(nb.Noise):
"""ITM Carrier Density
"""
style = dict(
label='ITM Carrier Density',
color='#929591',
linestyle='--',
)
def calc(self):
finesse = ifo_power(self.ifo)[2]
gPhase = finesse * 2/np.pi
w0, wBeam_ITM, wBeam_ETM = arm_cavity(self.ifo)
n = noise.substratethermal.substrate_carrierdensity(
self.freq, self.ifo.Materials, wBeam_ITM)
return n * 2 / gPhase**2
class SubstrateBrownian(nb.Noise):
"""Substrate Brownian
......
......@@ -12,52 +12,6 @@ from ..const import BESSEL_ZEROS as zeta
from ..const import J0M as j0m
def substrate_carrierdensity(f, materials, wBeam, exact=False):
"""Substrate thermal displacement noise spectrum from charge carrier density fluctuations
For semiconductor substrates.
:f: frequency array in Hz
:materials: gwinc optic materials structure
:wBeam: beam radius (at 1 / e^2 power)
:exact: whether to use adiabatic approximation or exact calculation (False)
:returns: displacement noise power spectrum at :f:, in meters
"""
H = materials.MassThickness
diffElec = materials.Substrate.ElectronDiffusion
diffHole = materials.Substrate.HoleDiffusion
mElec = materials.Substrate.ElectronEffMass
mHole = materials.Substrate.HoleEffMass
cdDens = materials.Substrate.CarrierDensity
gammaElec = materials.Substrate.ElectronIndexGamma
gammaHole = materials.Substrate.HoleIndexGamma
r0 = wBeam/np.sqrt(2)
omega = 2*pi*f
if exact:
def integrand(k, om, D):
return D * k**3 * exp(-k**2 * wBeam**2/4) / (D**2 * k**4 + om**2)
integralElec = np.array([scipy.integrate.quad(lambda k: integrand(k, om, diffElec), 0, inf)[0] for om in omega])
integralHole = np.array([scipy.integrate.quad(lambda k: integrand(k, om, diffHole), 0, inf)[0] for om in omega])
# From P1400084 Heinert et al. Eq. 15
#psdCD = @(gamma,m,int) 2*(3/pi^7)^(1/3)*kBT*H*gamma^2*m/hbar^2*cdDens^(1/3)*int; %units are meters
# FIXME: why the unused argument here?
def psdCD(gamma, m, int_):
return 2/pi * H * gamma**2 * cdDens * int_
psdElec = psdCD(gammaElec, mElec, integralElec)
psdHole = psdCD(gammaHole, mHole, integralHole)
else:
psdElec = 4*H*gammaElec**2*cdDens*diffElec/(pi*r0**4*omega**2)
psdHole = 4*H*gammaHole**2*cdDens*diffHole/(pi*r0**4*omega**2)
return psdElec + psdHole
def substrate_thermorefractive(f, materials, wBeam, exact=False):
"""Substrate thermal displacement noise spectrum from thermorefractive fluctuations
......@@ -87,7 +41,7 @@ def substrate_thermorefractive(f, materials, wBeam, exact=False):
# From P1400084 Heinert et al. Eq. 15
#psdCD = @(gamma,m,int) 2*(3/pi^7)^(1/3)*kBT*H*gamma^2*m/hbar^2*cdDens^(1/3)*int; %units are meters
psdTR = lambda int_: 2/pi * H * beta**2 * kBT * Temp / (rho*C) * int_;
psdTR = lambda int_: 2/pi * H * beta**2 * kBT * Temp / (rho*C) * int_
psd = psdTR(inte)
psd = 2/pi * H * beta**2 * kBT * Temp / (rho*C) * inte
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment