Thermal stress
- Torben
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 91
- Thank you received: 1
15 years 5 months ago #3671
by Torben
Thermal stress was created by Torben
Hello,
I am experimenting with calculating mechanical stresses/displacements with MECA_STATIQUE resulting from a temperature distribution calculated by THER_LINEAIRE. This combined model definition:
[code:1]MODEL=AFFE_MODELE(MAILLAGE=MESH,
AFFE=(_F(TOUT='OUI',
PHENOMENE='THERMIQUE',
MODELISATION='3D',),
_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),),);
[/code:1]
returns an error <EXCEPTION> <DVP_1>
Additionally temperature alone does not generate stress/displacements, but a change does, so one needs to define a reference condition and do the mechanical analysis based on the difference. How is that done?
Can anyone please give a tip on how to make such analysis - or point me the direction to some illustrative examples.
Thank you very much.
I am experimenting with calculating mechanical stresses/displacements with MECA_STATIQUE resulting from a temperature distribution calculated by THER_LINEAIRE. This combined model definition:
[code:1]MODEL=AFFE_MODELE(MAILLAGE=MESH,
AFFE=(_F(TOUT='OUI',
PHENOMENE='THERMIQUE',
MODELISATION='3D',),
_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),),);
[/code:1]
returns an error <EXCEPTION> <DVP_1>
Additionally temperature alone does not generate stress/displacements, but a change does, so one needs to define a reference condition and do the mechanical analysis based on the difference. How is that done?
Can anyone please give a tip on how to make such analysis - or point me the direction to some illustrative examples.
Thank you very much.
- Claus
-
- Offline
- Moderator
-
Less
More
- Posts: 670
- Thank you received: 34
15 years 5 months ago #3672
by Claus
Code_Aster release : STA11.4 on OpenSUSE 12.3 64 bits - EDF/Intel version
Replied by Claus on topic Re:Thermal stress
I think you need to divide the study into two: Calculate the temp distribution, then apply that temp.field to the model and do the mechanical solution.
From the attached comm file I get strains and stresses from applying a uniform temperature field to a model, I don't see why you could just apply the calculated temp. field the same way.
[code:1]DEBUT();
PRE_GMSH(UNITE_GMSH=19,);
AluSteel=DEFI_MATERIAU(ELAS=_F(E=210E6,
NU=0.3,
ALPHA=12E-6,),);
mesh=LIRE_MAILLAGE(UNITE=20,);
model=AFFE_MODELE(MAILLAGE=mesh,
AFFE=_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),);
meshquad=CREA_MAILLAGE(MAILLAGE=mesh,
LINE_QUAD=_F(TOUT='OUI',),);
quadmode=AFFE_MODELE(MAILLAGE=meshquad,
AFFE=_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),);
temp=CREA_CHAMP(TYPE_CHAM='NOEU_TEMP_R',
OPERATION='AFFE',
MODELE=quadmode,
AFFE=_F(TOUT='OUI',
NOM_CMP='TEMP',
VALE=300.0,),);
assg_mat=AFFE_MATERIAU(MAILLAGE=meshquad,
AFFE=_F(TOUT='OUI',
MATER=AluSteel,),
AFFE_VARC=_F(TOUT='OUI',
NOM_VARC='TEMP',
CHAMP_GD=temp,
VALE_REF=0.0,),);
load=AFFE_CHAR_MECA(MODELE=quadmode,
DDL_IMPO=_F(GROUP_MA='GM2',
DX=0.0,
DY=0.0,
DZ=0.0,),
FACE_IMPO=_F(GROUP_MA='GM1',
DX=0.0,
DY=0.0,
DZ=0.0,),);
RESU=MECA_STATIQUE(MODELE=quadmode,
CHAM_MATER=assg_mat,
EXCIT=_F(CHARGE=load,),);
RESU=CALC_ELEM(reuse =RESU,
MODELE=quadmode,
CHAM_MATER=assg_mat,
RESULTAT=RESU,
OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),
EXCIT=_F(CHARGE=load,),);
RESU=CALC_NO(reuse =RESU,
RESULTAT=RESU,
OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM','FORC_NODA','REAC_NODA',),);
linresu=PROJ_CHAMP(RESULTAT=RESU,
MODELE_1=quadmode,
MODELE_2=model,);
IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=_F(MAILLAGE=mesh,
RESULTAT=linresu,
NOM_CHAM=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM','DEPL',),),);
meshquad=DEFI_GROUP(reuse =meshquad,
MAILLAGE=meshquad,
CREA_GROUP_NO=_F(GROUP_MA='GM1',
NOM='tubes',),);
table=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
INTITULE='Avg_sigm',
RESULTAT=RESU,
NOM_CHAM='REAC_NODA',
GROUP_NO='tubes',
ELEM_PRINCIPAUX='OUI',
MOYE_NOEUD='OUI',),);
IMPR_TABLE(TABLE=table,);
FIN();[/code:1]<br /><br />Post edited by: Claus, at: 2009/12/05 13:12
From the attached comm file I get strains and stresses from applying a uniform temperature field to a model, I don't see why you could just apply the calculated temp. field the same way.
[code:1]DEBUT();
PRE_GMSH(UNITE_GMSH=19,);
AluSteel=DEFI_MATERIAU(ELAS=_F(E=210E6,
NU=0.3,
ALPHA=12E-6,),);
mesh=LIRE_MAILLAGE(UNITE=20,);
model=AFFE_MODELE(MAILLAGE=mesh,
AFFE=_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),);
meshquad=CREA_MAILLAGE(MAILLAGE=mesh,
LINE_QUAD=_F(TOUT='OUI',),);
quadmode=AFFE_MODELE(MAILLAGE=meshquad,
AFFE=_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),);
temp=CREA_CHAMP(TYPE_CHAM='NOEU_TEMP_R',
OPERATION='AFFE',
MODELE=quadmode,
AFFE=_F(TOUT='OUI',
NOM_CMP='TEMP',
VALE=300.0,),);
assg_mat=AFFE_MATERIAU(MAILLAGE=meshquad,
AFFE=_F(TOUT='OUI',
MATER=AluSteel,),
AFFE_VARC=_F(TOUT='OUI',
NOM_VARC='TEMP',
CHAMP_GD=temp,
VALE_REF=0.0,),);
load=AFFE_CHAR_MECA(MODELE=quadmode,
DDL_IMPO=_F(GROUP_MA='GM2',
DX=0.0,
DY=0.0,
DZ=0.0,),
FACE_IMPO=_F(GROUP_MA='GM1',
DX=0.0,
DY=0.0,
DZ=0.0,),);
RESU=MECA_STATIQUE(MODELE=quadmode,
CHAM_MATER=assg_mat,
EXCIT=_F(CHARGE=load,),);
RESU=CALC_ELEM(reuse =RESU,
MODELE=quadmode,
CHAM_MATER=assg_mat,
RESULTAT=RESU,
OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),
EXCIT=_F(CHARGE=load,),);
RESU=CALC_NO(reuse =RESU,
RESULTAT=RESU,
OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM','FORC_NODA','REAC_NODA',),);
linresu=PROJ_CHAMP(RESULTAT=RESU,
MODELE_1=quadmode,
MODELE_2=model,);
IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=_F(MAILLAGE=mesh,
RESULTAT=linresu,
NOM_CHAM=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM','DEPL',),),);
meshquad=DEFI_GROUP(reuse =meshquad,
MAILLAGE=meshquad,
CREA_GROUP_NO=_F(GROUP_MA='GM1',
NOM='tubes',),);
table=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
INTITULE='Avg_sigm',
RESULTAT=RESU,
NOM_CHAM='REAC_NODA',
GROUP_NO='tubes',
ELEM_PRINCIPAUX='OUI',
MOYE_NOEUD='OUI',),);
IMPR_TABLE(TABLE=table,);
FIN();[/code:1]<br /><br />Post edited by: Claus, at: 2009/12/05 13:12
Code_Aster release : STA11.4 on OpenSUSE 12.3 64 bits - EDF/Intel version
- Torben
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 91
- Thank you received: 1
15 years 5 months ago #3673
by Torben
Replied by Torben on topic Re:Thermal stress
Thank you very much. The magice seems to be the AFFE_MATERIAU where I was thinking boundary conditions:
[code:1]assg_mat=AFFE_MATERIAU(MAILLAGE=meshquad,
AFFE=_F(TOUT='OUI',
MATER=AluSteel,),
AFFE_VARC=_F(TOUT='OUI',
NOM_VARC='TEMP',
CHAMP_GD=temp,
VALE_REF=0.0,),);[/code:1]
I will apply (AFFE) the temperature distribution field (CHAMP) together with the reference (VALE_REF). Not without logic just different from my expectation based on a vague memory from my days with COSMOS/M where the approach was to define everything and then run_thermal and run_stress.
I will go on and see how to transfer the temperature field from the thermal model to the mecanical model. Thanks again. (increments karma)<br /><br />Post edited by: Torben, at: 2009/12/05 14:14
[code:1]assg_mat=AFFE_MATERIAU(MAILLAGE=meshquad,
AFFE=_F(TOUT='OUI',
MATER=AluSteel,),
AFFE_VARC=_F(TOUT='OUI',
NOM_VARC='TEMP',
CHAMP_GD=temp,
VALE_REF=0.0,),);[/code:1]
I will apply (AFFE) the temperature distribution field (CHAMP) together with the reference (VALE_REF). Not without logic just different from my expectation based on a vague memory from my days with COSMOS/M where the approach was to define everything and then run_thermal and run_stress.
I will go on and see how to transfer the temperature field from the thermal model to the mecanical model. Thanks again. (increments karma)<br /><br />Post edited by: Torben, at: 2009/12/05 14:14
- Claus
-
- Offline
- Moderator
-
Less
More
- Posts: 670
- Thank you received: 34
15 years 5 months ago #3674
by Claus
Code_Aster release : STA11.4 on OpenSUSE 12.3 64 bits - EDF/Intel version
Replied by Claus on topic Re:Thermal stress
No worries mate - just lets us know how the study turns out - one can never get enough reference cases

Code_Aster release : STA11.4 on OpenSUSE 12.3 64 bits - EDF/Intel version
- Torben
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 91
- Thank you received: 1
15 years 5 months ago #3675
by Torben
Replied by Torben on topic Re:Thermal stress
Here we go. The model is a simple rectangular rod meshed with tetrahedral elements. first half-length is Aluminum, second half-length is Stainless Steel. and end temperatures are 100C and 20C. Both ends are constrained in X-direction and first end also in X and Y direction to avoid singularity.
In the plot is illustrated as 3d plots the Temperature distribution, X-displacements and Stress in X direction.
We see as expected:
1. Linear temperature distribution with low slope in the region with high thermal conductivity (Aluminum)
2. Practically constant compressive stress along the length. A little noise near the first and and near the transition between the twodifferent materials is expected.
3. Zero displacement at the ends.
Also we see that even if the average increase in temperature for the Al part is higher due to the high thermal conductivity, the displacement of the interface to the stainless steel is almost not displaced due to the higher E-modulus of the stainless steel.
ASTER command file and mesh attached.
In the plot is illustrated as 3d plots the Temperature distribution, X-displacements and Stress in X direction.
We see as expected:
1. Linear temperature distribution with low slope in the region with high thermal conductivity (Aluminum)
2. Practically constant compressive stress along the length. A little noise near the first and and near the transition between the twodifferent materials is expected.
3. Zero displacement at the ends.
Also we see that even if the average increase in temperature for the Al part is higher due to the high thermal conductivity, the displacement of the interface to the stainless steel is almost not displaced due to the higher E-modulus of the stainless steel.
ASTER command file and mesh attached.
Attachment Archive-cfc6574e6af1288cb0aa90cdf92b23ed.zip not found
- Torben
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 91
- Thank you received: 1
15 years 5 months ago #3676
by Torben
Replied by Torben on topic Re:Thermal stress
Summing up a bit:
The ASTER command file has four parts:
1. Read the mesh and define materials
2. Define thermal model and execute the thermal analysis
3. Define mechanical model and execute the mechanical analysis
4. Output results.
The special trick here is when defining model and parameters for the mechanical analysis to assign (AFFE) material (MATERIAU) as follows:
[code:1]MAT_MECA=AFFE_MATERIAU(MAILLAGE=MESH,
MODELE=MECAMOD,
AFFE=(_F(GROUP_MA='M1',
MATER=AL,),
_F(GROUP_MA='M2',
MATER=ST,),),
AFFE_VARC=_F(TOUT='OUI',
NOM_VARC='TEMP',
EVOL=RESUTEMP,
VALE_REF=20.,),);[/code:1]
where RESUTEMP is the name of the output from the THER_LINEAIRE analysis. The approach is described in u4.43.03.pdf but seems depending on the generation of ASTER being used.
The ASTER command file has four parts:
1. Read the mesh and define materials
2. Define thermal model and execute the thermal analysis
3. Define mechanical model and execute the mechanical analysis
4. Output results.
The special trick here is when defining model and parameters for the mechanical analysis to assign (AFFE) material (MATERIAU) as follows:
[code:1]MAT_MECA=AFFE_MATERIAU(MAILLAGE=MESH,
MODELE=MECAMOD,
AFFE=(_F(GROUP_MA='M1',
MATER=AL,),
_F(GROUP_MA='M2',
MATER=ST,),),
AFFE_VARC=_F(TOUT='OUI',
NOM_VARC='TEMP',
EVOL=RESUTEMP,
VALE_REF=20.,),);[/code:1]
where RESUTEMP is the name of the output from the THER_LINEAIRE analysis. The approach is described in u4.43.03.pdf but seems depending on the generation of ASTER being used.
Moderators: catux
Time to create page: 0.131 seconds