Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2008:03_03

Commit 2008-03-04

Modifs

Définition des fixations

Nouvelle syntaxe

Quand on crée un chargement, les fixations correspondantes sont créées automatiquement. Par exemple, l'ensemble de commandes suivant:

loadingset = domain.getLoadingSet()
fixationset = domain.getFixationSet()
loadingset.define(sideset(10001), Field1D(TZ,RE), 1.0, FCT_CINTR_SUP)
fixationset.define(sideset(10001), Field1D(TZ,RE))

se limite maintenant à la définition du chargement:

loadingset = domain.getLoadingSet()
loadingset.define(sideset(10001), Field1D(TZ,RE), 1.0, FCT_CINTR_SUP)

Pour être cohérent, quand on veut annuler un champ, on définit un chargement nul au lieu d'une fixation. Au lieu de:

fixationset = domain.getFixationSet()
fixationset.define(curveset(4), Field1D(TX,RE))

on écrit:

loadingset = domain.getLoadingSet()
loadingset.define(curveset(4), Field1D(TX,RE), 0.0, EX_INCR)

Le plus souvent, comme on veut fixer à zéro la variation du champ et non le champ lui-même, il faut spécifier l'option EX_INCR.

Remarques

  • Quand on (dés)active un chargement, les fixations correspondantes sont (dés)activées automatiquement. Par contre, on fixe les degrés de liberté d'une région donnée si au moins une fixation est activée sur cette région. L'ordre de définition et d'activation des contraintes n'a donc plus d'importance, c'est l'activation qui a priorité sur la désactivation (voir FixationSet::toDofSet() pour les détails).
  • En pratique, on peut continuer d'utiliser l'ancienne syntaxe et définir des fixations explicitement. C'est inutile mais ça devrait fonctionner comme avant, en dehors des cas où on jouait sur l'ordre d'activation.
  • Tous les fichiers .py ont été adaptés à la nouvelle syntaxe au moyen d'une procédure automatique, sauf ceux qui ont posé problème et que j'ai dû modifier à la main. Il peut donc rester des petits morceaux écrits selon l'ancienne syntaxe.

Broutilles

  • Dans configure.ac, j'ai ajouté l'option -DMPICH_IGNORE_CXX_SEEK à CXXFLAGS. Ca évite des problèmes dûs à mpich, qui redéfinit les variables SEEK_SET, SEEK_CUR et SEEK_END utilisées par stdio.h, c'est un problème connu. Or sous Linux en tout cas, Petsc cherche apparemment à lire mpi.h même s'il est compilé en MPI_UNI, et s'il en trouve un (parce que mpich est installé…), ça plante à la compilation.
  • J'ai ajouté l'option diffUX dans battery.py. Ca permet d'écrire le fichier .html de telle sorte qu'on puisse accéder sous Linux aux fichiers .res ou .py via les liens, donc sans faire appel au notepad. Je n'étais pas très inspiré pour le nom de l'option, on peut changer.

Fichiers ajoutés/supprimés

apps/qs/dgShellFullPinchedCylinder.py  deleted

Geoffrey DELIEGE 2008/03/04

commit/2008/03_03.txt · Last modified: 2016/03/30 15:23 (external edit)