-
impurity density, how does it work ? Question1: why impurity dose not start at x = -0.005 Question2: Can you please give simplest example of [metal]{schottky}[p-semiconductor]{ohmic}[metal] structure Thanks
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
This looks good, in principle. using SolidStateDetectors
using Unitful
using Plots
T = Float32
sim = Simulation{T}(SSD_examples[:InfiniteParallelPlateCapacitor])
sim.detector = SolidStateDetector(sim.detector, SolidStateDetectors.ConstantImpurityDensity{T}(-1e14))
calculate_electric_potential!(
sim,
convergence_limit = 1e-6,
max_tick_distance = (0.002, 1, 1) .* u"cm",
min_tick_distance = (1e-7, 1, 1) .* u"m",
refinement_limits = [0.005, 0.001],
depletion_handling = true
)
# calculate_electric_field!(sim)
plot(
plot(sim.electric_potential, y = 0),
plot(sim.imp_scale, y = 0),
plot(sim.point_types, y = 0),
layout = (3, 1),
aspect_ratio = :none,
size = (800, 800)
) One thing that might explain why you are not seeing any depletion: If I assume using SolidStateDetectors
using Unitful
using Plots
T = Float32
sim = Simulation{T}(SSD_examples[:InfiniteParallelPlateCapacitor])
sim.detector = SolidStateDetector(sim.detector, SolidStateDetectors.ConstantImpurityDensity{T}(-1e20))
calculate_electric_potential!(
sim,
convergence_limit = 1e-6,
max_tick_distance = (0.002, 1, 1) .* u"cm",
min_tick_distance = (1e-7, 1, 1) .* u"m",
refinement_limits = [0.005, 0.001],
depletion_handling = true
)
# calculate_electric_field!(sim)
plot(
plot(sim.electric_potential, y = 0),
plot(sim.imp_scale, y = 0),
plot(sim.point_types, y = 0),
layout = (3, 1),
aspect_ratio = :none,
size = (800, 800)
) However, the depletion propagates so slowly that I also believe that this value is way too high. For using SolidStateDetectors
using Unitful
using Plots
T = Float32
sim = Simulation{T}(SSD_examples[:InfiniteParallelPlateCapacitor])
sim.detector = SolidStateDetector(sim.detector, SolidStateDetectors.ConstantImpurityDensity{T}(-1e16))
a = @animate for V in (20:20:600)u"V"
print(V)
sim.detector = SolidStateDetector(sim.detector, contact_id = 1, contact_potential = V)
calculate_electric_potential!(
sim,
convergence_limit = 1e-6,
max_tick_distance = (0.02, 1, 1) .* u"cm",
min_tick_distance = (1e-6, 1, 1) .* u"m",
refinement_limits = [0.005],
depletion_handling = true,
verbose = false
)
plot(
plot(sim.electric_potential, y = 0, title = V),
plot(sim.imp_scale, y = 0),
plot(sim.point_types, y = 0),
layout = (3, 1),
aspect_ratio = :none,
size = (800, 800),
)
end
gif(a, fps = 5) |
Beta Was this translation helpful? Give feedback.
-
So, to specifically answer your questions: |
Beta Was this translation helpful? Give feedback.
This looks good, in principle.
Code-wise, the only thing you could do is to use a
ConstantImpurityDensity
, if you just have a p-type bulk.This is because they impurity density is only applied to the semiconductor, not the contacts or surroundings: