construire les termes indépendants du temps :
Les matrices
,
et
et le vecteur
sont indépendants du temps, on construit donc les matrices et
avant la boucle en temps.
A=rc*M+dt*theta*K ; B=A-dt*K ;
si les matrices
et
sont construites Morse,
et
sont stockées automatiquement Morse,
si
et
sont construites pleines, B=sparse(A-dt*K) définie
en stockage Morse (gain de place).
Les noeuds concernés par les CL étant les mêmes
, on modifie
avant la boucle en temps pour prendre en compte les CL.
(attention : si
est en stockage plein, utiliser ApleinCLdi du TP1, si
est en stockage morse, utiliser AmorseCLdi du TP1).
La décomposition de la matrice
en
est faite une seule fois, avant la boucle en temps (gain de temps) : A=lufact(A) ;
Remarque : si
est stockée pleine, passer en stockage Morse par A=lufact(sparse(A)) ; (gain de place)
On sauvegarde la partie constante du second membre avec la CL de Neumann (constante en temps) dans Fc=M*fs.