Programma EULERO 25/10/99 - Matteo Lucarelli matteolucarelli@altervista.org Il programma EULERO è un codice di calcolo per il potenziale tridimensionale secondo il metodo di Hess-Smith. Si applica essenzialmente a corpi non portanti all'interno dell'ambito di validità delle ipotesi di flusso potenziale. Non impone limitazioni sulla forma geometrica del volume in analisi. *** Sequenza di utilizzo *** a) Avvio del programma EULERO ( procedura variabile a seconda del sistema in uso ) b) Inserimento nome del file contenente i dati di input (inserire senza estensione .DIN per il formato si veda nel seguito il file deve risiedere nella stessa directory dell'eseguibile e deve avere estensione .DIN) c) inserimento tipo di simmetria da applicare : 1 : rispetto al piano xy 2 : rispetto al piano yz 3 : rispetto al piano zx d) calcoli geometrici ; calcolo delle coordinate dei null point calcolo della matrice di influenza e) Inserimento del vettore velocità esterna nel caso sia presente una simmetria vengono richieste solo le componenti non nulle f) Calcolo del vettore termini noti soluzione del sistema g) Richiesta opzioni : 1 - uscita senza ulteriore calcolo 2 - ripetizione del calcolo con una nuova velocità esterna (ritorno al punto e) 3 - calcolo e salvataggio delle velocità nei null point 4 - salvataggio coordinate ( dati di input ma con coordinate proiettate ) 5 - salvataggio coordinate null point 6 - salvataggio matrice di influenza 7 - salvataggio vettore dei termini noti 8 - salvataggio intensità 9 - calcolo e salvataggio coeff. di pressione nei null point Per le opzioni da 3 a 9 dopo aver richiesto il nome da utilizzare e aver eseguito il salvataggio l'esecuzione ritorna al punto g. Per i salvataggi accessori e consigliabile utilizzare lo stesso nome dei file di input ( i diversi file si distingueranno per l'estensione ) *** Formato dei file *** Input : file binario con estensione .DIN ( ambiente MSDos ) 4+n*48 bytes (dove n : numero di elementi del corpo ) cioè 1 int + n*12 reali floating point (float) Il primo intero rappresenta il numero di elementi del corpo. I successivi gruppi di 12 float rappresentano le coordinate dei vertici di ogni elemento ordinati in senso orario visti dalla parte del flusso ( 4 punti * 3 coordinate ciascuno) Il nome del file di input viene richiesto all'avvio del programma Il file di input viene letto dalla stessa directory dell'eseguibile Output : file binari su disco fisso - Intensità di sorgente degli elementi estensione .DON n*4 bytes = n float - Velocità nei null point estensione .DVN n*12 bytes = n*3 float - Coordinate proiettate estensione .DAN come dati di input - Coordinate dei null point estensione .DNU n*12 bytes = n*3 float - Matrice di influenza estensione .DMT n*n*4 bytes = n*n float - Vettore termini noti estensione .DTR n*4 bytes = n float - Cpr nei null point estensione .DCP n*4 bytes = n float Se , per qualche motivo , la destinazione o l'origine dei dati non coincidessero con la directory dell'eseguibile e non fosse possibile spostarli in un secondo momento è possibile modificare la stringa di apertura ( cfr. nota sul listato nella routine loaddati ) del file secondo la sintassi del sistema operativo in uso. E' possibile che le estensioni utilizzate coincidano con qualche tipo già residente e dichiarato nella memoria del computer in uso. La cosa non dovrebbe comunque causare alcun inconveniente grave. Se questa possibilità si verificasse è ovviamente possibile cambiare le estensioni nella subroutine SAVEDATI del file sorgente. *** Requisiti del compilatore *** ANSI C ( Clean C ). *** Memoria richiesta *** ( Funzione della dimensione del corpo in esame e del compilatore utilizzato per generare l'eseguibile ). Codice sorgente : 29.4 KBytes Eseguibile : 72.5 KBytes (Borland C++ per MSWindows) Necessità di RAM durante l'esecuzione : n*n*4 bytes ( MINF )+ n*216 bytes (altre var) dove n è il numero di elementi del corpo in esame. *** Programmi accessori *** - eutest_sfera.c Programma di test. Costruisce un solido sferico nel formato di input di eulero. - euleroview.c : Legge e stampa a video i file binari nel formato di EULERO ( cioè sequenze di float precedute da un integer che ne rappresenta la dimensione ). Richede di specificare il formato del file ( tra quelli utilizzati come output da EULERO ). La stampa avviene in gruppi dei quali viene richiesto di specificare la dimensione. E' possibile specificare una dimensione diversa per il primo gruppo e per i successivi. Dopo la stampa di ogni gruppo attende l'immissione di un numero ( qualsiasi ) per passare al successivo. - euleroview2.c : Come LEGGIBIN ma permette di stampare solo i gruppi specificati. Per gruppo si intende una sequenza di numeri nel formato specificato per il file ( Es : per il formato n*3*4 : 12 numeri ). Richiede di specificare la posizione del primo gruppo ( Es : per posizione 0 e formato n*3*4 : i numeri dal 1° al 12°). Richiede di specificare la posizione relativa dei successivi gruppi ( Es : per posizione relativa 3 e formato n*3 : i numeri dal 6° al 9° dopo quelli appena stampati ). - eutest_naca.c : Costruisce un solido di rotazione avente profilo specificato. Per specificare il profilo si utilizzano gli array valx e valr che contengono rispettivamente i valori del raggio e le relative ordinate. Il profilo è orientato con asse di simmetria sull'asse x e ne viene costruita solo la metà avente z negative ( caso di simmetria 1 ). Nella subroutine INSERTO è possibile specificare una variazione al profilo.