Merge branch 'dev' into dev

This commit is contained in:
Abel Heinsbroek
2024-05-31 21:36:57 +02:00
committed by GitHub
7 changed files with 22 additions and 11 deletions

View File

@@ -54,3 +54,4 @@ This document describes the changes and updates that have been made in version 2
- Continuous barrier functions were added to constrain emitter flows to allowable values. - Continuous barrier functions were added to constrain emitter flows to allowable values.
- The `EN_openx` function has been added to enable the opening of input files with formatting errors through the API. This allows users to continue using toolkit functions even when such errors are present. - The `EN_openx` function has been added to enable the opening of input files with formatting errors through the API. This allows users to continue using toolkit functions even when such errors are present.
- The `EN_getnodesvalues` and `EN_getlinksvalues` were added to retrieve a property value for all nodes or links in the network. - The `EN_getnodesvalues` and `EN_getlinksvalues` were added to retrieve a property value for all nodes or links in the network.
- Fixed a bug in EN_setnodevalue with EN_EMITTER option that could cause NaN results.

View File

@@ -2449,6 +2449,7 @@ int DLLEXPORT EN_setnodevalue(EN_Project p, int index, int property, double valu
if (value < 0.0) return 209; if (value < 0.0) return 209;
if (value > 0.0) value = pow((Ucf[FLOW] / value), hyd->Qexp) / Ucf[PRESSURE]; if (value > 0.0) value = pow((Ucf[FLOW] / value), hyd->Qexp) / Ucf[PRESSURE];
Node[index].Ke = value; Node[index].Ke = value;
if (hyd->EmitterFlow[index] == 0.0) hyd->EmitterFlow[index] = 1.0;
break; break;
case EN_INITQUAL: case EN_INITQUAL:
@@ -3428,6 +3429,12 @@ int DLLEXPORT EN_deletelink(EN_Project p, int index, int actionCode)
if (net->Valve[i].Link > index) net->Valve[i].Link -= 1; if (net->Valve[i].Link > index) net->Valve[i].Link -= 1;
} }
// Reduce the number of pipes count by one if it is a pipe.
if (linkType == PIPE)
{
net->Npipes--;
}
// Delete any pump associated with the deleted link // Delete any pump associated with the deleted link
if (linkType == PUMP) if (linkType == PUMP)
{ {

View File

@@ -286,6 +286,7 @@ void closehyd(Project *pr)
{ {
freesparse(pr); freesparse(pr);
freematrix(pr); freematrix(pr);
freeadjlists(pr);
} }

View File

@@ -1,13 +1,13 @@
/* /*
****************************************************************************** ******************************************************************************
Project: OWA EPANET Project: OWA EPANET
Version: 2.2 Version: 2.3
Module: inpfile.c Module: inpfile.c
Description: saves network data to an EPANET formatted text file Description: saves network data to an EPANET formatted text file
Authors: see AUTHORS Authors: see AUTHORS
Copyright: see AUTHORS Copyright: see AUTHORS
License: see LICENSE License: see LICENSE
Last Updated: 04/30/2023 Last Updated: 05/11/2024
****************************************************************************** ******************************************************************************
*/ */
@@ -682,7 +682,7 @@ int saveinpfile(Project *pr, const char *fname)
fprintf(f, "\n PATTERN %s", net->Pattern[hyd->DefPat].ID); fprintf(f, "\n PATTERN %s", net->Pattern[hyd->DefPat].ID);
fprintf(f, "\n DEMAND MULTIPLIER %-.4f", hyd->Dmult); fprintf(f, "\n DEMAND MULTIPLIER %-.4f", hyd->Dmult);
fprintf(f, "\n EMITTER EXPONENT %-.4f", 1.0 / hyd->Qexp); fprintf(f, "\n EMITTER EXPONENT %-.4f", 1.0 / hyd->Qexp);
fprintf(f, "\n EMITTER BACKFLOW %s", BackflowTxt[hyd->EmitBackFlag]); fprintf(f, "\n BACKFLOW ALLOWED %s", BackflowTxt[hyd->EmitBackFlag]);
fprintf(f, "\n VISCOSITY %-.6f", hyd->Viscos / VISCOS); fprintf(f, "\n VISCOSITY %-.6f", hyd->Viscos / VISCOS);
fprintf(f, "\n DIFFUSIVITY %-.6f", qual->Diffus / DIFFUS); fprintf(f, "\n DIFFUSIVITY %-.6f", qual->Diffus / DIFFUS);
fprintf(f, "\n SPECIFIC GRAVITY %-.6f", hyd->SpGrav); fprintf(f, "\n SPECIFIC GRAVITY %-.6f", hyd->SpGrav);

View File

@@ -7,7 +7,7 @@ Description: parses network data from a line of an EPANET input file
Authors: see AUTHORS Authors: see AUTHORS
Copyright: see AUTHORS Copyright: see AUTHORS
License: see LICENSE License: see LICENSE
Last Updated: 09/28/2023 Last Updated: 05/11/2024
****************************************************************************** ******************************************************************************
*/ */
@@ -1832,7 +1832,7 @@ int optionchoice(Project *pr, int n)
** UNBALANCED STOP/CONTINUE {Niter} ** UNBALANCED STOP/CONTINUE {Niter}
** PATTERN id ** PATTERN id
** DEMAND MODEL DDA/PDA ** DEMAND MODEL DDA/PDA
** EMITTER BACKFLOW YES/NO ** BACKFLOW ALLOWED YES/NO
**-------------------------------------------------------------- **--------------------------------------------------------------
*/ */
{ {
@@ -1956,11 +1956,11 @@ int optionchoice(Project *pr, int n)
hyd->DemandModel = choice; hyd->DemandModel = choice;
} }
// EMITTER BACKFLOW // Emitter BACKFLOW ALLOWED
else if (match(parser->Tok[0], w_EMITTER)) else if (match(parser->Tok[0], w_BACKFLOW))
{ {
if (n < 2) return 0; if (n < 2) return 0;
if (!match(parser->Tok[1], w_BACKFLOW)) return -1; if (!match(parser->Tok[1], w_ALLOWED)) return -1;
choice = findmatch(parser->Tok[2], BackflowTxt); choice = findmatch(parser->Tok[2], BackflowTxt);
if (choice < 0) return setError(parser, 2, 213); if (choice < 0) return setError(parser, 2, 213);
hyd->EmitBackFlag = choice; hyd->EmitBackFlag = choice;

View File

@@ -410,6 +410,7 @@ int closequal(Project *pr)
FREE(qual->FlowDir); FREE(qual->FlowDir);
FREE(qual->SortedNodes); FREE(qual->SortedNodes);
} }
freeadjlists(pr);
return errcode; return errcode;
} }

View File

@@ -1,13 +1,13 @@
/* /*
****************************************************************************** ******************************************************************************
Project: OWA EPANET Project: OWA EPANET
Version: 2.2 Version: 2.3
Module: text.h Module: text.h
Description: string constants used throughout EPANET Description: string constants used throughout EPANET
Authors: see AUTHORS Authors: see AUTHORS
Copyright: see AUTHORS Copyright: see AUTHORS
License: see LICENSE License: see LICENSE
Last Updated: 02/05/2023 Last Updated: 05/11/2024
****************************************************************************** ******************************************************************************
*/ */
@@ -130,6 +130,7 @@
#define w_TOLERANCE "TOLER" #define w_TOLERANCE "TOLER"
#define w_EMITTER "EMIT" #define w_EMITTER "EMIT"
#define w_BACKFLOW "BACK" #define w_BACKFLOW "BACK"
#define w_ALLOWED "ALLOW"
#define w_PRICE "PRICE" #define w_PRICE "PRICE"
#define w_DMNDCHARGE "DEMAN" #define w_DMNDCHARGE "DEMAN"