Model via ring copper and drill mouths (capping), dialog-toggleable
Each via now contributes its ring/pad copper (full-thickness disc of the pad diameter on every spanned layer) and its drill mouth: with "vias filled + capped" (dialog checkbox, default on, VIAS_CAPPED) the mouth carries a CAP_PLATING_UM (15 um) thin copper cap on the outer layers and is an open hole on inner layers; unchecked, mouths are open everywhere. Mouth coverage is area-weighted per cell (4x4 supersampling) through a per-cell thickness map feeding the existing harmonic-mean face machinery, so sub-cell mouths perturb the sheet by their true covered fraction instead of whole cells. Fully swallowed cells leave the mask; the barrel then attaches through the ring via the existing pad-footprint search. THT-pad copper and drills stay outside the model. Ring discs paint before 1D trace chains (chains see them as regular copper), mouths after wide tracks (drills go through trace copper). standalone gains --uncapped. Tests: cap==foil identity against the feature-off reference, strict R(solid) < R(cap) < R(hole) ordering, ring bridging a fill gap that a ringless barrel cannot cross, gentle sub-cell perturbation at coarse grids, and JSON roundtrip of the new fields. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,13 +20,14 @@ RHO_CU_OHM_M = 1.68e-8 # copper resistivity at 20 degC
|
||||
COPPER_THICKNESS_UM: float | None = None # None -> stackup, fallback 35.0 with warning
|
||||
FALLBACK_THICKNESS_UM = 35.0
|
||||
TEST_CURRENT_A = 1.0 # default injected current (dialog/CLI-selectable)
|
||||
VIA_PLATING_UM = 18.0 # barrel plating thickness (always plated).
|
||||
# Via capping is NOT modeled: layer-to-layer
|
||||
# the cap (>=15um per fab spec, thinner than
|
||||
# the foil) is parallel to the annular-ring
|
||||
# contact, not in series; in-plane every via
|
||||
# mouth is treated as solid layer-thickness
|
||||
# copper (error bound: see README).
|
||||
VIA_PLATING_UM = 18.0 # barrel plating thickness (always plated)
|
||||
VIAS_CAPPED = True # filled + capped vias (dialog checkbox):
|
||||
# outer-layer mouths carry a CAP_PLATING_UM
|
||||
# thin copper cap, inner-layer mouths are
|
||||
# holes. False = open mouths on all layers.
|
||||
# Ring/pad copper of vias is modeled either
|
||||
# way; THT-pad copper/drills are not.
|
||||
CAP_PLATING_UM = 15.0 # cap plating thickness (fab spec)
|
||||
INCLUDE_TH_PADS = True # plated through-hole pads stitch layers too
|
||||
SKIN_SIDES = 1 # skin-effect field config: 1 = plane facing a
|
||||
# return plane (conservative), 2 = isolated foil
|
||||
|
||||
Reference in New Issue
Block a user