Nastran to Code_Aster : elasto-plastic deformation

This time we will have a look at nonlinear material properties, in particular elasto-plastic behaviour laws.

This case is taken from a publicy available example on the internet, but the original source is probably this one, for all due credit.
To read this article one will need some knowledge both in Nastran and in Code_Aster.

workshop6

The translation between Nastran and Code_Aster can be made by using the following correspondances :

Nastran keyword Code_Aster keyword
BEGIN DEBUT
SOL 106 + SUBCASE STAT_NON_LINE(ETAT_INIT, EXCIT=_F(FONC_MULT))
DISPLACEMENT=ALL IMPR_RESU(FORMAT=’RESULTAT’)
STRESS(VONMISES) CALC_CHAMP(EPSI_ELGA), POST_CHAMP(EXTR_COQUE), CALC_CHAMP(EPSI_NOEU, SIEQ_NOEU)
TIME 600 See “prob6.export” file, line “A tpmax 600
PARAM LGDISP STAT_NON_LINE(COMPORTEMENT)
NLPARM DEFI_LIST_REEL, DEFI_LIST_INST
PSHELL AFFE_MODELE(MODELISATION=’DKT‘), AFFE_CARA_ELEM(COQUE_F(EPAIS)) + AFFE_MATERIAU
CQUAD4 See “prob6.mail” file: QUAD4 + AFFE_CARA_ELEM(COQUE=_F(GROUPMA))
MAT1 DEFI_MATERIAU(ELAS)
MAT1S DEFI_MATERIAU(ECRO_LINE) + STAT_NON_LINE(COMPORTEMENT=_F(RELATION=’VMIS_ISOT_LINE‘))
GRID See “prob6.mail” file: COOR_3D
SPCADD, SPC1 AFFE_CHAR_CINE
FORCE AFFE_CHAR_MECA(FORCE_NODALE)
ENDDATA FIN

After the calculation, we will find the displacement at nodes as well as the stress / strain relationship and compare them with Nastran results :

stress_strain_nastran

Here is the corresponding curve for Code_Aster (values are different because Nastran is calculating over four nodes, while here we are showing a single node only) to see that the behaviour is similar.

prob6

Let’s have a look at final displacements :

depl

Here is a table of comparison between Nastran and Code_Aster results for this case (Nastran values are taken from the pdf file above) :

Node Instant Nastran Disp Code_Aster Disp Diff %
N3 DX 1 0.006666666 0.00666666666667 0.00001%
N3 DX 2 0.1320886 0.130833455919 0.95%
N3 DX 3 0.131671 0.130416789252 0.95%
N3 DX 4 0.1237553 0.122500122585 1%

First of all, let’s see the Nastran code (file “prob6.dat”) for this exemple :


$ASSIGN OUTPUT2 = ‘prob6.op2’, UNIT = 12
$ Direct Text Input for File Management Section
$ Nonlinear Static Analysis, Database
SOL 106
TIME 600
$ Direct Text Input for Executive Control
CEND
SEALL = ALL
SUPER = ALL
TITLE = MSC/NASTRAN job created on 15-Jan-98 at 20:05:03
ECHO = NONE
MAXLINES = 999999999
$ Direct Text Input for Global Case Control Data
SUBCASE 1
$ Subcase name : case_1
   SUBTITLE=case_1
   NLPARM = 1
   SPC = 2
   LOAD = 2
   DISPLACEMENT(SORT1,REAL)=ALL
   STRESS(SORT1,REAL,VONMISES,BILIN)=ALL
$ Direct Text Input for this Subcase
SUBCASE 2
$ Subcase name : case_2
   SUBTITLE=case_2
   NLPARM = 2
   SPC = 2
   LOAD = 5
   DISPLACEMENT(SORT1,REAL)=ALL
   STRESS(SORT1,REAL,VONMISES,BILIN)=ALL
$ Direct Text Input for this Subcase
SUBCASE 3
$ Subcase name : case_3
   SUBTITLE=case_3
   NLPARM = 3
   SPC = 2
   LOAD = 8
   DISPLACEMENT(SORT1,REAL)=ALL
   STRESS(SORT1,REAL,VONMISES,BILIN)=ALL
$ Direct Text Input for this Subcase
SUBCASE 4
$ Subcase name : case_4
   SUBTITLE=case_4
   NLPARM = 4
   SPC = 2
   LOAD = 11
   DISPLACEMENT(SORT1,REAL)=ALL
   STRESS(SORT1,REAL,VONMISES,BILIN)=ALL
$ Direct Text Input for this Subcase
BEGIN BULK
PARAM    POST    -1
PARAM    PATVER  3.
PARAM    AUTOSPC YES
PARAM   COUPMASS -1
PARAM    K6ROT   100.
PARAM    WTMASS  1.
PARAM    LGDISP  1
PARAM,NOCOMPS,-1
PARAM   PRTMAXIM YES
NLPARM   1       1               AUTO    5       25      P       NO     +      A
+      A         .001
NLPARM   2       8               AUTO    5       25      P       NO     +      B
+      B         .001
NLPARM   3       5               AUTO    5       25      P       NO     +      C
+      C         .001
NLPARM   4       2               AUTO    5       25      P       NO     +      D
+      D         .001
$ Direct Text Input for Bulk Data
$ Elements and Element Properties for region : plate
PSHELL   1       1       .1      1               1
CQUAD4   1       1       1       2       5       4
CQUAD4   2       1       2       3       6       5
CQUAD4   3       1       4       5       8       7
CQUAD4   4       1       5       6       9       8
$ Referenced Material Records
$ Material Record : mat_1
$ Description of Material : Date: 15-Jan-98           Time: 20:03:34
MATS1    1               PLASTIC 30303.  1       1       850.
MAT1     1       3.+6            .25
$ Nodes of the Entire Model
GRID     1               0.      0.      0.
GRID     2               12.5    0.      0.
GRID     3               25.     0.      0.
GRID     4               0.      2.5     0.
GRID     5               12.5    2.5     0.
GRID     6               25.     2.5     0.
GRID     7               0.      5.      0.
GRID     8               12.5    5.      0.
GRID     9               25.     5.      0.
$ Loads for Load Case : case_1
SPCADD   2       13      15      16
LOAD     2       1.      1.      10      1.      12
$ Loads for Load Case : case_2
LOAD     5       1.      1.25    10      1.25    12
$ Loads for Load Case : case_3
LOAD     8       1.      1.1875  10      1.1875  12
$ Loads for Load Case : case_4
LOAD     11      1.      0.      10      0.      12
$ Displacement Constraints of Load Set : constraint_1
SPC1     13      1       1       4       7
$ Displacement Constraints of Load Set : constraint_2
SPC1     15      2       1       2       3
$ Displacement Constraints of Load Set : constraint_3
SPC1     16      3456    1       THRU    9
$ Nodal Forces of Load Set : force_1a
FORCE    10      3       0       100.    1.      0.      0.
FORCE    10      9       0       100.    1.      0.      0.
$ Nodal Forces of Load Set : force_1b
FORCE    12      6       0       200.    1.      0.      0.
$ Referenced Coordinate Frames
ENDDATA

In Code_Aster, you will need to create distinct files for the mesh and the commands and also a mesh file for calculating the section parameters. Let’s start with the main mesh file (file “prob6.mail”) :

mesh



TITRE    
	prob6
FINSF

COOR_3D

	N1  0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
	N2  1.2500000000e+01 0.0000000000e+00 0.0000000000e+00
	N5  1.2500000000e+01 2.5000000000e+00 0.0000000000e+00
	N4  0.0000000000e+00 2.5000000000e+00 0.0000000000e+00
	N3  2.5000000000e+01 0.0000000000e+00 0.0000000000e+00
	N6  2.5000000000e+01 2.5000000000e+00 0.0000000000e+00
	N8  1.2500000000e+01 5.0000000000e+00 0.0000000000e+00
	N7  0.0000000000e+00 5.0000000000e+00 0.0000000000e+00
	N9  2.5000000000e+01 5.0000000000e+00 0.0000000000e+00
FINSF


QUAD4 

 E1  N1 N2 N5 N4
 E2  N2 N3 N6 N5
 E3  N4 N5 N8 N7
 E4  N5 N6 N9 N8 
FINSF




GROUP_MA NOM = G1
    % Original part : 1
  E1 E2 E3 E4
FINSF

FIN

Finally, the command file (file “prob6.comm”) :


DEBUT(PAR_LOT='NON',
      ERREUR=_F(ERREUR_F='ABORT',),
      IGNORE_ALARM=('SUPERVIS_1','MODELISA4_6','MODELISA4_8',),);

MAIL=LIRE_MAILLAGE(FORMAT='ASTER',
                   VERI_MAIL=_F(VERIF='OUI',),);

MODMECA=AFFE_MODELE(MAILLAGE=MAIL,
                    AFFE=_F(GROUP_MA='G1',
                            PHENOMENE='MECANIQUE',
                            MODELISATION='DKT',),);

LST00001=DEFI_LIST_REEL(DEBUT=0.0,
                        INTERVALLE=_F(JUSQU_A=1.0,
                                      NOMBRE=1,),);

LST00002=DEFI_LIST_REEL(DEBUT=1.0,
                        INTERVALLE=_F(JUSQU_A=2.0,
                                      NOMBRE=8,),);

LST00003=DEFI_LIST_REEL(DEBUT=2.0,
                        INTERVALLE=_F(JUSQU_A=3.0,
                                      NOMBRE=20,),);

LST00004=DEFI_LIST_REEL(DEBUT=3.0,
                        INTERVALLE=_F(JUSQU_A=4.0,
                                      NOMBRE=2,),);

MAT00001=DEFI_MATERIAU(ELAS=_F(E=3000000.0,
                               NU=0.25,
                               RHO=0.0,),
                       ECRO_LINE=_F(D_SIGM_EPSI=30303.0,
                                    SY=850.0,),);

CHMAT=AFFE_MATERIAU(MAILLAGE=MAIL,
                    AFFE=_F(GROUP_MA='G1',
                            MATER=MAT00001,),);

CINE1=AFFE_CHAR_CINE(MODELE=MODMECA,
                     MECA_IMPO=_F(NOEUD=('N2','N1','N3',),
                                  DY=0.0,),);

CINE2=AFFE_CHAR_CINE(MODELE=MODMECA,
                     MECA_IMPO=_F(NOEUD=('N7','N4','N5','N8','N2','N9','N3','N1','N6',),
                                  DZ=0.0,
                                  DRX=0.0,
                                  DRY=0.0,
                                  DRZ=0.0,),);

CINE3=AFFE_CHAR_CINE(MODELE=MODMECA,
                     MECA_IMPO=_F(NOEUD=('N7','N1','N4',),
                                  DX=0.0,),);

CHARGE1=AFFE_CHAR_MECA(MODELE=MODMECA,
                       FORCE_NODALE=_F(NOEUD=('N3','N9',),
                                       FX=100.0,),);

CHARGE2=AFFE_CHAR_MECA(MODELE=MODMECA,
                       FORCE_NODALE=_F(NOEUD='N6',
                                       FX=200.0,),);

CHARGE3=AFFE_CHAR_MECA(MODELE=MODMECA,
                       FORCE_NODALE=(_F(NOEUD=('N3','N9',),
                                        FX=100.0,),
                                     _F(NOEUD='N6',
                                        FX=200.0,),),);

CHARGE4=AFFE_CHAR_MECA(MODELE=MODMECA,
                       FORCE_NODALE=(_F(NOEUD=('N3','N9',),
                                        FX=125.0,),
                                     _F(NOEUD='N6',
                                        FX=250.0,),),);

CHARGE5=AFFE_CHAR_MECA(MODELE=MODMECA,
                       FORCE_NODALE=(_F(NOEUD=('N3','N9',),
                                        FX=118.75,),
                                     _F(NOEUD='N6',
                                        FX=237.5,),),);

CAEL=AFFE_CARA_ELEM(MODELE=MODMECA,
                    COQUE=_F(GROUP_MA='G1',
                             EPAIS=0.1,
                             VECTEUR=(0.9,0.1,0.2,),),);

LAUTO1=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                   LIST_INST=LST00001,),);

RAMP1=DEFI_FONCTION(
                    NOM_PARA='INST',
                    VALE=(0.0 ,0.0 ,
                          1.0 ,1.0 ,),
                    INTERPOL='LIN',);

RESU1=STAT_NON_LINE(MODELE=MODMECA,
                    CHAM_MATER=CHMAT,
                    CARA_ELEM=CAEL,
                    EXCIT=(_F(CHARGE=CHARGE3,
                              FONC_MULT=RAMP1,),
                           _F(CHARGE=CINE1,),
                           _F(CHARGE=CINE2,),
                           _F(CHARGE=CINE3,),),
                    COMPORTEMENT=_F(GROUP_MA='G1',
                                    RELATION='VMIS_ISOT_LINE',),
                    INCREMENT=_F(LIST_INST=LAUTO1,),
                    ARCHIVAGE=_F(LIST_INST=LST00001,),);

TEST_RESU(RESU=_F(RESULTAT=RESU1,
                  NUME_ORDRE=1,
                  NOM_CHAM='DEPL',
                  NOM_CMP='DX',
                  NOEUD='N3',
                  TOLE_MACHINE=0.02,
                  CRITERE='RELATIF',
                  VALE_REFE=0.006666666,
                  PRECISION=0.02,
                  REFERENCE='SOURCE_EXTERNE',
                  VALE_CALC=0.006666666,),);

RESU1=CALC_CHAMP(reuse =RESU1,
                 RESULTAT=RESU1,
                 DEFORMATION='EPSI_ELGA',);

RESU1EXS=POST_CHAMP(RESULTAT=RESU1,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='SIEF_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU1EXS=CALC_CHAMP(reuse =RESU1EXS,
                    RESULTAT=RESU1EXS,
                    CONTRAINTE='SIEF_NOEU',
                    CRITERES='SIEQ_NOEU',);

TB_SIG1=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                INTITULE='VMIS',
                                RESULTAT=RESU1EXS,
                                NOM_CHAM='SIEQ_NOEU',
                                NOEUD='N5',
                                NOM_CMP='VMIS',),);

RESU1EXE=POST_CHAMP(RESULTAT=RESU1,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='EPSI_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU1EXE=CALC_CHAMP(reuse =RESU1EXE,
                    RESULTAT=RESU1EXE,
                    DEFORMATION='EPSI_NOEU',);

TB_EPXX1=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                 INTITULE='EPSI_NOEU',
                                 RESULTAT=RESU1EXE,
                                 NOM_CHAM='EPSI_NOEU',
                                 NOEUD='N5',
                                 NOM_CMP='EPXX',),);

LAUTO2=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                   LIST_INST=LST00002,),);

IRAMP1=DEFI_FONCTION(
                     NOM_PARA='INST',
                     VALE=(1.0 ,1.0 ,
                           2.0 ,0.0 ,),
                     INTERPOL='LIN',);

RAMP2=DEFI_FONCTION(
                    NOM_PARA='INST',
                    VALE=(1.0 ,0.0 ,
                          2.0 ,1.0 ,),
                    INTERPOL='LIN',);

RESU2=STAT_NON_LINE(MODELE=MODMECA,
                    CHAM_MATER=CHMAT,
                    CARA_ELEM=CAEL,
                    EXCIT=(_F(CHARGE=CHARGE3,
                              FONC_MULT=IRAMP1,),
                           _F(CHARGE=CHARGE4,
                              FONC_MULT=RAMP2,),
                           _F(CHARGE=CINE1,),
                           _F(CHARGE=CINE2,),
                           _F(CHARGE=CINE3,),),
                    COMPORTEMENT=_F(GROUP_MA='G1',
                                    RELATION='VMIS_ISOT_LINE',),
                    ETAT_INIT=_F(EVOL_NOLI=RESU1,),
                    INCREMENT=_F(LIST_INST=LAUTO2,),
                    ARCHIVAGE=_F(LIST_INST=LST00002,),);

TEST_RESU(RESU=_F(RESULTAT=RESU2,
                  NUME_ORDRE=8,
                  NOM_CHAM='DEPL',
                  NOM_CMP='DX',
                  NOEUD='N3',
                  TOLE_MACHINE=0.02,
                  CRITERE='RELATIF',
                  VALE_REFE=0.1320886,
                  PRECISION=0.02,
                  REFERENCE='SOURCE_EXTERNE',
                  VALE_CALC=0.1320886,),);

RESU2=CALC_CHAMP(reuse =RESU2,
                 RESULTAT=RESU2,
                 DEFORMATION='EPSI_ELGA',);

RESU2EXS=POST_CHAMP(RESULTAT=RESU2,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='SIEF_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU2EXS=CALC_CHAMP(reuse =RESU2EXS,
                    RESULTAT=RESU2EXS,
                    CONTRAINTE='SIEF_NOEU',
                    CRITERES='SIEQ_NOEU',);

TB_SIG2=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                INTITULE='VMIS',
                                RESULTAT=RESU2EXS,
                                NOM_CHAM='SIEQ_NOEU',
                                NOEUD='N5',
                                NOM_CMP='VMIS',),);

RESU2EXE=POST_CHAMP(RESULTAT=RESU2,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='EPSI_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU2EXE=CALC_CHAMP(reuse =RESU2EXE,
                    RESULTAT=RESU2EXE,
                    DEFORMATION='EPSI_NOEU',);

TB_EPXX2=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                 INTITULE='EPSI_NOEU',
                                 RESULTAT=RESU2EXE,
                                 NOM_CHAM='EPSI_NOEU',
                                 NOEUD='N5',
                                 NOM_CMP='EPXX',),);

LAUTO3=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                   LIST_INST=LST00003,),);

IRAMP2=DEFI_FONCTION(
                     NOM_PARA='INST',
                     VALE=(2.0 ,1.0 ,
                           3.0 ,0.0 ,),
                     INTERPOL='LIN',);

RAMP3=DEFI_FONCTION(
                    NOM_PARA='INST',
                    VALE=(2.0 ,0.0 ,
                          3.0 ,1.0 ,),
                    INTERPOL='LIN',);

RESU3=STAT_NON_LINE(MODELE=MODMECA,
                    CHAM_MATER=CHMAT,
                    CARA_ELEM=CAEL,
                    EXCIT=(_F(CHARGE=CHARGE4,
                              FONC_MULT=IRAMP2,),
                           _F(CHARGE=CHARGE5,
                              FONC_MULT=RAMP3,),
                           _F(CHARGE=CINE1,),
                           _F(CHARGE=CINE2,),
                           _F(CHARGE=CINE3,),),
                    COMPORTEMENT=_F(GROUP_MA='G1',
                                    RELATION='VMIS_ISOT_LINE',),
                    ETAT_INIT=_F(EVOL_NOLI=RESU2,),
                    INCREMENT=_F(LIST_INST=LAUTO3,),
                    ARCHIVAGE=_F(LIST_INST=LST00003,),);

TEST_RESU(RESU=_F(RESULTAT=RESU3,
                  NUME_ORDRE=20,
                  NOM_CHAM='DEPL',
                  NOM_CMP='DX',
                  NOEUD='N3',
                  TOLE_MACHINE=0.02,
                  CRITERE='RELATIF',
                  VALE_REFE=0.131671,
                  PRECISION=0.02,
                  REFERENCE='SOURCE_EXTERNE',
                  VALE_CALC=0.131671,),);

RESU3=CALC_CHAMP(reuse =RESU3,
                 RESULTAT=RESU3,
                 DEFORMATION='EPSI_ELGA',);

RESU3EXS=POST_CHAMP(RESULTAT=RESU3,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='SIEF_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU3EXS=CALC_CHAMP(reuse =RESU3EXS,
                    RESULTAT=RESU3EXS,
                    CONTRAINTE='SIEF_NOEU',
                    CRITERES='SIEQ_NOEU',);

TB_SIG3=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                INTITULE='VMIS',
                                RESULTAT=RESU3EXS,
                                NOM_CHAM='SIEQ_NOEU',
                                NOEUD='N5',
                                NOM_CMP='VMIS',),);

RESU3EXE=POST_CHAMP(RESULTAT=RESU3,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='EPSI_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU3EXE=CALC_CHAMP(reuse =RESU3EXE,
                    RESULTAT=RESU3EXE,
                    DEFORMATION='EPSI_NOEU',);

TB_EPXX3=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                 INTITULE='EPSI_NOEU',
                                 RESULTAT=RESU3EXE,
                                 NOM_CHAM='EPSI_NOEU',
                                 NOEUD='N5',
                                 NOM_CMP='EPXX',),);

LAUTO4=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                   LIST_INST=LST00004,),);

IRAMP3=DEFI_FONCTION(
                     NOM_PARA='INST',
                     VALE=(3.0 ,1.0 ,
                           4.0 ,0.0 ,),
                     INTERPOL='LIN',);

RESU4=STAT_NON_LINE(MODELE=MODMECA,
                    CHAM_MATER=CHMAT,
                    CARA_ELEM=CAEL,
                    EXCIT=(_F(CHARGE=CHARGE5,
                              FONC_MULT=IRAMP3,),
                           _F(CHARGE=CINE1,),
                           _F(CHARGE=CINE2,),
                           _F(CHARGE=CINE3,),),
                    COMPORTEMENT=_F(GROUP_MA='G1',
                                    RELATION='VMIS_ISOT_LINE',),
                    ETAT_INIT=_F(EVOL_NOLI=RESU3,),
                    INCREMENT=_F(LIST_INST=LAUTO4,),
                    ARCHIVAGE=_F(LIST_INST=LST00004,),);

TEST_RESU(RESU=_F(RESULTAT=RESU4,
                  NUME_ORDRE=2,
                  NOM_CHAM='DEPL',
                  NOM_CMP='DX',
                  NOEUD='N3',
                  TOLE_MACHINE=0.02,
                  CRITERE='RELATIF',
                  VALE_REFE=0.1237553,
                  PRECISION=0.02,
                  REFERENCE='SOURCE_EXTERNE',
                  VALE_CALC=0.1237553,),);

RESU4=CALC_CHAMP(reuse =RESU4,
                 RESULTAT=RESU4,
                 DEFORMATION='EPSI_ELGA',);

RESU4EXS=POST_CHAMP(RESULTAT=RESU4,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='SIEF_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU4EXS=CALC_CHAMP(reuse =RESU4EXS,
                    RESULTAT=RESU4EXS,
                    CONTRAINTE='SIEF_NOEU',
                    CRITERES='SIEQ_NOEU',);

TB_SIG4=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                INTITULE='VMIS',
                                RESULTAT=RESU4EXS,
                                NOM_CHAM='SIEQ_NOEU',
                                NOEUD='N5',
                                NOM_CMP='VMIS',),);

RESU4EXE=POST_CHAMP(RESULTAT=RESU4,
                    MAILLE='E1',
                    EXTR_COQUE=_F(NOM_CHAM='EPSI_ELGA',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);

RESU4EXE=CALC_CHAMP(reuse =RESU4EXE,
                    RESULTAT=RESU4EXE,
                    DEFORMATION='EPSI_NOEU',);

TB_EPXX4=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                 INTITULE='EPSI_NOEU',
                                 RESULTAT=RESU4EXE,
                                 NOM_CHAM='EPSI_NOEU',
                                 NOEUD='N5',
                                 NOM_CMP='EPXX',),);

TB_SIG=CALC_TABLE(TABLE=TB_SIG1,
                  ACTION=(_F(OPERATION='COMB',
                             TABLE=TB_SIG2,
                             NOM_PARA='INST',),
                          _F(OPERATION='COMB',
                             TABLE=TB_SIG3,
                             NOM_PARA='INST',),
                          _F(OPERATION='COMB',
                             TABLE=TB_SIG4,
                             NOM_PARA='INST',),),);

TB_EPXX=CALC_TABLE(TABLE=TB_EPXX1,
                   ACTION=(_F(OPERATION='COMB',
                              TABLE=TB_EPXX2,
                              NOM_PARA='INST',),
                           _F(OPERATION='COMB',
                              TABLE=TB_EPXX3,
                              NOM_PARA='INST',),
                           _F(OPERATION='COMB',
                              TABLE=TB_EPXX4,
                              NOM_PARA='INST',),),);

TB_SIEP=CALC_TABLE(TABLE=TB_SIG,
                   ACTION=_F(OPERATION='COMB',
                             TABLE=TB_EPXX,
                             NOM_PARA='INST',),);

IMPR_TABLE(TABLE=TB_SIEP,
           FORMAT='XMGRACE',
           PILOTE='PNG',
           UNITE=25,
           NOM_PARA=('EPXX','VMIS',),
           MARQUEUR=0,);

IMPR_RESU(FORMAT='RESULTAT',
          RESU=(_F(RESULTAT=RESU1,
                   NOM_CHAM='DEPL',
                   VALE_MAX='OUI',
                   VALE_MIN='OUI',),
                _F(RESULTAT=RESU2,
                   NOM_CHAM='DEPL',
                   VALE_MAX='OUI',
                   VALE_MIN='OUI',),
                _F(RESULTAT=RESU3,
                   NOM_CHAM='DEPL',
                   VALE_MAX='OUI',
                   VALE_MIN='OUI',),
                _F(RESULTAT=RESU4,
                   NOM_CHAM='DEPL',
                   VALE_MAX='OUI',
                   VALE_MIN='OUI',),),);

IMPR_RESU(FORMAT='MED',
          UNITE=80,
          RESU=(_F(RESULTAT=RESU1,
                   NOM_CHAM='DEPL',),
                _F(RESULTAT=RESU2,
                   NOM_CHAM='DEPL',),
                _F(RESULTAT=RESU3,
                   NOM_CHAM='DEPL',),
                _F(RESULTAT=RESU4,
                   NOM_CHAM='DEPL',),),);

FIN(FORMAT_HDF='OUI',);

You will also need a file to keep everything together ( file “prob6.export”). This file is the one needed to start the calculation on command line (“as_run prob6.export”) :


P actions make_etude
P memory_limit 256.0
P mode interactif
P mpi_nbcpu 1
P mpi_nbnoeud 1
P ncpus 1
P testlist verification sequential
P time_limit 60.0
P version testing
A memjeveux 375.0
A tpmax 172800
P memjob 3072000
P tpsjob 2880
F comm prob6.comm D 1
F mail prob6.mail D 20
F mess prob6.mess R 6
F resu prob6.resu R 8
F rmed prob6.rmed R 81
F libr prob6.png R 25

One thought on “Nastran to Code_Aster : elasto-plastic deformation

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s