Sei sulla pagina 1di 43

POLITECNICO DI MILANO

Facolt di Ingegneria Elettronica


Corso di Laurea in Ingegneria Elettronica Indirizzo Informatico

ELABORATO DI LAUREA On-line Simulations: Progetto e realizzazione di un Sistema Web per applicazioni di Calcolo Scientifico

Relatore: Prof. Riccardo Sacco Candidato: Roberto Re N.ro matricola 566154

Anno Accademico 2004-2005

13/12/2005

INDICE
Cap. 1. Introduzione 1.1 1.2 Cap. 2. Obiettivo Definizione abbreviazioni
pag. 4 pag. 5 pag. 6 pag. 7

Tecnologie di progetto 2.1 Modello di riferimento: International Organization for Standardization, Open Systems Interconnection (ISO/OSI) 2.2 Scelta tipo di connettivit, linee dati 2.2.1 2.2.2 Caratteristiche linee ADSL Configurazione IOS delle interfacce ATM e Dialer sul router CISCO 1700 2.3 Infrastruttura della rete locale (LAN) 2.3.1 2.3.2 Rete Ethernet a stella estesa con estensione Wireless Protocolli di rete, di trasporto e relative configurazioni IOS sul router CISCO 2.4 2.5 Specifiche Hardware e Sistemi Operativi dei Server Applicativi Specifiche Software di Networking a livello Applicativo 2.5.1 2.5.2 2.5.3 2.6 Requisiti Software lato utente (Browser) Requisiti Software lato Server (Web Server) Virtual Network Computing (VNC)

pag. 7 pag. 8 pag. 8 pag. 10 pag. 12 pag. 12 pag. 12 pag. 13 pag. 14 pag. 14 pag. 15 pag. 16 pag. 18 pag. 18 pag. 18 pag. 18 pag. 21 pag. 21 pag. 22

Ambiente di Calcolo: Matlab Web Server (MWS) e Octave 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.6.6 Requisiti MWS Caratteristiche dei programmi applicativi per MWS Componenti e configurazioni MWS Funzionamento del MWS File Locations Octave

2.7

Policy di Accesso e sicurezza del Sistema: autenticazione Http e Firewall realizzato con ACL sul router CISCO
pag. 23

2.8

Accenno alle normative inerenti alla validit dei calcoli eseguiti a computer
pag. 24

Pag. 2 di 43

13/12/2005

Cap. 3.

Le Equazioni di NavierLam per Problemi di Meccanica dei Continui: Modello Differenziale e Approssimazione Numerica ad Elementi Finiti 3.1 3.2 Il problema elastico modello Modelli bidimensionali 3.2.1 3.2.2 3.2.3 Plane stress (stato di sforzo piano) Plane strain (stato di deformazione piana) Approssimazione ad elementi finiti
pag. 25 pag. 25 pag. 27 pag. 27 pag. 28 pag. 29 pag. 31 pag. 31 pag. 32 pag. 33 pag. 34 pag. 39 pag. 40 pag. 42 pag. 43

Cap. 4.

Implementazione dellapplicazione EFelinc2D su Matlab Web Server 4.1 4.2 4.3 4.4 4.5 Pagina HTML dei parametri in Input Comunicazione tra il Web Server Apache ed il motore di Calcolo Matlab Ricezione sul Browser dellutente del file di risposta in Output Listato del codice Matlab EFelinc2D.m modificato per il Web Usability

Cap. 5. Cap. 6.

Validazione Numerica Conclusioni

Bibliografia e riferimenti su Web

Pag. 3 di 43

13/12/2005

Cap. 1 Introduzione
Negli ultimi anni si assistito ad una diffusione mondiale delle reti di calcolatori, in particolare del fenomeno Internet. Contemporaneamente, la modellistica matematica e la simulazione numerica stanno diventando strumenti sempre pi essenziali nella risoluzione di problemi complessi in Ingegneria e nelle Scienze Applicate. Obiettivo principale di questo progetto la realizzazione di un Sistema atto a fornire servizi remoti di Calcolo Scientifico. Oltre gli sviluppatori e gli utenti delle applicazioni, anche lassistenza tecnica ed i venditori possono utilizzare questo Sistema. Particolare attenzione stata rivolta alla progettazione dellarchitettura di rete ed alla scelta del requisito di utilizzo della sola interfaccia Web per laccesso ai servizi forniti dai Server di calcolo. Il Sistema stato strutturato in modo tale da renderlo del tutto indipendente dalle piattaforme Hardware e Software che verranno utilizzate dallutente finale. Come motori di calcolo applicativi sui Server sono stati installati e configurati i pacchetti Software Matlab ed Octave. In questo progetto verr approfondito dettagliatamente la configurazione del Matlab Web Server (MWS), utilizzando come applicazione di riferimento il programma EFelinc2D, scritto in Matlab dal Dr. Ing. Marco Restelli a supporto della didattica per il corso di Metodi Numerici per l'Ingegneria Civile tenuto dal Prof. Riccardo Sacco nellambito della Laurea Specialistica in Ing. Civile (indirizzo Strutture). Il codice Matlab di cui sopra risolve con il metodo degli Elementi Finiti problemi di Meccanica dei Continui in regime incomprimibile, ed stato scaricato dal seguente indirizzo: http://www1.mate.polimi.it/CN/MNIC/EFelinc2D.zip La messa in opera del progetto ha incluso la fornitura, l'installazione e la configurazione di tutti i componenti Hardware e Software necessari, cos come la fornitura e la configurazione delle linee dati e degli apparati per la connettivit. Nel seguito si fornisce una breve introduzione ai contenuti dellelaborato ed un elenco delle abbreviazioni usate.

Pag. 4 di 43

13/12/2005

1.1 Obiettivo
Scopo principale di questo progetto realizzare uninfrastruttura di rete ed un Sistema Web che rendano possibile: lesecuzione da remoto di applicazioni di simulazione utilizzando come interfaccia utente un Browser , quali Internet Explorer, Netscape, Opera, Safari, senza alcuna necessit di ulteriori software installati sul computer dellutente;

Fig.1: Accesso attraverso Mozilla Firefox al Back-End Server WWW2

la possibilit di sviluppo e di manutenzione di codice di Calcolo Scientifico da remoto attraverso Command Shell mediante un collegamento di tipo VNC (Virtual Network

Computing) ai Server Applicativi, sempre utilizzando un semplice Browser come Viewer.

Fig. 2: Accesso in VNC attraverso Internet Explorer alla Command Window di Matlab

Pag. 5 di 43

13/12/2005

1.2 Definizione abbreviazioni

Abbreviazione ACL ADSL CGI DSLAM GUI HTML HTTP IOS ISO ISP LAN MCR MWS NAT OSI PCR RFC TCP/IP UTP VNC VPN UMTS WWW

Definizione Access Control List Asymmetric Digital Subscriber Line Common Gateway Interface Digital Subscriber Line Access Multiplexer Graphic User Interface Hypertext Markup Language Hypertext Transfer Protocol Internetwork Operating System International Organization for Standardization Internet Service Provider Local Area Network Minimum Cell Rate Matlab Web Server Network Address Translation Open Systems Interconnection Peak Cell Rate Request For Comment Transmission Control Protocol/Internet Protocol Unshielded Twisted Pair Virtual Network Computing Virtual Privat Network Universal Mobile Telephone System World Wide Web

Pag. 6 di 43

13/12/2005

Cap. 2 Tecnologie di progetto


In Fig. 3 rappresentato un macro-schema degli apparati del Sistema Web .

Fig. 3:

Macro-schema Sistema Web

2.1

Modello di riferimento: International Organization for Standardization / Open Systems Interconnection (ISO/OSI)
In questo progetto ci riferiremo al modello ISO/OSI quale modello standard di riferimento per l'interconnessione di sistemi aperti. Alla fine degli anni 70, l'ISO (International Standards Organization), principale ente internazionale di standardizzazione, ha introdotto un modello a strati, denominato OSI (Open Systems Interconnection), per descrivere gli strati definiti in un sistema operativo della rete; l'obiettivo dell'ISO era definire uno schema modulare ed aperto per la realizzazione di meccanismi di comunicazione automatici tra calcolatori evitando il proliferare di protocolli proprietari e soprattutto per garantire l'interoperabilita' tra sistemi anche diversi. In OSI il problema della comunicazione viene suddiviso in sette blocchi funzionali detti layers; ciascun blocco fornisce funzioni chiaramente definite e con un'interfaccia (Input/Output) definita e standard verso gli strati adiacenti. I layers definiti sono in totale 7 e vanno dal livello fisico (quello del mezzo fisico, ossia del cavo o delle onde radio) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione di alto livello. Lo stack costituito dai seguenti layers (in ordine decrescente):
7 - layer/protocollo/livello applicativo 6 - layer/protocollo/livello di presentazione 5 - layer/protocollo/livello di sessione 4 - layer/protocollo/livello di trasporto 3 - layer/protocollo/livello di rete
Pag. 7 di 43

13/12/2005

2 - layer/protocollo/livello di collegamento dati (data-link layer) 1 - layer/protocollo/livello fisico (segnali elettrici, ottici, radio, etc)

2.2

Scelta tipo di connettivit, linee dati


Per limplementazione di questo progetto sono state utilizzate due linee ADSL 1280/512 Kbps MCR 128 Kbps, fornite da C.U. S.r.l - Societ facente parte del Consorzio Metrolink di Milano - presso la quale il Candidato svolge la propria attivit professionale. Nell'analisi del progetto si preso in esame anche il provisioning della connettivit agli utilizzatori finali del Sistema in modo tale che possa essere garantito l'adeguato dimensionamento delle linee in funzione del previsto carico di utilizzo del Sistema. Linfrastruttura dell ISP (Internet Service Provider) Metrolink - Autonomous System 8816 non verr analizzata in questo contesto.

2.2.1 Caratteristiche linee ADSL


La scelta di due linee ADSL fasciate insieme a livello 2 in un multilink PPP scaturita dalla valutazione dei costi di provisioning di varie soluzioni di connettivit a parit di banda massima (PCR) e banda minima garantita (MCR). Le due linee ADSL sono del tipo 1280 Kbps (in Downstream) e 512 Kbps (in Upstream) FAST rate-adaptive (MCR128 Kbps), configurate a livello data-link in PPP multilink per una banda totale disponibile di 2560 Kbps in Downstream e di 1024 Kbps in Upstream. La modalit FAST implica minore latenza della linea a fronte di maggiore vulnerabilit ad errori di vario genere, non viene effettuato il controllo degli errori nell'invio dei pachetti dati. Nel caso della nostra installazione la centrale col DSLAM (Digital Subscriber Line Access Multiplexer) vicina, i parametri fisici di linea misurati sono buoni, quindi la scelta di una linea ADSL di tipo FAST adeguata. Stato dellinterfaccia a livello data-link sul router di aggregazione dellISP : ar2-adsl#show ppp multilink Virtual-Access5, bundle name is gw-robertore@bianco.metrolink.it Bundle up for 00:02:57, 1/255 load Receive buffer limit 24384 bytes, frag timeout 1000 ms 0/0 fragments/bytes in reassembly list 0 lost fragments, 0 reordered 0/0 discarded fragments/bytes, 0 lost received 0x30 received sequence, 0x3E sent sequence Member links: 2 (max not set, min not set) Vi4, since 00:02:57 Vi7, since 00:01:26
Pag. 8 di 43

13/12/2005

Parametri Sistema :

fisici delle linee rilevate dal router CISCO 1700

sulle interfacce ATM

lato

gw-robertore#show dsl interface atm 0 Alcatel 20150 chipset information ATU-R (DS) Modem Status: Showtime (DMTDSL_SHOWTIME) DSL Mode: ANSI T1.413 ANSI Issue/rev: 2/1 Vendor ID: 0x0022 Capacity Used: 17% Noise Margin: 39.0 dB Output Power: 18.0 dBm Attenuation: 9.5 dB Defect Status: None Last Fail Code: None Selftest Result: 0x00 Subfunction: 0x15 Interrupts: 1332 (0 spurious) PHY Access Err: 0 Activations: 1 Init FW: embedded Operation FW: embedded SW Version: 3.8131 FW Version: 0x1A04
Speed (kbps): Reed-Solomon EC: CRC Errors: Header Errors: Bit Errors: BER Valid sec: BER Invalid sec: Interleave 0 0 0 0 0 0 0 Fast 1504 0 0 0 0 1995543 0

ATU-C (US)

2/1 0x0022 67% 17.0 dB 12.0 dBm 7.0 dB None

Interleave 0 0 0 0

Fast 608 0 0 0

gw-robertore#show dsl interface atm 1 Alcatel 20150 chipset information ATU-R (DS) Modem Status: Showtime (DMTDSL_SHOWTIME) DSL Mode: ITU G.992.1 (G.DMT) ITU STD NUM: 0x01 Vendor ID: 'ALCB' Vendor Specific: 0x0000 Vendor Country: 0x00 Capacity Used: 17% Noise Margin: 40.0 dB Output Power: 18.0 dBm Attenuation: 9.0 dB Defect Status: None Last Fail Code: None Selftest Result: 0x00 Subfunction: 0x15 Interrupts: 1336 (0 spurious) PHY Access Err: 0 Activations: 1

ATU-C (US)

0x1 'ALCB' 0x0000 0x0F 68% 17.0 dB 12.0 dBm 7.0 dB None

Pag. 9 di 43

13/12/2005

Init FW: Operation FW: SW Version: FW Version:


Speed (kbps): Reed-Solomon EC: CRC Errors: Header Errors: Bit Errors: BER Valid sec: BER Invalid sec:

embedded embedded 3.8131 0x1A04


Interleave 0 0 0 0 0 0 0 Fast 1504 0 0 0 0 0 0 Interleave 0 0 0 0 Fast 608 0 0 0

Si noti che i parametri relativi alla velocit sopra riportati sono da intendersi come valori al lordo del payload dellincapsulamento ATM dellordine del 20%.

2.2.2 Configurazione IOS delle interfacce ATM e Dialer sul router CISCO 1700
Come Gateway della LAN stato utilizzato un router CISCO 1700 con le seguenti caratteristiche: gw-robertore#show ver Cisco Internetwork Operating System Software IOS (tm) C1700 Software (C1700-Y7-M), Version 12.3(16), RELEASE SOFTWARE (fc4) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2005 by cisco Systems, Inc. Compiled Wed 24-Aug-05 00:28 by ssearch Image text-base: 0x8000816C, data-base: 0x80B8CB80 ROM: System Bootstrap, Version 12.0(3)T, RELEASE SOFTWARE (fc1) ROM: C1700 Software (C1700-Y7-M), Version 12.3(16), RELEASE SOFTWARE (fc4) gw-robertore uptime is 3 weeks, 1 day, 18 hours, 24 minutes System returned to ROM by reload at 18:05:18 GMT+1 Mon Nov 7 2005 System restarted at 18:06:53 GMT+1 Mon Nov 7 2005 System image file is "flash:c1700-y7-mz.123-16.bin" cisco 1720 (MPC860T) processor (revision 0x601) with 44237K/4915K bytes of memory. Processor board ID JAD0449087F (1476905583), with hardware revision 0000 MPC860T processor: part number 0, mask 32 Bridging software. X.25 software, Version 3.0.0. 1 FastEthernet/IEEE 802.3 interface(s) 2 ATM network interface(s) 32K bytes of non-volatile configuration memory. 8192K bytes of processor board System flash (Read/Write) Configuration register is 0x2102

Qui di seguito riportata la configurazione a livello fisico, nel linguaggio IOS, delle due interfacce ATM:
Pag. 10 di 43

13/12/2005

gw-robertore# [..] interface Loopback1 ip address 212.45.137.130 255.255.255.252 ! interface ATM0 no ip address no atm ilmi-keepalive dsl operating-mode auto ! interface ATM0.1 point-to-point pvc 8/35 oam-pvc manage encapsulation aal5mux ppp dialer dialer pool-member 2 ! ! interface ATM1 no ip address no atm ilmi-keepalive dsl operating-mode auto ! interface ATM1.1 point-to-point pvc 8/35 oam-pvc manage encapsulation aal5mux ppp dialer dialer pool-member 2 ! Configurazione dellinterfaccia a livello data-link ! interface Dialer2 ip unnumbered Loopback1 ip access-group 100 in ip nat outside encapsulation ppp load-interval 30 dialer pool 2 dialer-group 1 ppp chap hostname gw-robertore@bianco.metrolink.it ppp chap password 7 0100122165EE0A0B0A3 ppp multilink ! Nel presente Sistema il CISCO 1700 svolge anche la funzione di Firewall della LAN tramite alcune ACL (Access Control List) opportunamente configurate (vedi paragrafo 2.7).

Pag. 11 di 43

13/12/2005

2.3 Infrastruttura di rete locale (LAN) 2.3.1 Rete Ethernet a stella estesa con estensione Wireless

La topologia della LAN (Ethernet standard IEEE 802.3 100baseT) di tipo a stella estesa, caratterizzata da un punto centrale centrostella - costituito dal router CISCO 1700 ed uno switch. Gli host e lAccess Point Wireless Linksys (standard IEEE 802.11b/g) connessi ad esso tramite cablaggio UTP (Unshielded Twisted Pair) in categoria 5. sono

Topologia di rete a Stella estesa

2.3.2

Protocolli di rete , di trasporto e relative configurazioni IOS sul router CISCO

Il Sistema si basa su protocolli TCP/IP per la trasmissione dei dati fra i Browser degli utenti ed i Server Applicativi. Internet Protocol (IPv4), definito nella RFC 791, il protocollo di rete qui utilizzato. IP responsabile dello spostamento dei pacchetti di dati da nodo verso nodo della rete. Gli indirizzi IP sono univoci a livello mondiale e vengono assegnati in modo centralizzato da una gerarchia di enti preposti. Gli indirizzi IP sono inoltre considerati una risorsa preziosa, da gestire con cura. Per rafforzare questo concetto, si parla di indirizzi IP pubblici. Inizialmente l'autorit preposta era la IANA (Internet Assigned Number Authority). Dopo il 1998 venne creato ICANN (Internet Corporation for Assigned Names and Numbers), tuttora operativo e responsabile della gestione degli indirizzi IP, in base alle direttive dell'RFC2050. Con indirizzi IP privati si intendono alcune classi di indirizzi, definite nella RFC 1918, riservate alle reti locali non connesse ad Internet allo scopo di ridurre le richieste di indirizzi pubblici. Chiunque pu utilizzare questi indirizzi per la propria rete locale, perch i pacchetti relativi a tali reti non vengono instradati dai router Internet, e quindi essi non entreranno in conflitto con analoghi indirizzi posti su altre reti locali. Per connettere ad Internet una rete locale che utilizza queste classi indirizzi si deve ricorrere al NATting (Network Address

Translation).

Pag. 12 di 43

13/12/2005

Nel presente progetto viene utilizzato un piano di indirizzamento su rete privata in classe C 10.10.62.0/24, con il NAT su un unico indirizzo pubblico configurato sul router CISCO. I Server VNC (Virtual Network Computing) interni vengono raggiunti dallesterno grazie al NAT statico sempre configurato sul router CISCO 1700. A seguire riportata la configurazione del router, nel linguaggio IOS, del livello di rete: interface FastEthernet0 ip address 10.10.62.254 255.255.255.0 ip nat inside load-interval 30 speed auto hold-queue 100 out ip access-group 101 out [..]
ip nat inside source list 10 interface Loopback1 overload ip nat inside source static tcp 10.10.62.254 80 interface Dialer2 80 ip nat inside source static tcp 10.10.62.254 143 interface Dialer2 143 ip nat inside source static tcp 10.10.62.88 5801 interface Dialer2 5801 ip nat inside source static tcp 10.10.62.88 5901 interface Dialer2 5901 ip nat inside source static tcp 10.10.62.188 5800 interface Dialer2 5800 ip nat inside source static tcp 10.10.62.188 5900 interface Dialer2 5900 [..] ip route 0.0.0.0 0.0.0.0 Dialer2 access-list 10 permit 10.10.62.0 0.0.0.255

Transmission Control Protocol (TCP) il protocollo di trasporto, definito nel RFC 793, su cui si appoggiano gran parte delle applicazioni Internet. TCP si occupa di verificare la corretta distribuzione dei dati dal client al Server, dal momento che i dati potrebbero andar persi nella rete. TCP aggiunge il supporto per la rilevazioni di errori o di dati persi, cos come i meccanismi per attivare la ri-trasmissione fino alla ricezione corretta e completa dei dati.

2.4 Specifiche Hardware e Sistemi Operativi dei Server Applicativi


Per la realizzazione di questo progetto sono stati assemblati e configurati tre Application Server in architettura Intel, con le seguenti caratteristiche Hardware e Sistemi Operativi: Front-End Server WWW-1: S.O. : Linux Kernel 2.6.10 (Distribuzione Fedora Core3) CPU vendor_id: GenuineIntel model name: Intel(R) Pentium(R) 4 CPU 1.60GHz cpu MHz: 1600.210 cache size: 256 KB bogomips: 3170.30 RAM : 1 GB Memorie di massa: 2 dsk 160GB 7200rpm in RAID1 software Interf. di rete: 2 schede Ethernet 10/100Mbit Servizi attivi: HTTP Server, File Server, SSH, Mail Server
Pag. 13 di 43

13/12/2005

Back-End Server WWW-2: S.O. Linux,Kernel 2.6.12 (Distribuzione Mandriva 6) CPU vendor_id: GenuineIntel model name: Intel(R) Celeron(R) CPU 2.80GHz cpu MHz: 2794.088 cache size: 256 KB bogomips: 5521.40 RAM: 1 GB Memorie di massa: 1 dsk 80GB 7200rpm Interf. di rete: 1 scheda Ethernet 10/100Mbit Servizi attivi: HTTP Server, Matlab Server, Octave, VNC Server Back-End Server WWW-3: S.O. Windows XP Professional vendor_id: GenuineIntel model name: Pentium III (Coppermine) cpu MHz: 997.872 cache size: 256 KB bogomips: 1957.88 RAM: 512 MB Memorie di massa: 1 dsk 80GB 7200rpm Interf. di rete: 1 scheda Ethernet 10/100Mbit Servizi attivi: HTTP Server, VNC Server

2.5 Specifiche Software di Networking a livello Applicativo


Il Sistema permette lo sviluppo e lutilizzo di Applicazioni di Calcolo Scientifico accessibili via Web, ovvero che utilizzano le capacit del WWW per la trasmissione di dati dallapplicazione utente al motore di calcolo. Lesecuzione dellapplicazioni di tipo transazionale, ovvero in seguito ad una submit, effettuata dallutente finale tramite un pulsante su una pagina HTML, lesecuzione del codice di calcolo viene operata dal Server remoto. Quindi, ad elaborazione conclusa, la presentazione dei risultati viene trasmessa al Browser dellutente.

2.5.1

Requisiti Software lato utente (Browser)

Per interfacciarsi al Sistema deve essere utilizzato un Web Browser adatto per la piattaforma utilizzata dallutente. In questo progetto sono stati testati con successo Netscape Communicator, Microsoft Internet Explorer, Opera ,Firefox e Safari Mac OS X.

Pag. 14 di 43

13/12/2005

2.5.2

Requisiti Software lato Server (Web Server)

Per il funzionamento del Sistema necessario che un Software HTTP Web Server venga configurato sul Sistema su cui Matlab ed Octave stanno funzionando. Il software Web Server deve essere inoltre configurato per eseguire programmi CGI (Common Gateway

Interface).
Web Server un programma (e - per estensione - il computer) che si occupa di fornire, su richiesta del Browser, una pagina Web (spesso scritta in HTML). Le informazioni inviate da Web Server viaggiano in rete trasportate dal protocollo HTTP. L'insieme dei Web Server presenti su Internet forma il WWW, ovvero il World Wide Web, uno dei servizi pi sfruttati della Grande Rete. Per questo progetto come Web Server stato installato Apache release 2.55 su tutti e tre i Server Applicativi. Il Web Server Apache viene utilizzato per la gestione della comunicazione fra il motore Matlab ed i Browser utente. La richiesta di accesso al codice Matlab viene fatta dai Browser al Web Server di Front-End WWW1 che re-dirige le richieste ai Back-End Server sulla rete interna attraverso un Proxy. Un Proxy un programma che si interpone tra un client ed un Server, inoltrando le richieste e le risposte dall'uno all'altro. Il client si collega al Proxy invece che al Server, e gli invia delle richieste. Il Proxy a sua volta si collega al Server e inoltra la richiesta del client, riceve la risposta e la inoltra al client. La scelta dellutilizzo di un Proxy correlata allutilizzo di indirizzi IP privati. A seguire riportiamo uno stralcio della configurazione del Web Server Apache installato sul Front-End WWW1 ove configurato il Proxy. httpd.conf LoadModule LoadModule ProxyPass ProxyPass ProxyPassReverse ProxyPassReverse proxy_module modules/mod_proxy.so proxy_http_module modules/mod_proxy_http.so /matlin/ http://10.10.62.188/ /appswin/ http://10.10.62.88/ /matlin/ http://10.10.62.188/ /appswin/ http://10.10.62.88/

Il Web Server deve essere inoltre configurato per supportare il Common Gateway Inteface. CGI uno standard per il collegamento delle applicazioni esterne con i Web Server. Un programma CGI eseguito in tempo reale, onde poter produrre informazioni dinamiche. Il programma CGI pu essere scritto in vari linguaggi (C/C++, Perl, TCL), che possano essere eseguiti sul Sistema.
Pag. 15 di 43

13/12/2005

2.5.3

Virtual Network Computing (VNC)

Per le attivit di sviluppo e manutenzione di Software applicativo di Calcolo Scientifico utilizzabile una modalit di accesso di tipo VNC ai tools dellambiente di lavoro della Command Window di Matlab. VNC definisce il Virtual Network Computing. Questultimo un software di controllo remoto che consente di accedere ed interagire con un computer (Server), utilizzando un semplice programma (Viewer) su un altro computer in Internet. I due computer non devono necessariamente essere dello stesso tipo, ovvero pu essere utilizzato, ad esempio, da casa un PC Windows per accedere ad un Server Linux in ufficio. VNC liberamente e pubblicamente disponibile ed molto diffuso presso lindustria, le universit e presso privati.

Fig.4: Virtual Network Computing

In questo progetto utilizzata una versione aggiornata di VNC,

chiamata TightVNC, che

include molte nuove caratteristiche, migliorie, ottimizzazioni e correzioni di bug rispetto alla versione originale. Si noti che TightVNC assolutamente free software, cross-platform e compatibile con il VNC originale. Da considerazioni di letteratura specializzata, giudizio unanime che TightVNC sia il pi avanzato free software per l'accesso remoto. Segue una breve lista delle caratteristiche di TightVNC assenti nel VNC originale.

Pag. 16 di 43

13/12/2005

Controllo del cursore locale. I movimenti del cursore non generano pi aggiornamenti dello schermo, i movimenti remoti del cursore sono processati localmente dal visualizzatore, cos da non poter vedere il movimento pi lento del cursore rispetto a quello locale. Algoritmi di compressioni efficienti. L'encoding di TightVNC ottimizzato per le connessioni lente/medie e questo genera meno traffico rispetto al VNC originale. Allo stesso tempo, TightVNC supporta tutti gli encoding del VNC standard, cos da poter operare efficacemente anche su reti veloci. Quindi, con TightVNC possibile lavorare in remoto, in tempo reale e in qualsiasi ambiente di rete. Livelli di compressione configurabili. possibile scegliere, allinterno di un insieme predefinito di valori, l'appropriato livello di compressione e la velocit di encoding. Tali scelte sono naturalmente dipendenti dalla velocit della rete e dalla capacit del processore. Compressione JPEG opzionale. Se non richiesta una elevatissima qualit di immagine, possibile abilitare la compressione JPEG in maniera efficace. Accesso tramite Web Browser. TightVNC include un visualizzatore Java Viewer con supporto completo dell'encoding, del cursore locale, 24-bit color mode, e altro. L'applet Java pu essere accessibile tramite un HTTP Server incorporato come il VNC standard. Operativit con Unix e Windows. Tutte le caratteristiche descritte sopra sono disponibili sia in Unix che nelle versioni Win32 di TightVNC. Tunneling Automatico SSH in Unix. La versione Unix del visualizzatore TightVNC pu usufruire di connessioni in tunneling SSH usando l'SSH locale o installazioni OpenSSH.

Pag. 17 di 43

13/12/2005

2.6 Ambiente di Calcolo: Matlab Web Server (MWS) e Octave 2.6.1 Requisiti MWS

Lesecuzione da Web dellapplicazione EFelinc2D utilizzata in questo progetto richiede Matlab 7.0 - o successive release - e che il software di Networking sia installato sui Server.

2.6.2

Caratteristiche dei programmi applicativi per MWS

Le applicazioni per MWS sono una combinazione di M-files, HTML e di grafici, ove necessari. Il processo di sviluppo delle applicazioni richiede il seguente numero di passi: 1) Creazione di template visualizzazione dellOutput. 2) Elenco dei nomi delle applicazioni e dei dati nel file di configurazione /cgi-bin/ matweb.conf. 3) Scrittura di un Matlab M-file (deve essere una function) che: Riceva i dati immessi nellInput form HTML; Analizzi i dati e generi tutti i grafici richiesti; Posizioni i dati di Output in una struttura Matlab; Chiami htmlrep per il posizionamento dei dati in un Output document template HTML. HTML per la raccolta Input data degli utenti e per la

2.6.3

Componenti e configurazioni MWS

Il Sistema MWS consiste in un insieme di programmi che permettono agli utenti di eseguire applicazioni Matlab accedendovi da Web (vedi Fig. 5): MWS: gestisce la comunicazione fra l'applicazione Web e Matlab. Un multithreaded

TCP/IP Server (service su Windows NT) esegue Matlab continuamente ed invoca matweb.m, che a sua volta esegue gli M-file specificati nella pagina HTML dell'Input. Matweb: un programma client TCP/IP di MWS. Questo programma traduce i dati CGI dal formato HTML in codice oggetto di Matlab, li trasferisce ad MWS, riceve i risultati HTML da MWS e li ri-trasmette al Web Browser dell'utilizzatore finale. matweb.m: il punto di entrata principale per MWS. Chiama lM-file che stato trasferito allapplicazione CGI matweb ed attiva l'applicazione su Matlab.

Pag. 18 di 43

13/12/2005

Input HTML form data functions: utility Matlab che riceve i dati dallInput HTML ed assicura che i dati siano in una forma compatibile con i programmi Matlab. Output HTML document functions: funzione di Matlab per l'inserimento dei dati di Matlab in un template di Output HTML , per la trasmissione del risultato al Web Browser dell'utilizzatore finale.

Fig.5: Matlab su Web

Tre files di configurazione vengono usati insieme ai programmi di MWS: matweb.conf: un file di configurazione che matweb necessita per il collegamento a MWS. Le applicazioni devono essere elencate in matweb.conf, come indicato nel seguito

Pag. 19 di 43

13/12/2005

[root@ing cgi-bin]# less matweb.conf [WebEFelinc2D] mlServer=ing mldir=/usr/local/Matlab700/toolbox/WebServer/wsdemos/WebEFelinc2D [tmfile_template] mlServer=ing mldir=/usr/local/Matlab700/toolbox/WebServer/wsdemos/WebEFelinc2D matlabserver.conf: MWS pu essere configurato per il listen TCP/IP su tutte le porte consentite, la configurazione delle porte si effettua modificando il file matlabserver.conf sul Server. In questo file si specificano inoltre il numero di istanze Matlab simultanee. hosts.conf: un file facoltativo che fornisce sicurezza supplementare. In presenza di

hosts.conf solo le macchine elencate nello stesso possono essere collegate al MWS e sono elencate per nome in una singola colonna. Le macchine devono essere elencate per nome e non dallIP number. Il Sistema operativo risolve il nome in un IP address valido. In questo progetto non stata utilizzata questa opzione. Funzioni importanti MWS: htmlrep (instruct, infile.html ) sostituisce tutte le variabili di Input Matlab in infile.html, con i valori corrispondenti delle variabili dello stesso nome in instruct. Le variabili possono essere serie di caratteri, tabelle, o array che contengono le stringhe e gli scalari. La stringa e le variabili scalari sono sostituite da straight substitution. La variabile di output restituita nellOutstring. Outstring = htmlrep (instruct, infile.html) Instruct: una struttura di Matlab che contiene i nomi variabili (nomi di campo) ed i valori corrispondenti. Infile.html: un HTML file con i nomi variabili di Matlab racchiusi tra segni del dollaro (es. $variable_name$). matweb: un M-file che a sua volta chiama un M-file di applicazione di Matlab memorizzato nel campo mlmfile della struttura di Matlab instruct. Matweb trasferisce inoltre instruct all'applicazione. La funzione di matweb.m invocata da MWS. Instruct contiene i seguenti campi: Tutti i dati del HTML Input document ; mlmfile, che memorizza i nomi dei M-file da chiamare ; mldir, la working directory specificata in matweb.conf .

Pag. 20 di 43

13/12/2005

2.6.4

Funzionamento del MWS

MWS funziona continuamente come servizio di Windows o come processo su sistemi Linux. Esso richiede che sia configurata la cshell come shell dellutente con cui viene avviato il processo. matlabserver.conf: il file di configurazione che MWS legge allo start-up per caricare i relativi dati di inizializzazione. La procedura di installazione genera questo file in <path di Matlab>/WebServer mentre installa MWS. Le impostazioni di configurazione devono apparire nella prima linea del matlabserver.conf file. Le opzioni di base impostate nel matlabserver.conf sono: Port number, Threads (massimo numero di Matlab simultanee). Limpostazione di default del matlabserver.conf semplicemente -m 1 con porta 8888. [root@ing ~]# less /usr/local/Matlab700/WebServer/matlabserver.conf -m 1 -l /var/tmp/MatlabServer_error.log -v 2 SERVER= SERVER_HOST=ing.robertore.it START_USERNAME=Webmat RELEASE=R14 ARCH=glnx86 MATLAB=/usr/local/Matlab700 DISPLAY=:2 LM_LICENSE_FILE=/usr/local/Matlab700/etc/license.lic LIBRARY_PATH=$MATLAB/sys/os/$ARCH:$MATLAB/bin/$ARCH WEBSERVER_MARKER=_TMW$RELEASE SLOG_FILE=/var/tmp/WebServer$WEBSERVER_MARKER.slog$SERVER ELOG_FILE=/var/tmp/WebServer$WEBSERVER_MARKER.elog$SERVER PID_FILE=/var/tmp/WebServer$WEBSERVER_MARKER.pid$SERVER CHECK_XHOST_TIMEOUT=5

2.6.5

File Locations

Tutti gli M-file usati dall'applicazione Web, compreso matweb.m devono essere elencati nel Matlab-path. In questo progetto tutti i Files sono memorizzati e condivisi sul File Server WWW1 in modo che gli stessi siano condivisibili da tutti i Server attraverso Samba. Samba un progetto open source che fornisce servizi di condivisione di file e stampanti a client che utilizzano il protocollo SMB/CIFS. Samba liberamente disponibile, al contrario di altre implementazioni SMB/CIFS, e permette di ottenere interoperabilit tra Linux,Unix,Mac OS X e Windows.

Pag. 21 di 43

13/12/2005

I files matweb.conf e matweb devono comparire sotto un alias /cgi-bin. Tutti i grafici generati devono essere individuati dove il Web Server possa trovarli ed i programmi possano scriverli.

2.6.6

Octave

Oltre a Matlab, sul Sistema disponibile anche un istanza di Octave. Questultimo un Software che utilizzza un linguaggio compatibile con caratteristiche fondamentali : completamente gratuito e copiabile dal sito Web http://www.octave.org; software libero (sviluppato dalla fondazione GNU): il suo codice sorgente disponibile a tutti e tutti possono modificarlo secondo le proprie esigenze. Si veda il sito della Free software Foundation per chiarimenti sul software libero. In questo Sistema Octave utilizzabile da remoto attraverso un collegamento VNC usando come interfaccia un Browser (vedi Fig. 6) Matlab e che ha le seguenti

Fig. 6: Command Shell di Octave

Pag. 22 di 43

13/12/2005

2.7 Policy di Accesso e sicurezza del Sistema: autenticazione HTTP e realizzato con ACL sul router CISCO

Firewall

In questo progetto sono previsti due livelli di sicurezza per laccesso alle applicazioni di Calcolo Scientifico : accesso per lesecuzione di codice opportunamente parametrizzabile : in questo caso i servizi pubblicati su Web sono su Server accessibili da Internet previa autenticazione HTTP degli utenti autorizzati (Fig. 7)

Fig.7: Autenticazione HTTP

accesso per attivit di sviluppo, manutenzione e assistenza sul codice: in questo caso laccesso in VNC per queste attivit consentito solo da reti autorizzate sempre con successiva autenticazione HTTP a livello utente. Laccesso ai VNC Server solo da reti autorizzate garantita a livello del protocollo di rete IP tramite ACL (Access Control List) configurate sul router CISCO 1700.
access-list access-list access-list access-list access-list access-list access-list access-list log access-list log access-list access-list log access-list log access-list access-list access-list access-list access-list 101 101 101 101 101 101 101 101 permit permit permit permit permit permit permit permit ip X1.Y1.Z1.0 0.0.0.255 any ip X2.Y2.Z2.0 0.0.0.255 any ip Xn.Yn.Zn.0 0.0.0.255 any ip 10.10.0.0 0.0.0.255 10.10.0.0 0.0.0.255 tcp any host 10.10.62.254 eq www log tcp any host 10.10.62.254 eq ssh log tcp any host 10.10.62.254 eq 143 log tcp X1.Y1.Z1.0 0.0.0.255 host 10.10.62.188 eq 5801

101 permit tcp X1.Y1.Z1.0 0.0.0.255 host 10.10.62.188 eq 5901 101 permit tcp any host 10.10.62.188 eq www log 101 permit tcp X1.Y1.Z1.0 0.0.0.255 host 10.10.62.88 eq 5800 101 permit tcp X1.Y1.Z1.0 0.0.0.255 host 10.10.62.88 eq 5900 101 101 101 101 101 permit permit deny deny deny tcp any host 10.10.62.88 eq tcp any any established log ip any any log udp any any log tcp any any log www log

Pag. 23 di 43

13/12/2005

la precedente ACL applicata in out sulla interfaccia FastEthernet del CISCO. int FastEthernet0 ip access-group 101 out Qualora fossero ritenute necessarie ulteriori garanzie di sicurezza, sarebbero facilmente e velocemente integrabili nel Sistema le seguenti tre opzioni: Firewall CISCO PIX da posizionarsi tra il router CISCO ed il Front-End WWW1; configurazione di un VPN (Virtual Privat Network) Server sul CISCO 1700 ; configurazioni delle IP-Tables sulla seconda interfaccia di rete del Front-End WWW1. Queste ulteriori opzioni hanno ovviamente costi diversi, e, coerentemente, forniscono

molteplici gradi di libert nella definizione di Policy di Sicurezza.

2.8 Accenno alle normative inerenti la validit dei calcoli eseguiti a computer
In ambito Industriale sono previste normative di Settore riguardanti la validazione delle varie fasi di utilizzo del calcolo Automatico quali il grado di affidabilit dei codici, le modalit di presentazione dei dati in ingresso e dei risultati, la valutazione dellelaborazione dal punto di vista del corretto comportamento del modello (vedi indicazioni CNR 10024/86). Il progettista deve effettuare una valutazione complessiva dellattendibilit dei risultati della simulazione automatica e per saggiare la sensibilit della procedura di calcolo automatico adottata pu eseguire pi elaborazioni adottando ipotesi semplificative diverse o schemi lievemente modificati; in particolare, in un calcolo agli elementi finiti, opportuno variare le dimensioni e il tipo degli elementi. Possono essere utili, ove esistano, lindividuazione e lo studio di situazioni limite pi semplici tra le quali si colloca il caso in esame. Quando non siano possibili controlli con metodi semplificati pu essere opportuno il confronto tra i risultati di elaborazioni eseguite con programmi diversi ed in quest'ottica su questo Sistema sono stati resi disponibili due ambienti di Calcolo distinti, Matlab ed Octave, compatibili come linguaggio ma indipendenti come motori di calcolo.

Pag. 24 di 43

13/12/2005

Cap. 3 Le Equazioni di NavierLam per Problemi di Meccanica dei Continui: Modello Differenziale e Approssimazione Numerica ad Elementi Finiti 3.1 Il problema elastico modello
Consideriamo un corpo elastico lineare isotropo che occupa il dominio R n , n = 2, 3 , vincolato sul bordo D (con vincolo omogeneo), sottoposto al carico g N sulla parte di bordo N ( = D N , D ) e soggetto alla forza di volume f . Indicando con

x = ( x1 , x2 , x3 )T R 3 il vettore posizione di un punto materiale rispetto allorigine di un


prefissato sistema di assi cartesiani, il modello matematico che descrive il campo di spostamento infinitesimo di ogni punto del corpo rispetto alla configurazione indeformata dato dal seguente problema differenziale alle derivate parziali: Cercare il campo di spostamento u = u ( x) tale che

div (u ) + f = 0 (u ) = 2 (u ) + div u T (u ) = 1/ 2 u + ( u ) u=0 (u )n= g N

in in in su D su N .
(1)

Il modello (1) noto come sistema delle equazioni di NavierLam. La relazione (1) 1 lequazione indefinita di equilibrio; la relazione (1) 2 rappresenta la legge costitutiva che esprime il tensore degli sforzi in funzione del tensore di deformazione infinitesima , definito dalla relazione (1) 3 , avendo indicato con il tensore identit. Le costanti e sono parametri caratteristici del materiale elastico in esame e sono definite come

= E /((1 + )(1 2 ))

= E /(2(1 + )), (2)

dove E > 0 e 0 < 1/ 2 sono rispettivamente il modulo di Young e il modulo di Poisson del materiale. Dalle definizioni (2), al variare di segue che

E / 2 < 3E / 2
mentre

0 < +.

Pag. 25 di 43

13/12/2005

Il caso particolare in cui = 1/ 2 corrisponde alla situazione fisica in cui il materiale elastico, sottoposto a stato di sforzo, si deforma senza cambiare il proprio volume. In tale caso, si dice che il materiale incomprimibile, e il sistema (1) deve essere riformulato mediante lintroduzione della incognita addizionale p , che rappresenta la pressione idrostatica. Il corrispondente modello matematico che descrive il campo di spostamento infinitesimo di ogni punto del corpo rispetto alla configurazione indeformata e in regime incomprimibile dato dal seguente problema differenziale alle derivate parziali: Cercare il campo di spostamento u = u ( x) e la pressione p = p ( x) tali che

div (u ) + f = 0 (u ) = 2 (u ) p (u ) = 1/ 2 u + ( u )T p / + div u = 0 u=0 (u )n= g N

in in in in su D su N .
(3)

Confrontando (3) con (1), si osserva che la presenza dellequazione costitutiva per la pressione (3) 4 consente di trattare con continuit, al variare di , tutti i regimi di deformazione elastica, dal regime comprimibile, fino al limite incomprimibile. Naturalmente, lintroduzione dellincognita p aumenta il carico computazionale del problema di Navier Lam modificato, poich tale variabile non strettamente necessaria qualora sia strettamente < 1/ 2 . per facile verificare che anche nei casi pratici in cui assume valori prossimi a 1/ 2 (ad esempio, = 0.499 come accade nella gomma e in materiali similari), la formulazione (3) denuncia forti limiti di instabilit, come discusso nel seguito quando si affronta lapprossimazione numerica ad elementi finiti del problema. In tali circostanze, di grande interesse nelle applicazioni industriali, pertanto indispensabile adottare il modello differenziale (3). Si osserva, infine, come questultimo, nel caso in cui = 1/ 2 (ovvero,

= + ), coincida con il sistema differenziale di Stokes che descrive il moto viscoso di un


fluido incomprimibile. Tale analogia di grande importanza in vista dellapprossimazione numerica, poich lo studio del sistema di Stokes ampiamente trattato in letteratura. Ci suggerisce pertanto che tecniche numeriche stabili ed accurate per la discretizzazione del sistema di Stokes possono essere convenientemente impiegate anche nel caso delle equazioni di NavierLam in regime incomprimibile.

Pag. 26 di 43

13/12/2005

3.2 Modelli bidimensionali


Sotto opportune ipotesi, possibile semplificare le equazioni del modello elastico 3D ottenendo due differenti modelli 2D, noti come modello plane stress e modello plane strain.

3.2.1. Ipotesi:

Plane stress (stato di sforzo piano)

il corpo ha una dimensione (spessore) trascurabile rispetto alle altre due (es.:
piastra);

il carico applicato nel piano di simmetria dello spessore e non ha componenti


trasversali rispetto a tale piano.

Fig. 8: Il caso di plane stress

Assumendo che il piano xy coincida con il piano di simmetria dello spessore e che lasse z sia orientato perpendicolarmente ad esso, si ha che

zz = 0,
e

zx = zy = 0

xx 0 xx 1 , 2 yy = E /(1 ) 1 0 yy 0 0 (1 ) / 2 xy xy

dove xy = 2 xy . Si osserva che la componente di deformazione zz in generale non nulla e pu essere post-calcolata come

zz = /(1 )( xx + yy ).
Pag. 27 di 43

13/12/2005

3.2.2 Ipotesi:

Plane strain (stato di deformazione piana)

si suppone che il corpo abbia una dimensione molto maggiore rispetto alle altre due (es.: trave snella, cilindri, alberi,...); non ci sono spostamenti lungo lasse della trave, ma solo in direzione perpendicolare allasse stesso; tutti i carichi applicati sono indipendenti da z e hanno componente nulla rispetto allasse

z.

Fig. 9: Il caso di plane strain

Assumendo che lasse z coincida con lasse di simmetria si ha che

zz = 0,

zx = zy = 0.

In questo caso la legge costitutiva per la definizione del tensore degli sforzi rimane quella valida nel caso generale (3) 2 , previa opportuna eliminazione delle righe e delle colonne le cui componenti sono nulle. Si osserva che la componente di sforzo zz in generale non nulla e pu essere post-calcolata come

zz = ( xx + yy ).

Pag. 28 di 43

13/12/2005

3.2.3

Approssimazione ad elementi finiti

Consideriamo ora lapprossimazione numerica del sistema di NavierLam modificato (3) nel caso bidimensionale. A tal fine, introduciamo una partizione Th di in triangoli (la cosiddetta triangolazione del dominio computazionale). Il pedice h > 0 indica il parametro di discretizzazione del problema, ed definito come il lato di lunghezza maggiore della griglia di calcolo. Quindi, definiamo su Th due spazi di funzioni a dimensione finita, indicati nel seguito come U h e Ph , allinterno dei quali vengono cercate le approssimanti uh e ph delle incognite di (3). La scelta operativa per U h e Ph caratterizza il particolare metodo di calcolo impiegato per la risoluzione numerica. Nel seguito, consideriamo il caso in cui U h e Ph siano opportuni spazi di elementi finiti associati alla griglia Th , da cui segue che la relativa formulazione approssimata del problema (3) il cosiddetto metodo Galerkin-Elementi Finiti (GEF). Tale formulazione si scrive come: cercare il campo di spostamento approssimato

uh = uh ( x) U h e la pressione approssimata ph = ph ( x) Ph tali che


2 (uh ) : (vh ) dx ph div vh dx = f vh dx + N g N vh d , qh div uh dx1/ ph qh dx=0 vh U h qh Ph .

(4)

Il problema (4) pu essere scritto nella seguente forma equivalente di sistema lineare algebrico

A BT U F = B C P 0

(5)

dove A , B e C sono matrici di dimensioni opportune, U e P sono i vettori contenenti i gradi di libert dellapprossimazione GEF, mentre F il vettore dei termini noti. La stabilit e laccuratezza della formulazione (4) dipendono in modo essenziale dalla appropriata scelta di U h e Ph . Si pu dimostrare che se tali spazi di elementi finiti soddisfano la condizione di compatibilit di LadynzeskayaBabuskaBrezzi (LBB), allora il sistema lineare algebrico (5) univocamente risolubile e le approssimanti uh e ph convergono alle corrispondenti soluzioni u e p in modo ottimale in funzione di h . Per k 2 intero fissato, spazi di elementi finiti stabili e convergenti sono la coppia

U h = ( Pk (Th )) 2 e Ph = Pk 1 (Th ) . Nel caso k = 1 , infatti, la coppia U h = ( P (Th )) 2 e Ph = P0 (Th ) 1


non verifica la condizione LBB. In particolare, si verifica linsorgere di instabilit numeriche nel campo di pressione approssimato (modi spuri di pressione), che sono evidenziate da
Pag. 29 di 43

13/12/2005

forti oscillazione di ph . Una variante stabile di tale coppia costituita dallelemento MINI, dove Ph = P (Th ) , mentre U h lo spazio ( P (Th )) 2 arricchito per ogni triangolo di griglia da 1 1 funzioni bolla cubiche. Tali funzioni bolla sono introdotte allo scopo di stabilizzare la formulazione e il grado di libert ad esse corrispondente pu essere facilmente eliminato mediante condensazione statica. Ci rende luso dellelemento MINI di grande interesse nelle applicazioni, a causa della sua buona accuratezza e ridotto costo computazionale. Gli esempi numerici del Capitolo 5 illustreranno le considerazioni sopra brevemente esposte.

Pag. 30 di 43

13/12/2005

Cap. 4 Implementazione dellapplicazione EFelinc2D su Matlab Web Server


Per limplementazione dellapplicazione EFelinc2D su Web sono stati creati dei nuovi file HTML ed il file EFelinc2D.m stato modificato nel file WebEFelinc2D.m. Per accedere da Internet alla pagina ove impostare i parametri di Input ed eseguire questo codice bisogna aprire un Web Browser e impostare lURL a http://www.robertore.it/tesi/ Dopo lautenticazione HTTP degli utenti autorizzati si pu scegliere se accedere alla Command Window per lo sviluppo/manutenzione del codice o alla pagina per lesecuzione dellapplicazione (riportata in Fig.10), da qui si scelgono dal primo men a scorrimento i Casi di simulazione previsti ed i parametri di visualizzazione, quindi si clicka sul pulsante Esegui il codice di calcolo per avviare lelaborazione transazionale.

Fig.10: Pagina HTML iniziale con parametri di Input

4.1 Pagina HTML dei parametri in Input


Nella pagina EFelinc2D_run.html viene fornito il codice necessario alla creazione del documento di Input MWS, in cui vengono inseriti i casi test previsti dalla simulazione numerica ed alcuni parametri di visualizzazione che saranno passati allapplicazione.

Pag. 31 di 43

13/12/2005

<!STEP1 --> <form action="/matlin/cgi-bin/matweb" method="POST" target="outputwindow"> La precedente linea chiama matweb, lentry point al MWS. matweb il nome del

programma CGI che utilizzato dal MWS per estrarre i dati dalle form HTML. <!-- STEP 2 Si crea un hidden field che chiama la funzione principale dellapplicazione WebEFelinc2D ( un Input field di tipo hidden comunemente usato per passare variabili al Web Server . Non visualizzato dal Browser) --> <input type="hidden" name="mlmfile" value="WebEFelinc2D"> Questa linea fornisce il nome del MATLAB M-file (mlmfile) che viene eseguito (WebEFelinc2D.m) <!-- STEP 3 Si aggiungono tutti gli altri form tag --> <input type="text" size="5" name="AZ" maxlength="5" value="-37.5"> Horizontal Rotation<br> <input type="text" size="5" maxlength="5" name="EL" value="30"> Vertical Elevation <br> <!-- STEP 4 Si crea un submit input tag per lultente per mandare linput al programma --> <input type="submit" value="Esegui il codice di calcolo "> A questo punto stata avviata lapplicazione transazionale e il codice in esecuzione sul server.

4.2 Comunicazione tra il Web Server Apache ed il motore di Calcolo Matlab


Qui di seguito riportata la procedura standard per stabilire la comunicazione del codice HTML (nel documento EFelinc2D_run.html) <form action="/matlin/cgi-bin/matweb" method="POST" target="outputwindow"> matweb un programma che risiede nella directory cgi-bin del Web Server Apache e comunica con MWS, esso richiede le informazioni trovate in matweb.conf per individuare MWS (in grado anche di funzionare su una macchina differente). Matweb un Client di MWS che usa il CGI per ottenere i dati dai form HTML. Trasferisce le informazioni a MWS invocando lesecuzione di WebEFelinc2D.m, attraverso la seguente riga passatagli dalla pagina di Input
Pag. 32 di 43

13/12/2005

<input type="hidden" name="mlmfile" value="WebEFelinc2D"> Questa linea setta largomento mlmfile al valore WebEFelinc2D. Largomento mlmfile contiene il nome dell M-file Matlab che deve essere eseguito.

4.3 Ricezione su Browser dellutente del file di risposta in Output


Punto principale di questa sezione come ottenere il risultato dellelaborazione del codice di calcolo di nuovo sul calcolatore del cliente. La procedura standard per lOutput dal MWS mostrare staticamente il risultato nel Web Browser. La funzione WebEFelinc2D.m usa htmlrep per passare i valori computati nel documento HTML di Output (EFelinc2D_output.html) usando il codice % STEP 6 % Call the function HTMLREP with the output structure you just % created and the file name you created from OUTPUT_TEMPLATE.HTML. % Replace <OUTPUT_TEMPLATE.HTML> with the name of the HTML output % file you created using OUTPUT_TEMPLATE.HTML. % This call fills the string RETSTR to return and optionally % writes the output as a file if a valid filename is given as the % second argument to the present function. templatefile = which('EFelinc2D_output.html'); if (nargin == 1) retstr = htmlrep(outstruct, templatefile); elseif (nargin == 2) retstr = htmlrep(outstruct, templatefile, outfile); end Qui la variabile outstruct una struttura di Matlab che contiene i risultati dei calcoli di

WebEFelinc2D. Htmlrep estrae i dati da outstruct e


EFelinc2D_output.html con i risultati grafici del calcolo. EFelinc2D_output.html quindi trasmesso al Browser computo eseguito.

sostituisce i campi variabili di

dellutente con i due grafici del

Pag. 33 di 43

13/12/2005

4.4 Listato del codice Matlab EFelinc2D.m modificato per il Web


WebEFelinc2D.m function retstr = mfile_template(instruct, outfile) %FUNCTION_TEMPLATE Guide for creating MATLAB Web Server applications. % <FUNCTION_TEMPLATE>(INSTRUCT) where you replace the % "<FUNCTION_TEMPLATE>" with the name of the MATLAB Web % Server application you wish to create. % <FUNCTION_TEMPLATE>(INSTRUCT, OUTFILE) is the same as % the single argument version but also includes an optional % argument, OUTFILE, for writing HTML output to a file (for % stand-alone testing). % % Modify this file to create your own application. Be sure % to save the modifications as <FUNCTION_TEMPLATE>.m where % <FUNCTION_TEMPLATE> is replaced with the name of your % application M-file. % % INSTRUCT is a structure created by the matWeb program. % It contains fields corresponding to the HTML form fields % in the HTML form that you have created from the file % INPUT_TEMPLATE.HTML. In that HTML file there % should a hidden field, called "mlmfile" that references % the M-file that you create here. % % STEP 1 % Initialize the return string. retstr = char(''); % STEP 2 % Set working directory. The variables INSTRUCT.MLDIR % and INSTRUCT.MLID are provided automatically to all % MATLAB Web Server applications that use the matWeb program. % Use the directory in MLDIR for writing graphics files % in a location that the HTTPD can read. cd(instruct.mldir); % % % % % STEP 3 Get the HTML form input variables (from the HTML form that you created from INPUT_TEMPLATE.HTML) and use them in your program. See the sample M-files in the wsdemos directory for examples.

% STEP 4 % Perform your MATLAB computations, graphics file creations, % etc. here: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Programma per la risoluzione del problema elastico lineare piano (di sforzo o % di deformazione) % % Si impiega il metodo Galerkin-elementi finiti con introduzione del % PARAMETRO DI PRESSIONE, che coincide con la pressione nel caso % incomprimibile mentre nel caso generale legato dalla relazione: % % p_par = p_f + 1/3*E/(1+ni) * div(u), % % avendo indicato con p_par il parametro di pressione e con p_f la pressione % p_f = -1/3 * tr(sigma) % % Condizioni al contorno di tipo Dirichlet-Neumann (queste % ultime nella forma di derivata conormale assegnata) % % Release: 16/6/2004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Get unique identifier (to form file name) mlid = getfield(instruct, 'mlid'); % Set directory path for storage of graphic files. cd(instruct.mldir); % Get perspective. azimuth = str2double(instruct.AZ);

Pag. 34 di 43

13/12/2005

elevation = str2double(instruct.EL); % Get the shading value if (isfield(instruct, 'shading')) shdng = getfield(instruct, 'shading'); if strcmp(shdng, 'Interpolated'); shdng = 'interp'; end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Risultati dal programma % % Le seguenti variabili sono utili al fine di gestire i % risultati del programma: % % p,e,t: strutture dati per la descrizione della griglia di calcolo % griglia_conn: connettivit della griglia % griglia_geom: grandezze geometriche % griglia_connAv, griglia_connAp: strutture aggiuntive per la % gestione dei nodi interni a lati ed % elementi. Le due strutture si riferiscono % rispettivamnente ai gradi di libert % di velocit e di pressione, che hanno % rappresentazioni polinomiali diverse. % N.B. la griglia di calcolo unica, dunque sono uniche le % strutture griglia_conn e griglia_geom. Le strutture griglia_connAv % e griglia_connAp differiscono invece per la numerazione e la % posizione dei nodi interni a lati ed elementi, a causa del % fatto che le variabili velocit e pressione hanno rappresentazione % polinomiale diversa. % nodi_Dirichlet: nodi sui quali imposta per la velocit una condizione % di tipo Dirichlet % lati_Neumann: lati sui quali imposta per la velocit una condizione di tipo % Neumann % % Le seguenti variabili rappresentano effettivamente i risultati % del calcolo % U: soluzione. Si tratta di un vettore in cui sono memorizzati % i valori nodali della soluzione: prima le velocit quindi le pressioni. % Velocit e pressioni sono disposte secondo l'ordine di numerazione % dei nodi (per la numerazione dei nodi nel caso r>1 si faccia % riferimento alle strutture griglia_connA). % Uv: parte di U con i valori di velocit. Essendo l'incognita vettoriale, % per ciascun nodo vengono memorizzati nell'ordine velocit orizzontale % e verticale: volendo separare le due usare: % Uvx = Uv(1:2:end-1) % Uvy = Uv(2:2:end) % Up: parte di U con i valori del parametro di pressione. % R: reazioni vincolari sulla struttura associate ai nodi sui quali % imposta una condizione di tipo Dirichlet (si faccia riferimento a % nodi_Dirichlet per determinare gli indici di tali nodi, si veda anche % la funzione "estrai_reazioni") % organizzato come Uv, in particolare: % Rx = R(1:2:end-1) % Ry = R(2:2:end) % Norma_Err_L2, Norma_Err_H1: norme dell'errore per la variabile velocit, % nel caso sia nota la soluzione analitica %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close all clear all clear functions addpath ./CASI addpath ./PRINCIPALE addpath ./PRINCIPALE/Connettivita addpath ./PRINCIPALE/BASI addpath ./GRIGLIE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Scelta del caso test % % Deve essere memorizzato come stringa il nome del file contenente % i dati del problema. % Questo file deve costituire una 'function' senza parametri di % ingresso che restituisce le strutture seguenti:

Pag. 35 di 43

13/12/2005

% griglia: % file_griglia: stringa con il nome del file .mat contenente % le strutture p, e, t della griglia di calcolo % rv: grado degli elementi finiti (possibili 1, 1.5, 2 e 3) per la % variabile spostamento % Il grado 1.5 una convenzione per indicare elementi P1+bolla % rp: grado degli elementi finiti (possibili 1, 2 e 3) per la % variabile pressione % dati_problema: % coeff: stringa con il nome della funzione per il calcolo % dei coefficienti E ni ed f (modulo di Young, di Poisson % e forza di volume). % La funzione riceve in ingreso due vettori riga % x e y e restituisce nell'ordine: E ni ed f valutati % in (x y). % tipo: 1 per stato di deformazione piana, 2 per stato di sforzo % piano % tipo_bc: matrice con due righe e tante colonne quanti % sono i lati del dominio considerato (i lati possono essere % visualizzati in PDEtool nel modo Boundary Mode, i % loro indici si trovano poi sulla quinta riga % della struttura e). La prima riga in realt non % viene considerata nel programma e deve contenere % semplicemente la numerazione dei lati di % bordo [1 2 3 4 ...] per agevolare la lettura, % mentre la seconda riga contiene per ogni % lato l'indice della condizione al contorno: -1 per % condizioni di Dirichlet e -2 per condizioni % di Neumann. % Esempio: [ 1 2 3 4; % -1 -2 -1 -1] dominio con 4 lati con condizioni % di Neumann sul secondo lato e di Dirichlet su tutti % gli altri. % g: stringa con il nome della funzione per la valutazione delle % condizioni al contorno di Dirichlet. Tale funzione deve % avere la struttura: % u_bordo = calcola_u_bordo(x,y) % dove x,y sono vettori riga contenenti le coordinate cartesiane % in cui valutare il dato al bordo. % u_bordo deve essere una matrice di due righe e numero di colonne % uguale a quello di x e y contenete il valore degli spostamenti % assegnati. % h: stringa con il nome della funzione per la valutazione % delle condizioni al contorno di Neumann. La struttura la stessa % della funzione per la valutazione del dato di Dirichlet. % soluzione: % u_esatta: stringa con il nome della funzione per la % valutazione della soluzione esatta (la sola velocit) % e del suo gradiente. Tale funzione deve accettare % in ingresso due vettori riga x e y con i punti % in cui valutare u e grad(u). Lasciare il campo % vuoto se la soluzione non nota. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input_caso = instruct.caso; caso_test = input_caso; % caricamento dei dati del problema [griglia,dati_problema,soluzione] = feval(caso_test); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Variabili principali utilizzate dal codice: % % caso_test: stringa che caratterizza il caso test studiato % rv, rp: grado della base di elementi finiti % N_rv, N_rp: dimensione dello spazio di elementi finiti = 1/2(r+1)(r+2), r>=1 % p,e,t: strutture dati per la descrizione della griglia di calcolo % griglia_conn: connettivit della griglia % griglia_geom: grandezze geometriche % griglia_connAv, griglia_connAp: struttura aggiuntiva per la gestione % dei nodi interni a lati ed elementi % nel caso r>1 % XY O X1D O1D: nodi e pesi per la quadratura mono e bidimensionale % bc_marker: vettore con l'indice del tipo della condizione al contorno % per i lati di bordo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Pag. 36 di 43

13/12/2005

[rv, rp, ... griglia_conn, griglia_geom, ... XY, O, X1D, O1D, ... PHI, gradPHI, N_rv, ... PSI, N_rp, ... griglia_connAv, griglia_connAp, ... nodi_Dirichlet, lati_Neumann, ... bc_marker] = prepara_dati(griglia,dati_problema);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Allocazione della matrice globale dei coefficienti % A e del termine noto f %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % la dimensione 2*gdl_v + gdl_p dim = 2*size(griglia_connAv.nodi,2)+size(griglia_connAp.nodi,2); Sp = 2*size(griglia_connAv.nodi,2); % shift per i gradi di libert di pressione A = sparse(dim,dim); f = zeros(dim,1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ciclo sugli elementi per assemblare A e f %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% p = griglia_conn.p; e = griglia_conn.e; t = griglia_conn.t; lelv = griglia_connAv.el2nodi; lelp = griglia_connAp.el2nodi;

for ie = 1:griglia_conn.ne [Ak,Bk,Ck,fk] = calcola_Ak_fk(p(1,t(1:3,ie)),p(2,t(1:3,ie)), ... griglia_geom.aree(ie),dati_problema,XY,O, ... PHI,gradPHI,N_rv,PSI,N_rp); for i=1:N_rv n_iv = lelv(ie,i); for j=1:N_rv n_jv = lelv(ie,j); A(2*n_iv-1:2*n_iv,2*n_jv-1:2*n_jv) = A(2*n_iv-1:2*n_iv,2*n_jv-1:2*n_jv) + Ak(2*i1:2*i,2*j-1:2*j); end for j=1:N_rp n_jp = lelp(ie,j); A(2*n_iv-1:2*n_iv,Sp+n_jp) = A(2*n_iv-1:2*n_iv,Sp+n_jp) + Bk(j,2*i-1:2*i)'; A(Sp+n_jp,2*n_iv-1:2*n_iv) = A(Sp+n_jp,2*n_iv-1:2*n_iv) + Bk(j,2*i-1:2*i); end f(2*n_iv-1:2*n_iv) = f(2*n_iv-1:2*n_iv) + fk(2*i-1:2*i); end for i=1:N_rp n_ip = lelp(ie,i); for j=1:N_rp n_jp = lelp(ie,j); A(Sp+n_ip,Sp+n_jp) = A(Sp+n_ip,Sp+n_jp) + Ck(i,j); end end end %fprintf('\n *********un ciao a Riccardo da Matlab ----> %s *********\n\n',caso_test); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Imposizione delle condizioni al contorno di Neumann %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:size(lati_Neumann,2); % ciclo sui lati di Neumann lato_N = lati_Neumann(i); % lato su cui assegnata la condizione marker = griglia_conn.e(5,lato_N-griglia_conn.ni); ie = griglia_conn.lati2el(lato_N,1); % elemento cui il lato appartiene x_e = p(1,griglia_conn.lati2no(lato_N,:))'; y_e = p(2,griglia_conn.lati2no(lato_N,:))'; fk = calcola_N(x_e, y_e, p(1,t(1:3,ie)), p(2,t(1:3,ie)), ... X1D, O1D, ... griglia_geom.aree(ie),griglia_geom.lunghLati(lato_N), ... dati_problema, ... rv, N_rv, marker); for i=1:N_rv n_i = lelv(ie,i); f(2*n_i-1:2*n_i) = f(2*n_i-1:2*n_i) + fk(2*i-1:2*i);

Pag. 37 di 43

13/12/2005

end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Imposizione delle condizioni al contorno di Dirichlet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [UDir iUDir] = calcola_D(griglia_connAv.nodi,nodi_Dirichlet,dati_problema); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Partizione della matrice e del termine noto %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% gdl = setdiff([1:dim],iUDir); % gradi di libert effettivi A11 = A(gdl,gdl); A12 = A(gdl,iUDir); A21 = A(iUDir,gdl); A22 = A(iUDir,iUDir); f1 = f(gdl); U2 = UDir; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Risoluzione Sistema lineare e calcolo reazioni vincolari %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% U1 = A11\(f1-A12*U2); f2 = A21*U1 + A22*U2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Costruzione del vettore soluzione completo, comprendente % i valori nei nodi di Dirichlet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% U = zeros(dim,1); U(gdl) = U1; U(iUDir) = U2; if ~isempty(f2) R = -(f(iUDir)-f2); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Plot 3d della soluzione calcolata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Uv = U(1:Sp); Up = U(Sp+1:end); Web_griglia_deformata; Web_grafica_3d %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Calcolo norme L2 e H1 dell'errore (qualora sia disponibile % la soluzione esatta) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if(~isempty(soluzione.u_esatta)) [Norma_Err_L2, Norma_Err_H1] = calcola_norme_err(... griglia_conn.ne,p,t,griglia_connAv.el2nodi, ... griglia_geom.aree,soluzione,U(1:Sp), ... rv, N_rv); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Stampa su schermo norme dell'errore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fprintf(1,'\n\nNorme dell''errore sulla variabile velocit':\n') fprintf(1,'%s %0.5e\n','norma H1 --> ', Norma_Err_H1) fprintf(1,'%s %0.5e\n\n','norma L2 --> ', Norma_Err_L2) end % STEP 5 % Put variables that you want to put into your HTML output document % in an output structure. You create an HTML output document from % OUTPUT_TEMPLATE.HTML. See the sample M-files in the wsdemos % directory for examples. %outstruct.my_output_variable_1 = More MATLAB computations creating ... % scalars, matrices, cell arrays, graphics files;

Pag. 38 di 43

13/12/2005

outstruct.my_output_variable_1 = input_caso; % STEP 6 % Call the function HTMLREP with the output structure you just % created and the file name you created from OUTPUT_TEMPLATE.HTML. % Replace <OUTPUT_TEMPLATE.HTML> with the name of the HTML output % file you created using OUTPUT_TEMPLATE.HTML. % This call fills the string RETSTR to return and optionally % writes the output as a file if a valid filename is given as the % second argument to the present function. templatefile = which('EFelinc2D_output.html'); if (nargin == 1) retstr = htmlrep(outstruct, templatefile); elseif (nargin == 2) retstr = htmlrep(outstruct, templatefile, outfile); end % Vengono cancellate alcune varibili di servizio clear Ak Bk Ck fk i j n_i n_iv n_ip n_jv n_jp ie lelv lelp x_e y_e lato_N marker return

4.5 Usability
La facilit di utilizzo (user-friendliness) una componente di grande rilevanza in tutte le applicazioni che hanno un'interfaccia utente. Il Sistema sviluppato nel presente progetto consente facilmente laccesso da remoto a qualsiasi utente autorizzato che disponga di una connessione ad Internet. E naturalmente possibile sviluppare unimplementazione pi sofisticata della GUI. Questa fase del lavoro sar oggetto di successiva elaborazione .

Pag. 39 di 43

13/12/2005

Cap. 5 Validazione Numerica


I problemi test considerati nel seguito corrispondono alla situazione fisica di una membrana elastica di materiale incomprimibile soggetta allazione del peso proprio (ipotesi di plane stress, vedi Fig.8). Nei calcoli vengono impiegate tre coppie di spazi di elementi finiti: U h = ( P (Th )) 2 e Ph = P (Th ) (coppia instabile); 1 1 U h = ( P2 (Th )) 2 e Ph = P (Th ) (coppia stabile); 1 Elemento MINI (variante stabile della prima scelta). La prima scelta impiega funzioni lineari per approssimare entrambe le variabili spostamento e pressione e non soddisfa la condizione LBB, come risulta evidente dalla Fig.12 che illustra il campo di pressione idrostatica affetto da notevoli oscillazioni. Si nota che il corrispondente campo di spostamento correttamente approssimato come riportato in Fig.11.

Fig.11: Campo di spostamento (coppia instabile)

Pag. 40 di 43

13/12/2005

Fig.12: Campo di pressione idrostatica (coppia instabile)

Per superare i problemi di instabilit causati dallutilizzo di elementi finiti di uguale ordine per spostamento e pressione, si pu impiegare unapprossimazione quadratica per il campo di spostamento, oppure lelemento MINI. Il risultato ottenuto illustrato in Fig.13 e nelle Figure 1 e 2, dove si nota che la distribuzione di pressione non presenta alcun fenomeno di oscillazione spuria. Il campo di spostamento del tutto analogo a quello illustrato in Fig. 11.

Fig. 13 Campo di pressione idrostatica (coppia stabile) Pag. 41 di 43

13/12/2005

Cap.6 Conclusioni
Nel presente elaborato di Laurea stato progettato e messo in opera un Sistema Web per Calcolo Scientifico con relativa infrastruttura di Networking. Quale motore di calcolo si considerato lambiente Matlab, mentre lapplicazione lo studio numerico a Elementi Finiti di problemi complessi di Meccanica dei Continui in regime incomprimibile. Nella fase di validazione sono stati eseguiti numerosi test di funzionamento da piattaforme utente differenti con vari tipi di connettivit. In un orizzonte sempre pi ricco di tecnologie Wireless su client mobili stata testata anche la possibilit di collegamento al Sistema da un portatile Apple Macintosh PowerBook G4 (vedi Fig.13) collegato in Bluetooth ad un cellulare UMTS (Universal Mobile Telephone System). La realizzazione dellinfrastruttura del Sistema utilizzata nel progetto stata condotta su una configurazione di base: connettivit ADSL, router CISCO, tre Server in architettura Intel collegati in LAN Ethernet 100 Mbps. Particolare attenzione stata rivolta a conferire al Sistema unelevata modularit e scalabilit, in previsione di upgrade successivi di grande interesse in potenziali applicazioni di Calcolo Scientifico in ambito Accademico e Industriale.

Pag. 42 di 43

13/12/2005

Bibliografia e riferimenti su Web


[1] W. Richard Stevens - The Protocols (TCP/IP Illustrated, Volume 1) Addison-Wesley Professional Computing Series [2] [3] [4] [5] [6] Chapman, Stephen J. MATLAB Programming for Engineers, Brooks/Cole, Pacific Grove Using Matlab Version 6 The Language of Technical Computing, The MathWorks, Inc. Matlab Web Server Version 1.2 The Language of Technical Computing, The MathWorks, Inc. A. Quarteroni, R. Sacco, F. Saleri, Numerical Mathematics, Springer-Verlag, New York (2000) T.J.R. Hughes, The Finite Element Method - Linear static and dynamic finite element analysis (Cap. 2 e 4), Prentice-Hall (1987). [7] [8] O.C. Zienkiewicz, The Finite Element Method, Mc-Graw Hill (1977). S.C. Brenner, L.R. Scott, The Mathematical Theory of Finite Element Methods (Cap. 9), TAM , Springer-Verlag New York (1994). [9] D. Braess, Finite Elements: Theory, Fast Solvers, and Applications in Solid Mechanics (Cap. 6), Cambridge University Press, Cambridge (1997). [10] R. Dautray, J.L. Lions, Mathematical Analysis and Numerical Methods for Science and Technology (Cap. 1), Vol. 1, Springer-Verlag Berlin Heidelberg (1990,2000). [11] Analisi di strutture mediante elaboratore: impostazione e redazione delle relazioni di calcolo (CNR 10024/86) http://www.cnr.it/sitocnr/Iservizi/Pubblicazioni/Catalogopubblicazioni/normetecniche_file/Costruzioni.h tml [12] [13] [14] [15] [16] [17] [18] Internet RFC Archives http://www.faqs.org/rfcs/ Sito istituzionale dell'International Organization for Standardization : http://www.iso.org/ CISCO Systems http://www.cisco.com/ The Apache Software Foundation, http://www.apache.org Gnu Project, http://www.gnu.org/ Free Software Foundation, http://www.fsf.org/ Internet Service Provider, C.U. s.r.l. http://www.cu.mi.it/

Pag. 43 di 43

Potrebbero piacerti anche