RDforum.free.fr/Cast3M   Index du Forum
Site Web Cast3M
RDforum.free.fr/Cast3M
Forum d'entraide des utilisateurs de Cast3M
Répondre au sujet
Sommation sur les points d'un champ par points [Résolu]
bthomas


Inscrit le: 24 Jan 2007
Messages: 23
Localisation: CEA, Saclay
Répondre en citant
Bonjour à tous,

Je cherche à programmer un critère dont la valeur est determinée par la somme de différents paramètres.
Entre autres je cherche à obtenir une contrainte nominale sur une ligne d'élément. pour calculer celle-ci il faut que je puisse calculer la moyenne de la contrainte sur cette ligne. J'ai transformé ma contrainte en champ par points et réduit le champ de contraintes à la ligne que je souhaite conserver.
Mon problème est le suivant: comment balayer cette ligne de noeud pour obtenir la somme des valeurs à chaque noeud sachant que ce balayage doit s'effectuer de maniere automatique? Je ne connais pas à l'avance les numéros de noeuds de la ligne ou même leur nombre car mon maillage est 'évolutif'.

EN particulier je ne sais pas comment le récupérer les numéros des noeuds présents dans un maillage. Il me suffirait de les placer dans une liste d'entiers pour pouvoir effectuer ce calcul je pense.

Je suis ouvert à toute suggestion.
Merci d'avance.

_________________
Benjamin THOMAS
5 ème année de Mécanique des Structures
Institut National des Sciences Appliquées de Rouen
Etudiant Master, stagiaire Laboratoire d'Intégrité des Structures et de Normalisation, CEA Saclay
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

L'idéale serait sans doute de ne pas avoir à traiter le numéro des nœuds.

En demandant, par exemple, l’EVOLution de ton champ sur ta ligne qui sera plus simple à traiter.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
bthomas


Inscrit le: 24 Jan 2007
Messages: 23
Localisation: CEA, Saclay
Répondre en citant
Oui, je n'avais pas pensé à cette idée. Je crois voir quoi faire, Merci.

Cela règle mon problème immédiat mais en réalité je vais devoir également réaliser une moyenne 'surfacique' sur une portion de mon maillage d'un champ de contrainte, et le plus simple mathématiquement pour moi aurait été de pouvoir balayer directement les noeuds ou les points de gauss de mes éléments.

Mais en tout cas pour le cas de la ligne c'est une bonne idée , merci! Je me remets à mon critère.

_________________
Benjamin THOMAS
5 ème année de Mécanique des Structures
Institut National des Sciences Appliquées de Rouen
Etudiant Master, stagiaire Laboratoire d'Intégrité des Structures et de Normalisation, CEA Saclay
Voir le profil de l'utilisateurEnvoyer un message privé
bthomas


Inscrit le: 24 Jan 2007
Messages: 23
Localisation: CEA, Saclay
Répondre en citant
Bonjour à tous un message pour dire que j'ai trouvé une solution à mon problème!

Pour ce qui aurait besoin de calculer des moyennes sur des champs par éléments sur des surfaces ou des volumes bien définis c'est en fait très simple:

Tout se fait via l'opérateur extr. L'une des formulations possible est :
Flottant = extr mchaml composante n_sous-zone n_element n_pt-de-gauss ;

Il suffit alors de réaliser une boucle sur les sous zones une sur les éléments et une sur les points de Gauss.
On récupère l'indice d'évolution des différentes boucles grace à nbel, il faut ensuite connaitre les nombres de pts de gauss des éléments et des sous zones. Comme quoi c'était en fait très simple dans mon cas puisque les éléments sont numérotés de 1 à nb_el !!

Pour exemple un extrai du calcul sur une surface utile (une seule sous-zone) d'une éprouvette en axisymétrique, détermination des moyennes des contraintes RR ZZ TT et RZ

mo_util = 'REDU' motot sur_util ;
nb_el = 'NBEL' sur_util ;
nb_ptg = 9 ;
vm01 = vmis tab2.contraintes.2 mo_util ;
chelr = 'EXCO' smrr tab2.contraintes.2 ;
chelz = 'EXCO' smzz tab2.contraintes.2 ;
chelt = 'EXCO' smtt tab2.contraintes.2 ;
chelrz = 'EXCO' smrz tab2.contraintes.2 ;
chelr = 'REDU' chelr mo_util ;
chelz = 'REDU' chelz mo_util ;
chelt = 'REDU' chelt mo_util ;
chelrz = 'REDU' chelrz mo_util ;
ind_el = 1 ;
ind_g = 1 ;
mr = 0 ;
mz = 0 ;
mt = 0 ;
mrz = 0 ;
mvm = 0 ;
repeter bouc1 nb_el ;
repeter bouc2 nb_ptg ;
mr = ('EXTRAIRE' chelr smrr 1 ind_el ind_g) '+' mr ;
mz = ('EXTRAIRE' chelz smzz 1 ind_el ind_g) '+' mz ;
mt = ('EXTRAIRE' chelt smtt 1 ind_el ind_g) '+' mt ;
mrz = ('EXTRAIRE' chelrz smrz 1 ind_el ind_g) '+' mrz ;
mvm = (extraire vm01 scal 1 ind_el ind_g) '+' mvm ;
ind_g = ind_g '+' 1;
'FIN' bouc2 ;
ind_el = ind_el '+' 1 ;
ind_g = 1 ;
'FIN' bouc1 ;
mr = mr/(nb_el*nb_ptg) ;
mz = mz/(nb_el*nb_ptg) ;
mt = mt/(nb_el*nb_ptg) ;
mrz = mrz/(nb_el*nb_ptg) ;
mvm = mvm/(nb_el*nb_ptg) ;


La solution proposée par lguenhael fonctionne parfaitement pour les champs par points sur des lignes. Je dispose maintenant de la contrainte nominale et moyenne dans ma section d'essai.

_________________
Benjamin THOMAS
5 ème année de Mécanique des Structures
Institut National des Sciences Appliquées de Rouen
Etudiant Master, stagiaire Laboratoire d'Intégrité des Structures et de Normalisation, CEA Saclay
Voir le profil de l'utilisateurEnvoyer un message privé
Sommation sur les points d'un champ par points [Résolu]
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous ne pouvez pas télécharger des fichiers
Toutes les heures sont au format GMT + 2 Heures  
Page 1 sur 1  

  
  
 Répondre au sujet