IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Problème de capacité : taille des tableaux


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Par défaut Problème de capacité : taille des tableaux
    bonjour,
    voilà j'ai deux question, j'ai un système d'équations de taux qui s'écrit come suite:

    dA(x,t)/dt=f(A,B,C,D), avec N=A+B ==> B=N-A
    dC(x,t)/dx+1/vdC(x,t)/dt=g(A,B,C,D)
    dD(x,t)/dx+1/vdD(x,t)/dt=l(A,B,C,D)

    que je dois résoudre. jusqu'ici tout va bien sauf quand j veux augmenter la taille de tableaux qui est bien sûr dtérminée par le nombre de pas temporel, et en sachant que j'utilise un pc portable donc j'ai une capacite reduite, alors ça bloque. alors comment je dois faire si je veux éviter ce blocage?
    merci pour votre réponse

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Avant d'essayer de te répondre, j'essaie de te montrer comment reformuler ton problème d'une manière un peu moins foireuse.

    voilà j'ai deux question
    Heureusement que tu as écrit question et non questions, parce que je n'en vois qu'une.

    un système d'équations de taux
    Il conviendrait d'indiquer que ce sont des équations aux dérivées partielles, puisqu'il y a des dérivées par rapport à t et à x. Je suppose que t représente le temps, mais que représente x ?

    que je dois résoudre
    On ne résout pas des équations différentielles, on les intègre. Je suppose qu'il s'agit de l'étude d'un régime transitoire; tu dois donc avoir des conditions initiales: lesquelles ?

    dC(x,t)/dx+1/vdC(x,t)/dt=g(A,B,C,D)
    dD(x,t)/dx+1/vdD(x,t)/dt=l(A,B,C,D)
    Quel est l'intervalle dans lequel varie x et quelles sont les conditions aux limites ? Par quelle méthode intègres-tu selon x ? Différences finies ?

    augmenter la taille de tableaux
    Que viennent faire des tableaux dans cette aventure ?

    Quand ces points (et peut-être encore quelques autres qui m'ont échappé) auront été clarifiés, je pense que ton problème sera presque résolu.

    Jean-Marc Blanc

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    je pense que le soucis est que chacune des variables est stockée à chaque pas de temps dans des tableaux.

    du coup si on change le pas d'intégration, il faut augmenter la taille des tableaux et cela ne peut se faire que dans la "limite des stocks disponibles" (plaisanterie à part, je pense que la taille maxi de mémoire que le système peut allouer est atteinte).

    pour éviter ce blocage, ne pas stocker toutes les variables à TOUS les pas de temps, on n'en a en général pas besoin pour le calcul.

    celles qui ne sont plus stockées, on peut les écrire dans un fichier. du coup l'utilisation mémoire est indépendante du pas d'intégration.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    Kango a tres bien resume la question et tout est dit !! je rajouterai juste
    une petite chose pour eclaircir.
    Il ne faut donc pas declarer une dimension (ou un indice si tu preferes) pour le tableau qui gere la variable que tu veux determiner (qui correspondent a A , C ou D). C'est comme ca que tu economises de la memoire.
    Ensuite tu stockes les variables a tous ou certains pas de temps dans un fichier. Tu peux alors relire le fichier pour exploiter les resultats (par exemple tracer l'evolution temporelle des fonctions A, C et D).

    Si N est le nombre de pas de temps total
    tu auras un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    open (1, file='resultats.dat', status='unknown')
     
             do it= 1, N     ! boucle en temporelle
     
                t=N*dt       ! dt est le pas de temps d'integration
     
                 ........         ! methode de resolution de A, C et D
                 ........        
     
                   if ( mod(N,20).eq.0 ) write(1,*) t, A, C, D  ! stockage de A, C, D
                                         ! dans le fichier resultats.dat
                                         ! toutes les 20 iterations
                 end do

Discussions similaires

  1. problème avec la taille des formulaire et la résolution écran
    Par abou_alkassim dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/01/2010, 09h35
  2. Taille des tableaux par "autofit"
    Par loupgarou dans le forum VBA Word
    Réponses: 20
    Dernier message: 19/09/2008, 10h19
  3. Problème en mémoire avec des tableaux
    Par dword2add dans le forum C++
    Réponses: 3
    Dernier message: 11/11/2007, 14h36
  4. Taille des tableaux et Ubound
    Par Cris++ dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/05/2007, 00h43
  5. Réponses: 2
    Dernier message: 09/06/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo