Projet

Général

Profil

Actions

Evolution #378

ouvert

accès DEF_EPAISSEUR en pondération de LOI_ADDITIVE_EN_SIGMA dans une LOI_CONTRAINTES_PLANES

Ajouté par Julien Troufflard il y a 4 mois. Mis à jour il y a 4 mois.

Statut:
En cours
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
08/11/2024
Echéance:
% réalisé:

10%

Temps estimé:
Temps passé:

Description

Gérard,

je lance cette discussion concernant l'accès à la grandeur DEF_EPAISSEUR pour faire une pondération de loi additive au sein d'une loi contrainte plane.

Je veux faire une pondération de loi qui dépend d'une fonction nD (pour calculer def mises au sens log et en tenant compte de la composante 33) et que cette fonction nD puisse utiliser DEF_EPAISSEUR.

en pièce jointe => un exemple en traction sur un quadrangle

Il y a deux choses à résoudre :
1) pouvoir utiliser une fonction nD
2) accéder à DEF_EPAISSEUR

voici pour le 1) :
pour pondérer, on utilise avec_fonction_de_ponderation_. Et pour utiliser une fonction nD, j'ai l'impression qu'il faut faire une manip un peu bizarre. Je déclare d'abord une pondération fictive sur courbe 1D et def_duale_mises qui ne fait rien (ponderation = 1) puis une seconde pondération normalement dédiée aux grandeurs locales (avec_ponder_grandeur_locale_). C'est la seule manière que j'ai trouvé pour utiliser une fonction nD sans que ça génère de bug.
ça donne la tournure :

MAT  LOI_CONTRAINTES_PLANES

   ... param loi contrainte plane ...

    LOI_ADDITIVE_EN_SIGMA
                  avec_fonction_de_ponderation_

      #ponderation courbe 1D sans impact (toujours egale a 1)
      les_grandeur_ponderation= def_duale_mises AuPti_  fin_grandeur_ponderation_
      deb_fonct_ponder=   COURBEPOLYNOMIALE
                            debut_coef=  1. fin_coef
      fin_fonct_ponder_
      #ponderation locale qui permet acces a une fonction nD
      # (aucune grandeur ne lui est passee)
      avec_ponder_grandeur_locale_
      les_grandeurs_= fin_grandeurs_
      deb_fonct_= fct_ma_fonction fin_fonct_

      #une loi 3D qui va etre ponderee
      ... loi 3D ...

    fin_liste_lois_elementaires

fin_loi_contrainte_plane

ensuite, la fonction nD aura cette allure :

fct_ma_fonction FONCTION_EXPRESSION_LITTERALE_nD
  deb_list_var_ EPS11 EPS22 EPS12 DEF_EPAISSEUR fin_list_var_
  fct= ... un calcul ...
  permet_affichage_ 6
fin_parametres_fonction_expression_litterale_

donc c'est elle qui s'occupe d'appeler les bonnes grandeurs.

ça fonctionne comme mécanisme, mais c'est un moyen détourné. Normalement "avec_ponder_grandeur_locale_" est sensé servir à autre chose non ?

et ensuite le point 2) => l'accès à DEF_EPAISSEUR

pour l'instant, l'exemple pièce jointe ne fonctionne pas à cause de DEF_EPAISSEUR qui n'est pas accessible. J'ai essayé de regarder les fichiers source .h et .cc de HYPO_ELAS2D_C pour laquelle l'accès à DEF_EPAISSEUR avait été résolu.

J'ai relevé quelques "void" de hypoelas (Hypo_hooke2D_C.cc) qui mentionnent DEF_EPAISSEUR et qui n'existent pas dans loi contrainte plane (LoiContraintesPlanes.cc) :
- ::Mise_a_jour_map_type_quelconque
- ::Insertion_conteneur_dans_save_result
- ::Activation_stockage_grandeurs_quelconques

finalement, les seuls en commun entre les 2 lois de comp sont :
- ::Grandeur_particuliere
- ::ListeGrandeurs_particulieres

qu'est-ce qui fait que HYPO_ELAS2D_C transmet DEF_EPAISSEUR aux fonctions nD (via le saveResult ?) et pas LOI_CONTRAINTES_PLANES ?


Fichiers

calcul.CVisu (12,4 ko) calcul.CVisu Julien Troufflard, 08/11/2024 19:21
calcul.info (1,94 ko) calcul.info Julien Troufflard, 08/11/2024 19:28
Actions

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux