Fix Incorrect Conversion of Feet of Pressure to Meters

#864
This commit is contained in:
lbutler
2025-07-09 23:36:56 -04:00
parent 375a772d2e
commit a9aa752d3a
2 changed files with 10 additions and 5 deletions

View File

@@ -1355,7 +1355,12 @@ int DLLEXPORT EN_setoption(EN_Project p, int option, double value)
case EN_SP_GRAVITY:
if (value <= 0.0) return 213;
if (p->parser.Pressflag == PSI ||
p->parser.Pressflag == KPA ||
p->parser.Pressflag == BAR)
{
Ucf[PRESSURE] *= (value / hyd->SpGrav);
}
hyd->SpGrav = value;
break;
@@ -2285,7 +2290,7 @@ int DLLEXPORT EN_getnodevalue(EN_Project p, int index, int property, double *val
v = 0.0;
if (Node[index].Ke > 0.0)
{
ecfTmp = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : (MperFT * hyd->SpGrav);
ecfTmp = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : MperFT;
v = Ucf[FLOW] / pow((ecfTmp * Node[index].Ke), (1.0 / hyd->Qexp));
}
break;
@@ -2533,7 +2538,7 @@ int DLLEXPORT EN_setnodevalue(EN_Project p, int index, int property, double valu
if (value < 0.0) return 209;
if (value > 0.0)
{
ecfTmp = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : (MperFT * hyd->SpGrav);
ecfTmp = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : MperFT;
value = pow((Ucf[FLOW] / value), hyd->Qexp) / ecfTmp;
}
Node[index].Ke = value;

View File

@@ -453,10 +453,10 @@ void initunits(Project *pr)
strcpy(rpt->Field[PRESSURE].Units, PressUnitsTxt[parser->Pressflag]);
pcf = PSIperFT * hyd->SpGrav; // Default to PSI
if (parser->Pressflag == METERS) pcf = MperFT * hyd->SpGrav;
if (parser->Pressflag == METERS) pcf = MperFT;
if (parser->Pressflag == KPA) pcf = KPAperPSI * PSIperFT * hyd->SpGrav;
if (parser->Pressflag == BAR) pcf = BARperPSI * PSIperFT * hyd->SpGrav;
if (parser->Pressflag == FEET) pcf = 1.0 * hyd->SpGrav;
if (parser->Pressflag == FEET) pcf = 1.0;
strcpy(rpt->Field[QUALITY].Units, "");
ccf = 1.0;