public RhoTable(Device device) { double bandGap = device.BandGap; StartEnergy = device.FermiLevel; NumPointsPosition = device.NumPointsPosition; NumPointsEnergy = device.NumPointsEnergy; DensityOfStates DensityOfStates = device.DensityOfStates; double positionSpacing = device.PositionSpacing; EnergySpacing = (StartEnergy - bandGap) / NumPointsEnergy; PrecalcRhoTable = new double[NumPointsPosition, NumPointsEnergy]; for (int i = 0; i < NumPointsPosition; i++) { double position = positionSpacing * i; for (int j = 1; j < NumPointsEnergy; j++) { double energy = StartEnergy + EnergySpacing * j; PrecalcRhoTable[i, j] = PrecalcRhoTable[i, j - 1] + DensityOfStates.GetDensityOfStates(energy, position) * -EnergySpacing; } } }
private double CalcX0() { return(Math.Sqrt(DielectricConstant / (Consts.ElementaryCharge * DensityOfStates.GetDensityOfStates(FermiLevel, 0)))); }