Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1381 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  bibliothèque fipy

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bibliothèque fipy

n°2289269
damienrobe​rt
Posté le 01-10-2016 à 23:03:54  profilanswer
 

Bonjour à tous,
 
Je cherche à coder un algorithme sous python me permettant de modéliser l'apparition de motifs sur le pelage des animaux grâce aux équations de Turing (mettant en jeu les concentrations u et v). Pour cela j'utilise la bibliothèque FiPy. Un motif n'apparaissant que si le système de départ est instable, il faut que les conditions initiales sur u et v puissent être modifiées. Voici mon programme où pour l'instant tout est initialisé à 0,5 ... ce qui ne me convient pas donc ^^
 
from fipy import *
from math import *
 
a = 0.25
b = 0.75
d = 20
nx = 20
ny = nx
dx = 1.
dy = dx
L = dx * nx
mesh = Grid2D(dx=dx, dy=dy, nx=nx, ny=ny)
 
u = CellVariable(name = "concentration u", mesh = mesh, hasOld=True, value = 0.5)
v = CellVariable(name = "concentration v", mesh = mesh, hasOld=True, value = 0.5)
 
D = 1.
eqn0 = TransientTerm(var=u) == a - u + u*u*v + DiffusionTerm(1, var=u)
eqn1 = TransientTerm(var=v) == b - u*u*v + DiffusionTerm(d, var=v)
 
eqn = eqn0 & eqn1
 
#pas d'échange avec l'extérieur -> conditions de Neumann
u.faceGrad.constrain(((0,),(0,)), where=mesh.facesTop)
u.faceGrad.constrain(((0,),(0,)), where=mesh.facesBottom)
u.faceGrad.constrain(((0,),(0,)), where=mesh.facesRight)
u.faceGrad.constrain(((0,),(0,)), where=mesh.facesLeft)
v.faceGrad.constrain(((0,),(0,)), where=mesh.facesTop)
v.faceGrad.constrain(((0,),(0,)), where=mesh.facesBottom)
v.faceGrad.constrain(((0,),(0,)), where=mesh.facesRight)
v.faceGrad.constrain(((0,),(0,)), where=mesh.facesLeft)
 
vi = Viewer((u, v))
 
for t in range(1):
   u.updateOld()
   v.updateOld()
   eqn.solve(dt=1.e-3)
   vi.plot()
 
J'avais essayé en rajoutant les lignes de code suivantes... mais cela ne fonctionne pas.
 
x, y = mesh.cellCenters
u.value = 0.5 + 0.5*sin(pi*x)*sin(pi*y)
v.value = 1 + sin(pi*x)*sin(pi*y)
 
Merci d'avance :)

mood
Publicité
Posté le 01-10-2016 à 23:03:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  bibliothèque fipy

 

Sujets relatifs
Installer la bibliothèque OpenSSL QT CREATORbibliothèque GMP
erreur de compilation projet ou bibliothèque introuvableQuelle bibliothéque utiliser ?
Bibliothèque de génération de graphiques & PDF en Java (Open-Source)Conseils écriture Bibliothèque
Zend Frameword - MVC - Problème avec bibliothèque FPDFBibliothèque manquante
Bibliothèque Kakadu pour traitement d'image 
Plus de sujets relatifs à : bibliothèque fipy


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR