FEM: singolarità della matrice di rigidità


11

Sto risolvendo l'equazione differenziale con condizioni iniziali u (0) = u (1) = 0 , u '' (0) = u '' (1) = 0 . Qui \ sigma (x) \ geqslant \ sigma_ {0}> 0 è un parametro. Nella forma dell'operatore possiamo riscrivere l'equazione differenziale come Au = f , dove l'operatore A è definito positivo.

(σ2(x)u(x))=f(x),0x1
u(0)=u(1)=0u(0)=u(1)=0σ(x)σ0>0Au=fA

Seguendo lo schema FEM, riduco il mio problema a un problema di ottimizzazione

J(u)=(Au,u)2(f,u)minu
Introduco elementi finiti hk(x) come
vk(x)={1(xxkh)2,x[xk1,xk+1]0,otherwise
per qualsiasi k=1,,n1 , dove xk=hk , h=1n . Gli elementi finiti v0(x) e vn(x) sono introdotti in modo simile.

Provo a trovare numericamente il vettore α tale che u(x)=k=0nαkvk(x) risolva il problema di ottimizzazione. Abbiamo

J(u)=i=0nj=0nαiαj(Avi,vj)i=0n2αi(vi,f)=αTVα2αTbminα,
dove bi=(f,vi) e Vi,j=(Avi,vj) . Dopo la differenziazione rispetto a α ricevo
Vα=b,
ma qui la matrice di rigidezza V è singolare. Quindi cosa devo fare? Forse devo scegliere altri elementi finiti?

Ciao, Nimza, hai un problema con il test che conosci la soluzione esatta? Se sì, prova prima a risolvere VTVα=VTb per verificare se la tua base è corretta all'interno del dominio, se tutto sembra corretto, allora forse è la BC erroneamente posizionata a rendere singolare la matrice. Ma il BC mi sembra OK.
Shuhao Cao,

Risposte:


13

In ordine di probabilità decrescente

  1. Base errata Dalla tua descrizione, sembra che tu abbia esattamente due funzioni quadratiche con supporto su ciascun elemento. Quello spazio non è una partizione di unità e non è (primi derivati ​​continui). Per discretizzare direttamente il problema del quarto ordine (invece di ridurlo a un sistema di equazioni del secondo ordine, ad esempio), avrai bisogno di una base . Si noti che la base dovrebbe essere in grado di riprodurre esattamente tutte le funzioni lineari.C1C1C1

  2. Condizioni al contorno insufficienti. Ciò sarà palesemente ovvio se si calcola e traccia lo spazio nullo.

  3. Assemblaggio errato. Controlla la mappa dagli elementi all'ordinamento assemblato per confermare che è quello che ti aspettavi, ad esempio che non sta invertendo l'orientamento degli elementi.

  4. Assemblaggio locale errato. In 1D, è possibile calcolare analiticamente l'aspetto della matrice di rigidezza dell'elemento (forse per un caso semplificato) e verificare che il codice lo riproduca.


Grazie. 1. Penso che avrò bisogno di una base perché . Quindi, se considero solo funzioni che soddisfano le condizioni al contorno, allora . C2(Au,v)=01σ2(x)u(x)v(x)dxkerA={0}
Applicazione

1
È sufficiente una base , l'integrando non deve essere continuo. Si noti che le condizioni al contorno sui secondi derivati ​​diventeranno un integrale al contorno. Puoi usare una base per la discretizzazione diretta di un problema del quarto ordine, ma dovrai integrare i termini di salto come con i metodi discontinui di Galerkin per i sistemi del primo e del secondo ordine. Non è un cattivo metodo, ma è inutilmente complicato in 1D perché è così facile costruire basi con qualsiasi ordine di continuità (es. Spline). Questo documento è un esempio di " DG". C1C0C0
Jed Brown,

Ok. Ho corretto la mia base: ora su e . Ora è . Ma il metodo continua a non funzionare. vk(x)=cos2(π2h(xxi))[xi1,xi+1]i=1,,n1C1
Applicazione

La base dovrebbe essere in grado di riprodurre funzioni lineari, ma non è possibile. Una volta risolto il problema, controlla che gli integrali vengano eseguiti correttamente, quindi controlla le condizioni al contorno. C1
Jed Brown,

0

Chiaramente il problema ha un derivato dell'ordine ODD. Più specificamente per numeri di Péclet più grandi , la matrice di rigidezza potrebbe non mantenere una forma "fine", che crea zeri durante l'assemblaggio e quindi diventa determinante singolare o talvolta molto piccolo che si nota dalle oscillazioni nel diagramma della soluzione.

La soluzione a questo tipo di problema è l'uso della pena, tra gli altri metodi. Più specificamente questo si chiama metodo Petrov-Galerkin .

Ci scusiamo per la mia pessima comprensione dell'inglese.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.