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

Langage C++ Discussion :

Conteneur/Table de hachage pour éléments imbriqués les uns dans les autres (maillage adaptatif)


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par défaut Conteneur/Table de hachage pour éléments imbriqués les uns dans les autres (maillage adaptatif)
    Bonjour à tous.

    Je bosse actuellement sur un code en Fortran de méca flu, que je vais peut être, à terme, porter en C++ pour des raisons de facilité de maintenance du code sur le long terme. Donc à chaque fois que j'implémente un truc, je me demande "mais comment je ferais pour implémenter ça efficacement en C++". L'un des trucs de base c'est le maillage adaptatif.



    Globalement on a:
    - des grosses cellules de niveau "coarse" (niveau de raffinement minimal)
    - en fonction de la géométrie du problème, chaque cellule est divisé en cellules intermédiaires de plus petites tailles
    - jusqu'à des cellules "feuilles" (niveau de raffinement maximal) qui contiennent des données physiques (pression, densité ...)

    Comme ces éléments sont au coeur du calcul, il faut que l'implémentation soit murement réfléchie pour que cela soit le plus rapide possible.

    Précision : comme c'est sur du long terme, je peux utiliser les nouvelles choses du C++1x.

    Déjà au niveau des cellules feuilles (données et méthodes associées), je pense coder ça en template pour tirer partie de la métaprogrammation. Selon vous est-ce la meilleure méthode ?

    Ensuite, pour des raisons d'analyses ultérieures, j'aurai besoin d'organiser ces cellules selon un arbre qui permette des recherches très rapides. La question est donc la suivante : quel conteneur (ou autre si il y a mieux) de la STL choisir pour faire cet arbre (je précise qu'à part std::vector, j'ai peu d'expérience avec les autres conteneurs). Globalement ce que je voudrai faire c'est un arbre un peu de cette façon :

    qui permette de faire des recherches rapides mais dans les deux sens :
    - top-down : je veux avoir des informations sur une région donnée : je sonde alors les infos en partant du raffinement minimal et je vais jusqu'au cellules feuilles
    - down-top : je veux pouvoir faire par exemple une recherche sur le maximum de pression (P ici), et une fois que j'ai ce maximum, en déduire dans quelle région il est situé en remontant l'arbre en sens inverse

    La question est donc la suivante : quel est la façon la plus efficace de procéder ? Je pense qu'il s'agit de stocker cela dans un conteneur de la STL, mais lequel ?

    Merci beaucoup

  2. #2
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894

Discussions similaires

  1. enlever les slashes devant les apostrophes dans les mails
    Par laurentSc dans le forum Langage
    Réponses: 10
    Dernier message: 16/11/2010, 18h57
  2. Réponses: 3
    Dernier message: 06/08/2009, 17h09
  3. Réponses: 21
    Dernier message: 18/11/2008, 14h36
  4. les classes et les templates dans les plugins
    Par asoka13 dans le forum C++
    Réponses: 22
    Dernier message: 24/01/2008, 17h11
  5. Réponses: 4
    Dernier message: 11/09/2006, 16h55

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