Skip to content

Point types documentation and FDD calculation#616

Open
claudiaalvgar wants to merge 4 commits into
JuliaPhysics:mainfrom
claudiaalvgar:point_types_documentation
Open

Point types documentation and FDD calculation#616
claudiaalvgar wants to merge 4 commits into
JuliaPhysics:mainfrom
claudiaalvgar:point_types_documentation

Conversation

@claudiaalvgar

Copy link
Copy Markdown
Collaborator

A new manual page is added to document the PointTypes behaviour. The six bit flags, their combined values, how they are used by is_depleted, get_active_volume, and estimate_depletion_voltage to exclude the inactive layer, how mark_inactivelayer_bits! propagates the inactive layer flag outward from the doped contact, and a detailed description of how the new get_FDD function extracts the two contours and computes the FDD thickness.

Example plots show the inner contour overlaid on the point-type map and a heat-map of FDD thickness across the detector cross-section.
FDD_example

The new function get_FDD, computes the Full Depletion Depth (FDD), the thickness of the inactive lithium-doped layer. For each inner contour point it returns the coordinates of the transition between the inactive layer and the active bulk (r_inner/z_inner), the coordinates of the nearest point on the doped contact surface (r_outer/z_outer), and the perpendicular thickness of the inactive layer.
When the impurity model is PtypePNJunctionImpurityDensity or ThermalDiffusionLithiumDensity, the thickness is computed analytically via ConstructiveSolidGeometry.distance_to_surface, giving exact perpendicular distances for any surface orientation (vertical, horizontal, or diagonal). For other models it falls back to the Euclidean distance to the nearest contact-surface grid tick. Both Cylindrical and Cartesian variants are implemented.

The outer contour (r_outer/z_outer) is collected from grid ticks that carry inactive_contact_bit directly, which lie on the contact surface itself since SSD places grid ticks at contact boundaries. This means that for axis-aligned surfaces the Euclidean distance between inner and outer contour points equals the analytical thickness exactly; for diagonal surfaces (e.g. a cone face) a small residual difference remains because the nearest contact tick is not the exact perpendicular foot.
A helper function _dist_to_inactive_contact is added to extract the distance_to_contact from the impurity density model, or return nothing to trigger the Euclidean fallback. Tests for get_FDD are added to test_depletion.jl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant