A couple of corrections to the last commit, where the equation for

computing the amount of fringe shielding was wrong.  This fixes
one of my example cases, but not the other one, so I still need to
pin down a condition that can result in negative capacitance.
This commit is contained in:
Tim Edwards
2023-03-17 20:47:08 -04:00
parent edb05fb3d1
commit ca0cb1322a
2 changed files with 4 additions and 4 deletions
+2 -2
View File
@@ -1085,9 +1085,9 @@ CmdExtract(w, cmd)
/* argv[2] is a halo distance */
dist = cmdParseCoord(w, argv[2], TRUE, TRUE);
if (dist <= 0)
if (dist < 0)
{
TxError("Bad halo distance. Halo must be strictly positive.");
TxError("Bad halo distance. Halo must be non-negative.");
return;
}
else
+2 -2
View File
@@ -1180,7 +1180,7 @@ extSideOverlapHalo(tp, esws)
}
if (rtp != rbp)
{
efflength = (cfrac * (double)length) * (1.0 - sov.so_coupfrac);
efflength = (cfrac - sov.so_coupfrac) * (double)length;
cap += e->ec_cap * efflength;
subfrac += sov.so_subfrac; /* Just add the shielded fraction */
@@ -1209,7 +1209,7 @@ extSideOverlapHalo(tp, esws)
if (DBIsContact(outtype))
outtype = DBPlaneToResidue(outtype, esws->plane_of_boundary);
efflength = (sfrac * (double)length) * (1.0 - subfrac);
efflength = (sfrac - subfrac) * (double)length;
subcap = ExtCurStyle->exts_perimCap[ta][0] * efflength;
rbp->nreg_cap -= subcap;
/* Ignore residual error at ~zero zeptoFarads. Probably */