Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. function [j, a, b] = getCoeff(num_left, num_right, num_down, num_up, num_cent, type_cent, cl_cent)
  2.  
  3. %{
  4. j = vecteur colonne contenant les numéros des colonnes des coefficients contenus dans a
  5. a = vecteur colonne de coefficients de l'équation du noeud central dans le système linéaire à résoudre
  6. b = valeur du terme de droite de l'équation
  7. num_xxx = numéro du noeud xxx
  8. cl_cent = l'éventuelle valeur de condition limite à prendre par ce noeud
  9. type_cent = type de maille centrale, soit 0 = hors du domaine de calcul,
  10. 1 = noeud de calcul entouré de nœuds de calcul ou condition limite
  11. 2 = nœud condition limite de Dirichlet
  12. %}
  13.  
  14. % Type_cent = 0, on est hors du domaine de calcul donc on renvoit 0
  15. if (type_cent == 0)
  16. j=0;
  17. a=0;
  18. b=0;
  19. if nargout < 1
  20. j = [j; a; b];
  21. end
  22.  
  23. % Type_cent = 1, on applique donc la formule x_i+1,j + x_i-1,j + x_i,j+1 + x_i,j-1 - 4x_i,j = 0
  24. % qu'on renvoit selon l'ordre du passage de paramètres
  25. elseif (type_cent == 1)
  26. a = [1 ; 1 ; 1 ; 1 ; -4];
  27. j = [num_left ; num_right ; num_down ; num_up ; num_cent];
  28. a = [1 ; 1 ; 1 ; 1 ; -4];
  29. b = 0;
  30. if nargout < 1
  31. j = [j; a; b];
  32. end
  33.  
  34. % Type_cent = 2, on est en condition limite donc x_i = b_i
  35. else
  36. j =[num_cent];
  37. a =[1];
  38. b =cl_cent;
  39. if nargout < 1
  40. j = [j; a; b];
  41. end
  42. end
  43. endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement