Atom topic feed | site map | contact | login | Protection des données personnelles | Powered by FluxBB | réalisation artaban
You are not logged in.
Pages: 1
Hello,
I'm currently trying to set up a variable temperature but I don't see any example in the test-casus that can match my problem.
The temperature is dependant of the thickness of a volume.
I did a little sketch to illustrate what a try to modelize but I don't see how I can obtain the thickness.
1 - If I create 3 group_ma : one for the volume and 2 for the faces (bottom and top)
2 - I use MODI_MAILLAGE-> ORIE_PEAU_3D on the group_ma faces to have the orientation of the normal vector 'NV'.
3 - Recuperate the coordinate of this vector NV fonction of x,y position : NV(x,y).
4 - Then, obtain the thickness THICK=(TOP_FACE-BOTTOM_FACE) . NV (distance of the two faces in the normal direction)
5 - After that set up all the temperature of the nodes on the top face with TEMP_TOP=TEMP_INIT/THICK
6 - Finally set the temperature of the volume for top to bottom face as : TEMP = TEMP_TOP + TEMP_INIT * DIST
(with DIST= distance of the node from the TOP_FACE in the NV direction)
It seems very tricky to set up because of some recursivity. And it seems very unfeasable but maybe there is a way that I didn't find yet.
Thank you for your reading and I hope I didn't scared you with my problem
Regards,
H.B.
Offline
So just to know if it can be possible, to have a sort of recursive analysis. Meaning that I want to command an input with a fonction composed by the output. Is it possible for a MECA_STATIQUE?
Offline
hoi H.B,
probably such an analyis is called a non linear analysis?
Non linear analysis can be performed by CA.
Last edited by keeswouters (2014-08-01 18:39:19)
kind regards - kees
--
I a parallel univers the laws of mechanics may be different.
Offline
hello
i can see that i am not the only one who do not understand clearly what you want to do!!
however i attach a very simple example of "recursivity" with MECA_STATIQUE that does not do very useful things, but !
jean pierre aubry
Last edited by jeanpierreaubry (2014-08-02 14:00:25)
consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/
Offline
I just tried to find a way in the previous post.I just want to command the temperature with the thickness of the disk at (x,y) position. It's just that I don't know how to do it and if it's possible?
Offline
with a little bit of Python coding it is possible to do that:
in a first loop:
go through all the nodes of bottom surface
retrieve their coordinates
in a second inner loop, for each node of bottom surface:
go through all the nodes of top surface
retrieve their coordinates
calculate the distance from top node to bottom one
minimum distance can be assumed to be the thickness
this may be refined by making a first loop through the elements, retrieving the normal to the element
as well, cleverly making groups on the surfaces may reduce the number of nodes to be scanned in the second loop
this may take quite a while as far as computing time is concerned
consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/
Offline
hoi H.B,
if you provide us with the model (med, py input script or whatever you have available) or a typical example, we could help you.
A bit of fancy Python coding is -in most cases- nice to do.
kind regards - kees
--
I a parallel univers the laws of mechanics may be different.
Offline
Je n'ai pas de .med mais le .msh. j'ai aussi un .comm
DEBUT();
######################################################
# RECUPERATION DU MAILLAGE - DEFINITION DES GROUPES
# Pastille Piezo
######################################################
PRE_GMSH();
MAIL=LIRE_MAILLAGE(); # Recuperation maillage
MAIL=DEFI_GROUP( reuse=MAIL, # Definition des groupes de mailles / noeuds
MAILLAGE=MAIL,
CREA_GROUP_MA=( #### GROUPE DE MAILLE ####
_F(NOM='VPIEZO',GROUP_MA='GM1',), # VPIEZO = volume du piezo
_F(NOM='TPIEZO',GROUP_MA='GM3',), # TPIEZO = face supérieure du piezo
_F(NOM='BPIEZO',GROUP_MA='GM4',), # BPIEZO = face inférieure du piezo
_F(NOM='SHELL',GROUP_MA='GM5',), # SHELL = coque support
_F(NOM='COLLE',GROUP_MA='GM2',), # Colle = colle entre piezo et plaque
),
CREA_GROUP_NO=( #### GROUPE DE NOEUDS ####
_F(NOM='TP',GROUP_MA='GM3',), # TP = face supérieure du piezo
_F(NOM='BP',GROUP_MA='GM4',), # BP = face inférieure du piezo
_F(NOM='CX',NOEUD=('N25','N30','N37','N42'),), # CX = groupe de noeuds ( DY = 0 pour ces noeuds)
_F(NOM='CY',NOEUD=('N27','N28','N39','N40'),), # CY = groupe de noeuds ( DX = 0 pour ces noeuds)
_F(NOM='ENCAST',NOEUD=('N45','N46','N47','N48'),), # ENCAST = noeuds de coins de SHELL
_F(NOM='BTP',NOEUD=('N2873'),), # PTP = noeud milieu de la face inférieure piezo
),
);
MAIL=MODI_MAILLAGE( reuse=MAIL,
MAILLAGE=MAIL,
ORIE_PEAU_3D=_F(GROUP_MA='TPIEZO',),
ORIE_NORM_COQUE=_F(GROUP_MA='SHELL',
VECT_NORM=(0,0,1,),
NOEUD='N1173',)); #N3926:sup ; N2873 inf (m2_2)
###################################
# DEFINITION DU MODELE
###################################
MODL=AFFE_MODELE( MAILLAGE=MAIL,
AFFE=( _F( GROUP_MA=('VPIEZO','TPIEZO','BPIEZO','COLLE'),
PHENOMENE='MECANIQUE',
MODELISATION='3D',
),
_F( GROUP_MA=('SHELL'),
PHENOMENE='MECANIQUE',
MODELISATION='DKT',
),
),
);
###################################
# DEFINITION DES CARACS MATERIAU
###################################
CARA=AFFE_CARA_ELEM( MODELE=MODL,
COQUE=_F ( GROUP_MA=('SHELL'),
EPAIS=1.12, # Coque epaisseur 1.12mm
ANGL_REP=(0,0), # repere inchangé
EXCENTREMENT=-0.56, # decalage de la coque pour faire correspondre peau supérieur et 'BPIEZO'
INER_ROTA='OUI', # inertie de rotation (facultatif ici)
COQUE_NCOU=4,
),
);
COLLE=DEFI_MATERIAU(ELAS_ORTH=_F( E_L=1800, # MPa
E_T=1800, # MPa
E_N=1800, # MPa
G_LT=1800, # MPa
G_LN=1800, # MPa
G_TN=1800, # MPa
NU_LT=0.35,
NU_LN=0.35,
NU_TN=0.35,
RHO=9.5E-4, # t/mm3
AMOR_HYST=0.025,
ALPHA_L=-1.95E-7,#4.6688E-12, # 1/K equivalent elec : mm/V
ALPHA_T=-1.95E-7,#4.6688E-12, # 1/K equivalent elec : mm/V
ALPHA_N=0,#1.1111E-11, # 1/K equivalent elec : mm/V
),
);
PZT25=DEFI_MATERIAU(ELAS_ORTH=_F( E_L=62500, # MPa
E_T=62500, # MPa
E_N=52632, # MPa
G_LT=18797, # MPa
G_LN=22645, # MPa
G_TN=22645, # MPa
NU_LT=0.4,
NU_LN=0.38,
NU_TN=0.38,
RHO=7.6E-3, # t/mm3
ALPHA_L=-1.95E-7,#4.6688E-12, # 1/K equivalent elec : mm/V
ALPHA_T=-1.95E-7,#4.6688E-12, # 1/K equivalent elec : mm/V
ALPHA_N=4.6E-7,#1.1111E-11, # 1/K equivalent elec : mm/V
AMOR_HYST=0.025,
),
);
COMPOSI=DEFI_MATERIAU( ELAS_ORTH=_F( E_L=65700, # MPa
E_T=65700, # MPa
E_N=8100, # MPa
NU_LT=0.02,
#NU_LN=0.4,
#NU_TN=0.4,
G_LT=5200, # MPa
G_LN=5200, # MPa
G_TN=5200, # MPa
RHO=1.553E-3, # kg/mm3
AMOR_HYST=0.025,
),
);
STRAT=DEFI_COMPOSITE( COUCHE=(_F( EPAIS=0.28,
MATER=COMPOSI,
ORIENTATION=0.0,),
_F( EPAIS=0.28,
MATER=COMPOSI,
ORIENTATION=45.0,),
_F( EPAIS=0.28,
MATER=COMPOSI,
ORIENTATION=-45.0,),
_F( EPAIS=0.28,
MATER=COMPOSI,
ORIENTATION=0.0,),
),
IMPRESSION=_F(UNITE=8),
);
###############################################
# DEFINITION CHARGEMENT THERMIQUE POUR RESOLUTION THERMOMECANIQUE
###############################################
TEMP1=CREA_CHAMP( # Creation du champ de température sur le piezo
TYPE_CHAM='NOEU_TEMP_R',
OPERATION='AFFE',MODELE=MODL,
AFFE=( _F(TOUT='OUI',NOM_CMP='TEMP',VALE=0,),
_F(GROUP_MA=('VPIEZO'),NOM_CMP='TEMP',VALE=-2,) # -2 V/mm car epaisseur 0.5mm et E = -grad V
),
);
CTEMP=CREA_RESU( # Mise en forme evol_ther pour la thermomécanique
TYPE_RESU='EVOL_VARC',
NOM_CHAM='TEMP',
OPERATION='AFFE',
AFFE=(
_F(CHAM_GD=TEMP1,INST=0.0),
),
);
###################################
# AFFECTATION MATERIAU
###################################
MATHE=AFFE_MATERIAU( MAILLAGE=MAIL, # Avec chargement thermique
AFFE= (_F( GROUP_MA=('VPIEZO','TPIEZO','BPIEZO'),
MATER=PZT25,
),
_F( GROUP_MA=('SHELL'),
MATER=STRAT,
),
_F( GROUP_MA=('COLLE'),
MATER=COLLE,
),
),
AFFE_VARC=(_F( TOUT='OUI',
EVOL=CTEMP,
NOM_VARC='TEMP',
VALE_REF=0.0,),),
);
###############################################
# CONDITIONS LIMITES
###############################################
CLIM=AFFE_CHAR_MECA( MODELE=MODL,
DDL_IMPO=( _F( GROUP_NO='ENCAST', # Pas de depl en Z pour le noeud coin shell
DZ=0,
),
_F( GROUP_NO='CX', # Pas de depl en Y pour les noeuds sur X du piezo
DY=0, # Assurer la bonne simulation
),
_F( GROUP_NO='CY', # Pas de depl en X pour les noeuds sur Y du piezo
DX=0, # Assurer la bonne simulation
),
),
);
),
);
###################################
# RESOLUTION MECA STATIQUE
###################################
THERM=MECA_STATIQUE( MODELE=MODL, # Calcul des depl du piezo sous chargement thermique
CHAM_MATER=MATHE,
CARA_ELEM=CARA,
EXCIT=( _F( CHARGE=CLIM,
),
),
);
Donc si vous visualiser les déplacements la face supérieur et inférieur n'ont pas un mouvement en Z identique. Il a donc un changement d'épaisseur. Il faudrait à partir de cette épaisseur recalculer les températures tel que décris plus haut.
Je ne suis pas à l'aise avec le python donc je ne sais pas trop comment programmer.
Si vous avez des questions n'hésitez pas. Merci en tous cas.
Last edited by h.borie (2014-08-07 15:01:50)
Offline
décidément je comprends de moins en moins ce problème
je vois deux volumes qui m'ont l'air d'avoir une épaisseur constante !
plus généralement vouloir attaquer des sujets un peu complexes sans apprendre les rudiments de Python me semble être une gageure
au demeurant il faut très peu de temps pour apprendre les bases
ensuite ça vient tout seul
pour manipuler le maillage et extraire les coordonnées des noeuds calculer longueurs et surfaces il y a un exemple à la page 259 de mon livre
par ailleurs êtes vous sur de la valeur de l'excentrement avec la présence de la colle ?
êtes vous sur des valeurs des caractéristiques de la colle ?
consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/
Offline
Lorsque l'on applique la thermo-elasticité, le volume nommé piezo n'a pas une épaisseur constante sur tout le disque. Il faut donc que je recalcule la température en fonction de cette épaisseur. et reboucle jusqu'a ce le systeme tende vers un état d'équilibre. (ou presque)
Pour l'excentrement, que viens faire l'épaisseur de colle étant donné qu'il faut juste que j'excentre de la moitié de l'épaisseur de ma plaque.
Offline
en pièce jointe il y a un fichier de commande modifié
qui calcule l'épaisseur du piezo du maillage initial
il est possible de créer un maillage déformé après le MECA_STATIQUE
de calculer alors les épaisseurs
de faire le chargement thermique
et de faire un MECA_STATIQUE sur ce maillage déformé ce qui est encore mieux
dans une boucle comme suggéré précédemment
Last edited by jeanpierreaubry (2014-08-09 07:18:12)
consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/
Offline
Pages: 1