2.5. Conditions de Dirichlet#
Pour prendre en compte les éventuelles condition de Dirichlet, nous avons besoin d’une fonction de prototype suivant
def Dirichlet(msh, dim, physical_tag, g, triplets, B):
Cette fonction prend comme argument le Triplets triplets
et le vecteur B
du système linéaire et les modifie pour prendre en compte la condition de dirichlet \(u=\)g
sur le domaine de dimension dim
et de tag physique physical_tag
. La technique utilisée pour forcer cette condition est celle vue en cours.
Pour cela, nous parcourons les noeuds I
du domaine de Dirichlet. Puis, dans la liste des indices ligne de triplets
, dès qu’un occurence à I
est obtenu, la valeur de ce triplet est mise à \(0\).
Il ne faut pas oublier, à la fin, d’ajouter un triplet (I,I,1)
correspondant au terme diagonal et de modifier le coefficient B[I] = g(x,y)
.
Cette technique n’est peut être pas la plus optimale ! Mais elle a le mérite de fonctionner…