Sto lavorando a un progetto in cui ho due domini accoppiati adv-diff attraverso i rispettivi termini sorgente (un dominio aggiunge massa, l'altro sottrae massa). Per brevità, li sto modellando in stato stazionario. Le equazioni sono le equazioni di trasporto standard di diffusione dell'avvezione con un termine sorgente simile al seguente:
Dove è flusso diffusivo e propizio per le specie , e è il termine sorgente per le specie .
Sono stato in grado di scrivere un risolutore per il mio problema utilizzando il metodo Newton-Raphson e ho accoppiato completamente i due domini utilizzando una matrice di massa a blocchi, ovvero:
Il termine viene utilizzato per determinare la matrice Jacobiana e aggiornare sia c 1 e c 2 :
o
Per accelerare le cose, non calcolo il Jacobian ad ogni iterazione - in questo momento sto giocando con ogni cinque iterazioni, che sembra funzionare abbastanza bene e mantenere stabile la soluzione.
Il problema è: mi trasferirò in un sistema più grande in cui entrambi i domini sono in 2D / 2.5D e il calcolo della matrice giacobina sta esaurendo rapidamente le risorse del mio computer disponibili. Sto costruendo questo modello per utilizzarlo in seguito in un'impostazione di ottimizzazione, quindi non posso essere al volante ad ogni iterazione che sintonizza il fattore di smorzamento, ecc.
Ho ragione a cercare altrove un algoritmo e un algoritmo più solido per il mio problema, o è buono come sembra? Ho esaminato un po 'la quasi-linearizzazione, ma non sono sicuro di quanto sia applicabile al mio sistema.
Ci sono altri algoritmi slick che potrei aver perso che possono risolvere un sistema di equazioni non lineari senza ricorrere al ricalcolo del giacobino come offeso?