FREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++

Documenti analoghi
Introduzione a FreeFem++

FreeFem++ mini tutorial

FemCode: libreria Matlab per FEM

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

Prodotti scalari e matrici

Il metodo di Galerkin Elementi Finiti Lineari

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Geometria e Topologia I (U1-4) 2006-mag-10 61

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

1 Schemi alle differenze finite per funzioni di una variabile

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

12) Metodo dei minimi quadrati e linea di tendenza

Informatica Applicata al Suono Tutorial Matlab

UD 3.2b: Programmazione in Pascal (1)

Corso di Matematica per la Chimica

Laboratorio di Calcolo Numerico

Rette e piani in R 3

STRUTTURE DI CONTROLLO DEL C++

Introduzione al Calcolo Scientifico - A.A

Esercitazioni di Analisi e Simulazione dei Processi Chimici

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Laboratorio di Informatica

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

Equazioni del 2. ordine omogenee a coeff. costanti

Corso di Informatica di Base

LEZIONE 12. v = α 1 v α n v n =

Corso di Laurea in Fisica. Geometria. a.a Canale 3 Prof. P. Piazza Magiche notazioni

Una Libreria di Algebra Lineare per il Calcolo Scientifico

Risoluzione di un problema di diffusione-trasporto-reazione sul Lago di Garda con Elementi Finiti

Contenuti delle lezioni:

Algebra Lineare e Geometria. Il teorema fondamentale dell algebra. 1 Non c è un ordine totale sull insieme dei complessi

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO

Annamaria Mazzia. Corso di Metodi Numerici per l Ingegneria dispense e altro materiale su

Cenni sui metodi iterativi per sistemi lineari. Analisi Numerica Prof. M. Lucia Sampoli a.a. 2014/2015

Scopo del laboratorio

Esercizi di Geometria - 2

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Forme bilineari simmetriche

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

1 Il polinomio minimo.

Il Toolbox di ottimizzazione di Matlab. Mauro Gaggero

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Introduzione alla programmazione

Implementazione del metodo Galerkin/Elementi Finiti in 1d. Corso di Metodi Numerici per La Microelettronica, 2 o Semestre A.

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8.

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Risoluzione di problemi ingegneristici con Excel

SISTEMI LINEARI MATRICI E SISTEMI 1

Cognome: Nome: Matricola: a. Si enunci e dimostri il teorema della media integrale per funzioni continue. (5 punti)

Fondamenti di Informatica

Corso di Calcolo Numerico

Note per la Lezione 6 Ugo Vaccaro

Lezione 10: Teorema di Rouchè-Capelli e la classificazione dei sistemi lineari

Corso di Calcolo Numerico

Anno Scolastico 2014/15 - Classe 1D Verifica di matematica dell 11 Maggio Soluzioni degli esercizi. 2(x 2) 2(x 1) + 2 = 3x

Appunti su Indipendenza Lineare di Vettori

Esercitazione 1: Introduzione a MATLAB

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

Operazioni tra matrici e n-uple

Introduzione agli Algoritmi

1 Equazioni parametriche e cartesiane di sottospazi affini di R n

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia

Funzioni, Stack e Visibilità delle Variabili in C

Esercizi d esame. Elena Tundo

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

Metodi per la risoluzione di sistemi lineari

x1 + 2x 2 + 3x 3 = 0 nelle tre incognite x 1, x 2, x 3. Possiamo risolvere l equazione ricavando l incognita x 1 x 1 = 2x 2 3x 3 2r 1 3r 2 x 2 x 3

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Esercizi svolti. delle matrici

1 Definizione di sistema lineare non-omogeneo.

Sistemi II. Sistemi II. Elisabetta Colombo

Dipendenza e indipendenza lineare (senza il concetto di rango)

LeLing12: Ancora sui determinanti.

Introduzione ai modelli Modellazione agli elementi finiti Esempi pratici di modellazione

Lezione 8. Sottoprogrammi

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

2. Algoritmi e Programmi

Concetti Introduttivi. Il Computer

3. Vettori, Spazi Vettoriali e Matrici

Università di Siena. Teoria della Stima. Lucidi del corso di. Identificazione e Analisi dei Dati A.A

1. Funzioni implicite

1 Calcoli numerici e algebrici

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Il teorema di Rouché-Capelli

Introduzione elementare al metodo degli Elementi Finiti.

Una libreria di funzioni per la geometria analitica

Laboratorio di Analisi Numerica Lezione 7

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

La principale modalità di calcolo è l applicazione di funzioni

Complemento ortogonale e proiezioni

2 Sistemi lineari. Metodo di riduzione a scala.

Matematica II. Risolvere o integrare una e.d. significa trovarne tutte le soluzione, che costituiscono il cosidetto integrale generale.

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015

Transcript:

18 Aprile 2013

Indice 1) Introduzione 2) Esempio base 3) Sintassi 4) Esempio

Part I Indroduzione

Dettagli iniziali Risolve problemi in 2D e 3D, creato principalmente per risolvere problemi variazionali Free software Basato su C++, ne mantiene una sintassi dei comandi simile Sviluppatori: Frédéric Hecht, Olievier Pironneau, Antoine Le Hyaric, Jacques Morice

Vantaggi Generazione/caricamento di mesh Possibilità di utilizzare diversi tipi di elementi finiti Sono inclusi molti solutori lineari e librerie varie: CG, GMRES, UMFPACK, SUPERLU,... Possibilità di lavorare con matrici sparse Sintassi semplice per scrivere la formulazione debole di un particolare problema Mailing list efficiente

Svantaggi Visualizzazione dei risultati non professionale Manuale non sempre chiarissimo La documentazione degli esempi sul sito non è organizzata Installazione su Linux difficoltosa Sintassi particolare per alcune operazioni +,,, / vettoriali e scalari

Part II Esempio base

Equazione di Poisson Prendiamo un semplice problema differenziale: { u(x, y) = f (x, y) in Ω u = 0 on Ω per f (x, y) data, Ω R 2 aperto e u = 2 u x 2 + 2 u y 2. Data f (x, y) = xy e sia Ω il disco unitario centrato nell origine, supponiamo ora di voler risolvere il problema di Poisson sopracitato utilizzando FreeFem++. Utilizzando un approccio standard per il calcolo delle variazioni, ricordiamo che la formulazione variazionale in analisi è la seguente: Ω u vdxdy = Ω fvdxdy v H 1 0 (Ω)

Il primo programma

Mesh

Plot

Plot 3D

Part III Sintassi

Comandi per lavorare con le mesh Il comando più generale che abbiamo visto è builtmesh che agisce su un tipo di dato border. Così per creare una mesh si possono scrivere i seguenti semplici comandi: Altrimenti, se si cerca di creare una mesh su un quadrato, si può utilizzare un comando più rapido square.

Comandi per definire gli spazi degli elementi finiti Le funzioni che sono coinvolte nel problema devono essere ovviamente trattate come particolari elementi di certi spazi di elementi finiti. Così possiamo definire un tipo di dato fespace e specificare che tipo di spazio di elementi finiti si tratta: fespace IDspace(IDmesh,IDFE). I tipi di elementi finiti che possiamo scegliere sono svariati: P0, P03d, P1, P13d, P1dc,...

Comandi per la visualizzazione dei risultati Il comando basilare per visualizzare mesh e funzioni appartenenti agli elementi finiti è plot. Per visualizzare meglio i risultati ottenuti è possibile settare dei parametri opzionali, i più utili sono i seguenti: dim value fill wait boundary

Comandi per creare cicli I cicli for e while sono disponibili in FreeFem++ entrambi con le parole chiave break e continue. La sintassi è simile a tutti gli altri linguaggi ad alto livello: for(inizializzazione; CONDIZIONE; CAMBIAMENTO){CORPO} Abbiamo poi a disposizione un ciclo per vero con la seguente sintassi: while(condizione){corpo}

Il comando solve Nell esempio che abbiamo mostrato abbiamo risolto la formulazione debole utilizzando il comando solve. Il tipo di risolutore utilizzato di default è lo sparsesolver che si applica a delle generiche formulazioni deboli che abbiano dipendenza lineare dall incognita. La soluzione verrà poi calcolata con una tolleranza di 10 6. C è la possibilità di fissare inoltre dei parametri opzionali che modificano il modo in cui si risolve il sistema lineare associato alla formulazione variazionale in analisi, tre parametri fondamentali sono: solver eps tgv nbiter

Comandi di scrittura e lettura da file Esistono dei particolari tipi di dato riservati per la dichiarazione di file di input o di output. Per la scrittura su file: Mentre per la lettura da file:

Part IV Esempio

Equazione di Poisson In questo secondo esempio vedremo due modi per risolvere un equazione di Poisson simile a quella vista nella prima parte, cioè { u(x, y) = f (x, y) in Ω u = 0 on Ω Scegliamo Ω = [0, 1] [0, 1] e f (x, y) = 2x 2x 2 + 2y 2y 2, in questo modo sappiamo che la soluzione esatta è u(x, y) = x(1 x)y(1 y).

Codice per confrontare i due approcci

Il comando varf Il comando varf identifica uno dei principali tipi di dato e serve per definire una particolare forma variazionale piena. La sintassi standard è la seguente: Come abbiamo visto nell esempio precedente è possibile definire una forma variazionale dipendente solo da un input, ciò si realizza con il comando unused. E possibile inoltre fissare delle condizioni di bordo solo sul primo input e ciò si effettua utilizzando la stessa sintassi che abbiamo visto con il comando solve.

Il comando LinearGMRES Il comando in analisi serve per risolvere problemi variazionali e per risolvere sistemi lineari utilizzando l algoritmo GMRES (Gereralized Minimum Residual). La sintassi basilare per risolvere sistemi lineari è questa: dove vogliamo risolvere il sistema Ax = b. Bisogna fare attenzione però perchè l utilizzo del vettore x ha un duplice ruolo: come input rappresenta il vettore di partenza per l algoritmo GMRES e come output perchè il valore di partenza viene sovrascritto e su x viene salvata la soluzione del sistema lineare.

Il comando LinearGMRES Vediamo ora come utilizzare il LinearGMRES per risolvere una particolare formulazione variazionale. Supponiamo di dover trovare u tale che a(u, v) = f, v v Vh dove a(, ) è una forma bilineare e coerciva. Per trovare tale u si può scrivere: dove Atimesxx è una particolare func che dato in input un vettore xx restituisce il prodotto matrice-vettore tra la matrice associata alla forma bilineare a(, ) e il vettore xx, dove F è la forma variazionale associata al termine noto f, v.

FINE