Releases: JuliaPhysics/SolidStateDetectors.jl
Releases · JuliaPhysics/SolidStateDetectors.jl
v0.11.0
SolidStateDetectors v0.11.0
SolidStateDetectors.jl now provides support for simulating inactive layers. This includes:
- new impurity density models to define highly-doped contacts,
- new charge trapping models, based on either the drift length and thermal motion, the drift time, ...
- the possibility to combine charge trapping models to simulate charge trapping in the inactive layer differently than in the bulk.
All the changes are combined in PR #540.
Find an example for inactive layer simulations and the determination of charge-collection efficiency curves in this tutorial.
Major breaking changes
- #489:
The internal implementation ofCartesianPointandCylindricalPointis updated.CartesianPointandCylindricalPointare not subtypes ofStaticVector{3}anymore, and some semantically incorrect operations (point + point,mean(::Vector{Point}), ...) are not allowed anymore.- There is a new method to determine the
barycenterofCartesianPoints(replacingStatistics.mean). CartesianVectorstill has allVectorfunctionality, and points can be converted to vectors usingcartesian_zero:
vector = point - cartesian_zero,cartesian_zero + vector = point.
- #560:
CartesianPointsare now saved with their own "datatype" to HDF5 withLegendHDF5IO - #562:
The temperature dependence implementation forADLChargeDriftModelandADL2016ChargeDriftModelis completely reworked.
The old temperature dependence models (linear,boltzmann,powerlaw) are discontinued and replaced by a newPowerLawTemperatureModelbased on M. Omar and L. Reggiani (1987). - #573:
The config file syntax for linear and cylindrical impurity/charge densities is updated.
Instead of defining anoffsetandgradientfor each grid dimension, the config file now expects one fieldoffsetfor the overall offset andgradientwith fields for each dimension. Find an example with the new syntax here.
Minor changes
- #572:
The defaultmin_tick_distanceis not hard-coded to 10µm anymore, but takes the grid dimensions into account to provide a good default for smaller-scale simulations. - #580:
Renamed two functions intable_utils.jlto fix typos:blow_up_to_commen_length --> blow_up_to_common_lengthgroub_by_evt_number --> group_by_evt_number
- #554:
Removed deprecation warnings related with breaking changes from v0.6 to v0.7. - #590:
Removedold_estimate_depletion_voltage.
Merged pull requests:
- Add support for simulation for dead layer-Step1: position dependent mobility function (#475) (@zpdg)
- Add support for simulation for dead layer-Step2: DiffusionModelTiedWithDrifting (#476) (@zpdg)
- Add support for simulation for dead layer-Step3: ConstantLifetimeChargeTrappingModel (#480) (@zpdg)
- Change AbstractCoordinatePoint to not be a FieldVector (#489) (@oschulz)
- Add support for simulation for dead layer-Step4: impurity model based on the lithium thermal diffusion process (#493) (@zpdg)
- Add support for simulation for dead layer-Step5: charge drift model (#496) (@zpdg)
- Add support for simulation for dead layer: optimization, more geometry support, tutorials, etc (#502) (@zpdg)
- Add support for simulation for dead layer - Step6: Support using point types to define the inactive layer (#512) (@claudiaalvgar)
- Add support for simulation for dead layer - Step7: Support plotting full range of point types (#525) (@fhagemann)
- Add support for simulation for dead layer - Step8: Refactor combining charge trapping models for bulk and inactive layer (#532) (@claudiaalvgar)
- Add support for simulation for dead layer - Step9: Identification of the inactive layer contact and allow for depletion voltage calculation with inactive layer (#535) (@claudiaalvgar)
- Add support for simulation for dead layer (#540) (@fhagemann)
- Fix PtypePNJunction Impurity Density to read bulk_impurity_density from yaml (#546) (@claudiaalvgar)
- Add keyword argument to return waveforms in units of energy (#549) (@fhagemann)
- Fix plotting
CartesianPointwith correct units (#551) (@fhagemann) - Use vectors instead of points to
move_charges_inside_semiconductor(#553) (@hervasa2) - Remove old deprecation warnings (#554) (@fhagemann)
- Fix parsing of linear and cylindrical charge densities (#555) (@fhagemann)
- Fix
getVeforADL2016ChargeDriftModel(#556) (@fhagemann) - Allow creating
ConstantImpurityDensitywith units (#557) (@fhagemann) - Fix plotting methods with new
CartesianPointimplementation (#558) (@fhagemann) - Add option to split MC-table events into separate events by time (#559) (@sm2909)
- Create new datatype when saving
CartesianPointto HDF5 usingLegendHDF5IO(#560) (@claudiaalvgar) - Adding temperature dependence to drift model parameters (#562) (@hervasa2)
- Update
DetectorHitEventsand add documentation (#563) (@fhagemann) - Bump actions/checkout from 5 to 6 (#566) (@dependabot[bot])
- Bump minimum compat for JSON to 1.1 (#569) (@fhagemann)
- Test Coverage for CartesianPoint: Part 1 (#570) (@claudiaalvgar)
- Test Coverage for CartesianPoint: Part 2 (#571) (@claudiaalvgar)
- Adjust default
min_tick_distancebased on the grid dimensions (#572) (@claudiaalvgar) - Redefinition of offsets in linear and cylindrical impurity/charge densities (#573) (@fhagemann)
- Update
_inforConeandTorus(#575) (@claudiaalvgar) - Fix formulas in docs on electric field (#576) (@fhagemann)
- Refactor ThermalDiffusionLithiumDensity to remove hardcoded parameters (#578) (@SimonePellegrini)
- Test coverage for AbstractCoordinatePoint and AbstractVector (#580) (@benedikt-nagler)
- Extend test coverage for CartesianPoint and CylindricalPoint (#581) (@claudiaalvgar)
- Implement
distance_to_surfacefor all surface primitives (#583) (@claudiaalvgar) - Run
Downgradetests on julia version1(#584) (@fhagemann) - Further extend code coverage (#585) (@fhagemann)
- Pass correct type when creating
RBArrayandRBExtBy2Array(#586) (@fhagemann) - Increase code coverage for CSG (#587) (@fhagemann)
- Fix
distance_to_surfaceforConeMantle(#588) (@fhagemann) - Implement missing cases in IO of Cones (#589) (@fhagemann)
- Allow input to
estimate_depletion_voltageto have units (#590) (@fhagemann) - Fix
normalorientation insurfacesforOpenPrimitives(#591) (@fhagemann) - Update documentation for 0.11 release (#593) (@fhagemann)
Closed issues:
- Fully support
CartesianPointswith units (#183) - The user should be able to choose the "unit" of waveforms. (#284)
- Update default value of
min_tick_distancein potential calculation (#448) - Add more documentation on boundary types when defining grids in config files (#479)
- Add option to cluster detector hits by time (#523)
- Plotting
CartesianPointsdoes not seem to be correct (#550) - Operations with CartesianPoints not supported and causing errors (#552)
simulate_waveformsTable columns types (#561)- Cloud size (#564)
- Remove hardcoded values from
ThermalDiffusionLithiumDensityandInactiveLayerChargeDriftModel(#567) - Check all implementations of
distance_to_surface(#582)
v0.10.28
SolidStateDetectors v0.10.28
Merged pull requests:
- [Backport 0.10] Fix validating the input to linear and cylindrical impurity/charge density (#574) (@fhagemann)
- [Backport 0.10] Enhancements and bug fixes (#592) (@fhagemann)
v0.10.27
SolidStateDetectors v0.10.27
Merged pull requests:
- Switch
SplineBouleImpurityDensitytoFritschCarlsonMonotonicInterpolation(#547) (@hervasa2) - Make
correctionsof impurity densities optional (#548) (@fhagemann)
v0.10.26
SolidStateDetectors v0.10.26
Merged pull requests:
- Fix
offsetfor linear and cylindrical impurity densities (#544) (@fhagemann) - Add
SplineBouleImpurityDensity(#545) (@hervasa2)
v0.10.25
SolidStateDetectors v0.10.25
Merged pull requests:
- Add
geometry_checkto LegendHDF5IO method ofsimulate_waveforms(#541) (@fhagemann)
v0.10.24
SolidStateDetectors v0.10.24
Merged pull requests:
v0.10.23
SolidStateDetectors v0.10.23
Merged pull requests:
- CompatHelper: bump compat for JSON to 1, (keep existing compat) (#538) (@github-actions[bot])
- Fix weighting potential calculation using floating passives on Cartesian grids (#539) (@fhagemann)
v0.10.22
SolidStateDetectors v0.10.22
Merged pull requests:
- Include
Geant4tests onpre(#533) (@fhagemann) - Fix condition to break loop based on max iterations (#536) (@hervasa2)
v0.10.21
SolidStateDetectors v0.10.21
Merged pull requests:
- Bump julia-actions/julia-downgrade-compat from 1 to 2 (#519) (@dependabot[bot])
- Exclude plot recipes from codecov (#520) (@fhagemann)
- CompatHelper: bump compat for DataStructures to 0.19, (keep existing compat) (#521) (@github-actions[bot])
- Bump actions/checkout from 4 to 5 (#524) (@dependabot[bot])
- Fix bug in source emission in
Geant4extension (#526) (@fhagemann) - Correct default value in
calculate_potential!docstrings (#531) (@fhagemann)
Closed issues:
v0.10.20
SolidStateDetectors v0.10.20
Merged pull requests:
- Improve IO by using
_parse_valuemore consistently (#515) (@fhagemann) - Remove explicit definition of axis units in plot recipes (#516) (@fhagemann)
- Exclude
Geant4tests onpre(#517) (@fhagemann)
Closed issues:
- How to compute a capacitance-voltage curve (#514)
