From 79b4fa45a15a511d035e1fbb14b4e0736f7a7870 Mon Sep 17 00:00:00 2001 From: Lew Rossman Date: Fri, 5 Aug 2022 16:59:32 -0400 Subject: [PATCH] Update hydcoeffs.c Only an Active PSV needs to preserve connectivity. --- src/hydcoeffs.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/hydcoeffs.c b/src/hydcoeffs.c index b4ba6cd..83b2dc3 100644 --- a/src/hydcoeffs.c +++ b/src/hydcoeffs.c @@ -62,7 +62,6 @@ static void tcvcoeff(Project *pr, int k); static void prvcoeff(Project *pr, int k, int n1, int n2); static void psvcoeff(Project *pr, int k, int n1, int n2); static void fcvcoeff(Project *pr, int k, int n1, int n2); -static void valveconnectcoeffs(Project *pr, int k, int n1, int n2); void resistcoeff(Project *pr, int k) @@ -318,11 +317,9 @@ void valvecoeffs(Project *pr) { case PRV: prvcoeff(pr, k, n1, n2); - valveconnectcoeffs(pr, k, n1, n2); break; case PSV: psvcoeff(pr, k, n1, n2); - valveconnectcoeffs(pr, k, n1, n2); break; case FCV: fcvcoeff(pr, k, n1, n2); @@ -332,25 +329,6 @@ void valvecoeffs(Project *pr) } } -void valveconnectcoeffs(Project *pr, int k, int n1, int n2) -/* -**-------------------------------------------------------------- -** Input: k = valve's link index -** n1 = upstream node of valve -** n2 = downstream node of valve -** Output: none -** Purpose: insures that the off-diagonals in the rows for a -** PRV/PSV are non-zero to preserve connectivity. -**-------------------------------------------------------------- -*/ -{ - Smatrix *sm = &pr->hydraul.smatrix; - double p = 1.0 / CBIG; - sm->Aij[sm->Ndx[k]] -= p; - sm->Aii[sm->Row[n1]] += p; - sm->Aii[sm->Row[n2]] += p; -} - void emittercoeffs(Project *pr) /* @@ -1057,6 +1035,8 @@ void psvcoeff(Project *pr, int k, int n1, int n2) { sm->F[j] += hyd->Xflow[n1]; } + sm->Aij[sm->Ndx[k]] -= 1.0 / CBIG; // Preserve connectivity + sm->Aii[j] += 1.0 / CBIG; return; }