diff --git a/examples/example_config_files/public_ivc_config.yaml b/examples/example_config_files/public_ivc_config.yaml index 2ee5c8c06..d8d4695d6 100644 --- a/examples/example_config_files/public_ivc_config.yaml +++ b/examples/example_config_files/public_ivc_config.yaml @@ -151,4 +151,4 @@ surroundings: - -0.05 charge_density: name: constant - value: 0 # Reasonable density: +2e-11 # => 2*10⁻¹1 C/m⁻³ + value: 0C/m^3 # Reasonable density: +2e-11 # => 2*10⁻¹¹ C/m³ diff --git a/examples/example_config_files/public_ivc_trapping_config.yaml b/examples/example_config_files/public_ivc_trapping_config.yaml index 73a4f2826..c97e91daa 100644 --- a/examples/example_config_files/public_ivc_trapping_config.yaml +++ b/examples/example_config_files/public_ivc_trapping_config.yaml @@ -156,4 +156,4 @@ surroundings: - -0.05 charge_density: name: constant - value: 0 # Reasonable density: +2e-11 # => 2*10⁻¹1 C/m⁻³ + value: 0C/m^3 # Reasonable density: +2e-11 # => 2*10⁻¹¹ C/m³ diff --git a/src/ChargeDensities/ConstantChargeDensity.jl b/src/ChargeDensities/ConstantChargeDensity.jl index 6d55419aa..a8805695f 100644 --- a/src/ChargeDensities/ConstantChargeDensity.jl +++ b/src/ChargeDensities/ConstantChargeDensity.jl @@ -28,6 +28,6 @@ end function ChargeDensity(T::DataType, t::Val{:constant}, dict::AbstractDict, input_units::NamedTuple) - ρ::T = haskey(dict, "value") ? _parse_value(T, dict["value"], input_units.length^(-3)) : T(0) + ρ::T = haskey(dict, "value") ? _parse_value(T, dict["value"], internal_charge_unit * input_units.length^(-3)) : T(0) ConstantChargeDensity{T}( ρ ) end diff --git a/src/ChargeDensities/CylindricalChargeDensity.jl b/src/ChargeDensities/CylindricalChargeDensity.jl index 148d5d029..96c952712 100644 --- a/src/ChargeDensities/CylindricalChargeDensity.jl +++ b/src/ChargeDensities/CylindricalChargeDensity.jl @@ -30,8 +30,8 @@ end function ChargeDensity(T::DataType, t::Val{:cylindrical}, dict::AbstractDict, input_units::NamedTuple) offsets, gradients = zeros(T,3), zeros(T,3) - density_unit = input_units.length^(-3) - density_gradient_unit = input_units.length^(-4) + density_unit = internal_charge_density * input_units.length^(-3) + density_gradient_unit = internal_charge_density * input_units.length^(-4) if prod(map(k -> k in ["r","z"], collect(keys(dict)))) @warn "Only r and z are supported in the cylindrical charge density model.\nChange the charge density model in the config file or remove all other entries." end if haskey(dict, "r") if haskey(dict["r"], "init") offsets[1] = _parse_value(T, dict["r"]["init"], density_unit) end diff --git a/src/ChargeDensities/LinearChargeDensity.jl b/src/ChargeDensities/LinearChargeDensity.jl index f26787d4c..6aae46c0c 100644 --- a/src/ChargeDensities/LinearChargeDensity.jl +++ b/src/ChargeDensities/LinearChargeDensity.jl @@ -29,8 +29,8 @@ end function ChargeDensity(T::DataType, t::Val{:linear}, dict::AbstractDict, input_units::NamedTuple) offsets, gradients = zeros(T,3), zeros(T,3) - density_unit = input_units.length^(-3) - density_gradient_unit = input_units.length^(-4) + density_unit = internal_charge_unit * input_units.length^(-3) + density_gradient_unit = internal_charge_unit * input_units.length^(-4) if prod(map(k -> k in ["x","y","z"], collect(keys(dict)))) @warn "Only x, y and z are supported in the linear charge density model.\nChange the charge density model in the config file or remove all other entries." end if haskey(dict, "x") if haskey(dict["x"], "init") offsets[1] = _parse_value(T, dict["x"]["init"], density_unit) end diff --git a/test/test_real_detectors.jl b/test/test_real_detectors.jl index 4c8b1a52a..7b3b7ff3d 100644 --- a/test/test_real_detectors.jl +++ b/test/test_real_detectors.jl @@ -159,14 +159,14 @@ end sim = Simulation{T}(SSD_examples[:Cone2D]) timed_calculate_electric_potential!(sim, convergence_limit = 1e-6, device_array_type = device_array_type, refinement_limits = missing, verbose = false) - sim_alt = Simulation{T}(SSD_examples[:Cone2D]) + sim_alt = Simulation{T}(SSD_examples[:ConeSym]) timed_calculate_electric_potential!(sim_alt, convergence_limit = 1e-6, device_array_type = device_array_type, refinement_limits = missing, verbose = false) # Test equal initial grid spacing in r and z, no matter the phi range @test sim.electric_potential.grid.r == sim_alt.electric_potential.grid.r @test sim.electric_potential.grid.z == sim_alt.electric_potential.grid.z - idx = findall(pt -> SolidStateDetectors.is_pn_junction_point_type(pt), sim.point_types.data) + idx = findall(pt -> pt & SolidStateDetectors.bulk_bit > 0, sim.point_types.data) @test maximum(abs.(sim_alt.electric_potential.data[idx] .- sim.electric_potential.data[idx])) .< T(0.2) end @timed_testset "SigGen PPC" begin