LaDissertation.com - Dissertations, fiches de lectures, exemples du BAC
Recherche

Equation Laplace SQUELETTE AVEC AIDE

TD : Equation Laplace SQUELETTE AVEC AIDE. Recherche parmi 300 000+ dissertations

Par   •  2 Mai 2017  •  TD  •  1 863 Mots (8 Pages)  •  707 Vues

Page 1 sur 8

## Résolution de l'équation de Poisson / Laplace

# GDP 12/03/2015

# D'après documents Frédéric Legrand www.f-legrand.fr

## Chargement des bibliothèques

import numpy

import math

from matplotlib.pylab import *

## Définition de la classe Poisson

class Poisson:

# Méthode constructeur : initialise matrices et calcule constantes

def __init__(self,p):

# Nb de noeuds sur un coté de la zone de calcul

self.N = 2**p+1

# Taille des matrices de travail

self.M = M = self.N+2

# Taille du pas de discrétisation

self.h = 1.0/(self.N-1)

# Définition des matrices de travail

self.C = numpy.zeros((M,M),dtype=numpy.float64) # Centre

self.G = numpy.zeros((M,M),dtype=numpy.float64) # Gauche

self.D = numpy.zeros((M,M),dtype=numpy.float64) # Droite

self.H = numpy.zeros((M,M),dtype=numpy.float64) # Haut

self.B = numpy.zeros((M,M),dtype=numpy.float64) # Bas

self.F = numpy.zeros((M,M),dtype=numpy.float64) # Sources

self.U = numpy.zeros((M,M),dtype=numpy.float64) # Variable

# Paramètre optimal de sur-relaxation

self.omega = 2.0/(1.0+math.sin(math.pi*self.h))

#___________________________________________________________________________

# Définition du Laplacien

# remplissage des matrices C, G, D, H, B

def laplacien(self):

self.C[:]=-4

self.G[:]=1

self.D[:]=1

self.H[:]=1

self.B[:]=1

return None

#___________________________________________________________________________

# Condition aux limites sur les bords

def valeur_bords(self,v):

"""

Condition aux limites sur la bordure de la zone de simulation

Remplit le contour de la matrice U avec la valeur v

"""

self.U[:,0]=v

self.U[:,-1]=v

self.U[0,:]=v

self.U[-1,:]=v

return None

#___________________________________________________________________________

# Condition aux limites sur une zone

# modification des matrices C, G, D, H, B, F aux points considérés

def valeur_zone(self,v,x,y,long,forme='H',haut=0.1):

"""

Ajoute une condition aux limites dans la zone considérée

Le potentiel y est fixé à v

forme='H' segment horizontal de longueur long demarrant au point (x,y)

forme='V' segment vertical de longueur long demarrant au point (x,y)

forme='B' boite de largeur long et de hauteur haut demarrant en (x,y)

Attention : la zone ne doit pas sortir de la zone de simulation (carré de coté 1)

"""

self.C[x,y]=v

if forme==H:

for i in range (1,long):

self.C[x+i,y]

# Abcisse du point de départ dans les tableaux

...

Télécharger au format  txt (6.2 Kb)   pdf (46.9 Kb)   docx (11 Kb)  
Voir 7 pages de plus »
Uniquement disponible sur LaDissertation.com