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

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

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 */