Merge branch 'dev' into dev
This commit is contained in:
@@ -53,4 +53,5 @@ This document describes the changes and updates that have been made in version 2
|
|||||||
- `EN_PRESS_UNITS` can now be used with `EN_getoption` and `EN_setoption` to get or set the pressure unit used in EPANET.
|
- `EN_PRESS_UNITS` can now be used with `EN_getoption` and `EN_setoption` to get or set the pressure unit used in EPANET.
|
||||||
- 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.
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -286,6 +286,7 @@ void closehyd(Project *pr)
|
|||||||
{
|
{
|
||||||
freesparse(pr);
|
freesparse(pr);
|
||||||
freematrix(pr);
|
freematrix(pr);
|
||||||
|
freeadjlists(pr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
10
src/input3.c
10
src/input3.c
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user