Software per il calcolo di una rete bianca

Pubblicato da Nicola Rainiero il 30-06-2012 (aggiornato il 13-10-2012)

Pubblico un programma open source che una volta letti i dati idrologici e geometrici della rete, calcola per ciascun tratto il diametro più adatto e le caratteristiche idrauliche. Per svolgere i calcoli usa il metodo dell'invaso e può dimensionare in funzione di velocità, sforzo tangenziale o pendenza. Rilascia un file di testo con tutte le operazioni svolte, utile per una successiva relazione o rielaborazione.

Scritto per una vecchia calcolatrice programmabile (come raccontato qui) e poi sistemato o più realisticamente rattoppato, per renderlo usabile su un qualsiasi personal computer, è ora pronto per la diffusione su internet. Ho scelto di licenziarlo in GPLv3 perché mi piace l'idea che ognuno possa contribuire a migliorarlo/riscriverlo e adattarlo alle proprie esigenze senza la dittatura delle royalty.

Il codice sorgente

Originariamente era scritto in un linguaggi BASIC-compatibile per la Sharp PC-E500S, poi l'ho adattato al quickbasic e compilato usando FreeBASIC. In tutti questi passaggi le righe di codice sono quadruplicate, forzando al limite dell'inverosimile l'uso dell'istruzione GOTO e di costrutti poco eleganti a livello informatico. Ho provato ultimamente ad aggiungere alcuni commenti ma la lettura logica dell'algoritmo diventa sempre più ardua e ho desistito!

Ecco l'archivio zip con il programma per il download: Fognatura_bianca_0_9_2.zip
Per verificare se sono disponibili nuove versioni consiglio di consultare questo link. (10/10/2012) Inizia la conversione di fognatura bianca in applicazione web, per vedere come funzionerà e lo stato di avanzamento di questo progetto, consulta Fognatura bianca applicazione web: concept.

Limitazioni

  • L'eseguibile fognatura_bianca.exe deve avere nella stessa cartella:
    • condotto_circolare.dat, ovvero la tabella adimensionale per le tubazioni a sezione circolare;
    • input_rete.dat, i dati geometrici e idrologici della rete inseriti come più sotto riportato.
  • La geometria della rete può prevedere più rami esterni costituiti però da un solo tronco e confluenti ad un unico nodo che poi può proseguire con molteplici rami esclusivamente interni (per sopperire a ciò si può suddividere la rete in parti che soddisfano alla limitazione imposta dal programma, dimensionarli e poi congiungere il tutto in una nuova rete semplificata per completare il calcolo di quella restante più a valle).
  • Se si dovessero riscontrare eccessivi problemi di convergenza (per esempio nel dimensionamento di reti per piccole lottizzazioni) è possibile impostare nel file input_rete.dat un valore differente di tolleranza e di volume di invaso (variabile da 30 a 50 m3/ha).
  • Il binario compilato in Linux non riesce ad interpretare correttamente il file di input, rendendo di fatto il programma inutilizzabile. L'unico modo di farlo funzionare è con Wine.
  • Le tubazioni devono essere a sezione circolare, anche perché la tabella allegata riporta valori espressamente calcolati per quest'ultime. In linea teorica si potrebbero usare anche tabelle dimensionali per altre sezioni, ma si dovrebbe modificare il programma.

Sviluppi futuri

Tempo permettendo mi piacerebbe:

  • pulire, ottimizzare il codice e correggere le limitazioni attuali;
  • dotarlo di una comoda interfaccia grafica; 
  • introdurre un modulo per il disegno automatico dei profili longitudinali in DXF (operazione noiosissima da fare a mano);
  • rendere la localizzazione in altre lingue più facile.

In poche parole FANTASCIENZA!

Esempio di utilizzo

Uso i dati riportati in questo articolo che qui ripropongo brevemente:

Schematizzazione geometrica della rete
Tronco Superficie Lunghezza Φ
Diametro Pendenza
- ha m - m -
AB 0,45 60 0,35 ? 0,00322
BC 0,65 70 0,40 ? 0,00274

Il file input_rete.dat viene così adeguato (in verde le parti da modificare):

"|dati di input della rete|"
"|sulla sinitra i valori sulla destra la descrizione|"
75	"|KS di Gauckler-Strickler in m^(1/3)/s|"
51.40	"|a dell'equazione pluviometrica [mm ora^-n]|"
0.375	"|n dell'equazione pluviometrica [-]|"
1	"|1 se deve essere amplificata per 4/3 o mettere 0|"
40	"|VO in m^3/ha|"
0.005	"|tolleranza|"
2	"|numero di tronchi da dimensionare|"
"|descrizione dei singoli tronchi|"
"A"	"|etichetta a monte tra virgolette|"
4500	"|superficie in m^2|"
60	"|lunghezza del tratto in m|"
0.35	"|coefficiente di deflusso|"
0	"|tratto interno allo rete [1] o esterno [0]|"
"B"	"|etichetta a monte tra virgolette|"
6500	"|superficie in m^2|"
70	"|lunghezza del tratto in m|"
0.40	"|coefficiente di deflusso|"
1	"|tratto interno allo rete [1] o esterno [0]|"

Si esegue il programma fognatura_bianca.exe e questi sono i passaggi più significativi restituiti a video:


  
  
 

File di output finale: tratto_da_A_a_B.txt

***************************************************************************
*     PROGRAMMA PER IL CALCOLO DEI DIAMETRI DI UNA FOGNATURA BIANCA       *
*                       CON IL METODO DELL'INVASO                         *
***************************************************************************
                                                            (Version 0.9.2)
 
    Software open source by Nicola Rainiero, rilasciato sotto licenza GPLv3
                 \\--->  rainnic.altervista.org  <---//
 
 
___________________________________________________________________________
                  LA RETE E' definita in input_rete.dat
 
Volume d'invaso iniziale                   v0  =  40 m^3/ha
Equazione pluviometrica assegnata          a   =  51.4 mm ora^-n
                                           n   =  0.375
                                           n'  =  0.5
Coefficiente di Gauckler-Strickler         KS  =  75 m^(1/3)/s
Numero di tronchi da dimensionare          N   =  2
Tolleranza per i controlli                 MIN =  0.005
___________________________________________________________________________
                          DATI DEI TRONCHI
Etichetta     Superficie    Lunghezza     PHI           INT/EXT
    -            ha             m          -              1/0
    A           0.45           60          0.35            0 
    B           0.65           70          0.4             1 
 
_______________
  Tratto da A
  L           S aff.        S tot.        PHI tot.          Kc
  m             ha            ha             -               -
 60            0.45          0.45           0.35           3661
 
Tronco dimensionato fissando la pendenza assoluta a 0.00322
 
                                       Q        A RH^2/3
   VO       U       Q      D       ----------   ---------       y/D     V_OP
                                    KS i^1/2      D^8/3
 m^3/ha   l/s,ha   l/s     m          m^8/3         -            -       mc
 40.00     91.53  41.19  0.250       0.0097       0.390        0.80  1000.000 
 40.00     91.53  41.19  0.300       0.0097       0.240        0.80  1000.000 
 46.60     78.57  35.36  0.300       0.0083       0.206        0.66     2.969 
 45.79     79.96  35.98  0.300       0.0085       0.210        0.59     2.604 
 45.90     79.76  35.89  0.300       0.0084       0.209        0.60     2.657 
 
Per il tratto da A:
   D       y/D      v       Q       i         TAU  
   m        -      m/s     l/s      -        N/m^2
  0.300    0.60   0.880   35.89  0.003220     2.7
 
_______________
  Tratto da B
  L           S aff.        S tot.        PHI tot.          Kc
  m             ha            ha             -               -
 70            0.65          1.1            0.3795455      4305
 
Tronco dimensionato fissando la pendenza assoluta a 0.00274
 
                                       Q        A RH^2/3
   VO       U       Q      D       ----------   ---------       y/D     V_OP
                                    KS i^1/2      D^8/3
 m^3/ha   l/s,ha   l/s     m          m^8/3         -            -       mc
 42.42    101.51 111.66  0.400       0.0284       0.327        0.80  1000.000 
 49.80     86.45  95.10  0.400       0.0242       0.279        0.87     8.124 
 48.76     88.30  97.13  0.400       0.0247       0.285        0.74     6.979 
 48.85     88.14  96.95  0.400       0.0247       0.284        0.75     7.077 
 
Per il tratto da B:
   D       y/D      v       Q       i         TAU  
   m        -      m/s     l/s      -        N/m^2
  0.400    0.75   1.090   96.95  0.002740     3.3
 
___________________________________________________________________________
                         Tabella riepilogativa
 
Tratto da   L           ST      D      y/D      v      Q       i      TAU
    -       m          m^2      m       -      m/s    l/s      -     N/m^2
    A     60.00     4500.00  0.300    0.60   0.880  35.89  0.00322  2.652
    B     70.00    11000.00  0.400    0.75   1.090  96.95  0.00274  3.251
 
 
<<Per reti da ricomporre>>
La lunghezza totale della linea e'   [m]      130.00
La superficie totale della linea e' [m^2]   11000.00

 

 

 


Fonti:




Potrebbero interessarti anche:

Nicola Rainiero

Ingegnere civile specializzato in geotecnica con l'ambizione di facilitare la propria attività lavorativa usando e creando software libero per un sapere condiviso e collettivo. Mi occupo anche di energie rinnovabili ed in particolare di geotermia a bassa entalpia. Sono da sempre appassionato di web design e modellazione 3D.

Aggiungi un commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.

Plain text

  • Nessun tag HTML consentito.
  • Indirizzi web ed indirizzi e-mail diventano automaticamente dei link.
  • Linee e paragrafi vanno a capo automaticamente.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.