Contrib:KeesWouters/shell/static/command

From CAELinuxWiki
Revision as of 20:30, 10 March 2010 by Keeswouters (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

command file

DEBUT(); th = 0.01;


meshinit=LIRE_MAILLAGE(FORMAT='MED',);

  1. meshinit=LIRE_MAILLAGE();

modinit=AFFE_MODELE(MAILLAGE=meshinit,

                   AFFE=_F(GROUP_MA=('Fbot','Fmain','Ftop','Fcentre1','Fcentre2',),
                           PHENOMENE='MECANIQUE',
                           MODELISATION='3D',),);

meshmod=CREA_MAILLAGE(MAILLAGE=meshinit,

                     MODI_MAILLE=_F(TOUT='OUI',
                                    OPTION='TRIA6_7',),);

meshmod=MODI_MAILLAGE(reuse =meshmod,

                     MAILLAGE=meshmod,
                     ORIE_NORM_COQUE=_F(GROUP_MA=('Fbot','Fmain','Ftop','Fcentre1','Fcentre2',),),);
      1. VECT_NORM= (0,0,+1),NOEUD='N19'),);


modmod=AFFE_MODELE(MAILLAGE=meshmod,

                  AFFE=_F(TOUT='OUI',
                          PHENOMENE='MECANIQUE',
                          MODELISATION='COQUE_3D',),);
    1. the shell characteristics
    2. the shells are applied on the group 'shell' defined in the Salome mesh
    3. the thickness of the shell is epais=th
    4. coque_ncou is the number of gauss nodes along the thickness, for linear analysis one node is sufficient.
    5. the parameter excentrement can give the offset of the shell wrt to the meshing plane, but this does not apply for coque_3d and is ignored here


shellch=AFFE_CARA_ELEM(MODELE=modmod,

                      COQUE=_F(GROUP_MA=('Fbot','Fmain','Ftop','Fcentre1','Fcentre2',),
                               EPAIS=th,
                               VECTEUR=(1.0,0.0,0.0,),
                               COQUE_NCOU=1,),);
    1. define material properties of steel (ISO values)


steel=DEFI_MATERIAU(ELAS=_F(E=210000000000.0,

                           NU=0.3,
                           RHO=7850.0,),);
    1. apply material properties to the whole mesh


material=AFFE_MATERIAU(MAILLAGE=meshmod,

                      AFFE=_F(TOUT='OUI',
                              MATER=steel,),);
    1. define BC and loads


load_bc=AFFE_CHAR_MECA(MODELE=modmod,

                      DDL_IMPO=(_F(GROUP_MA='Lbot',
                                   DX=0.0,
                                   DY=0.0,
                                   DZ=0.0,),
                                _F(GROUP_MA='Ltop',
                                   DZ=0.0,),),
                      FORCE_COQUE=(_F(GROUP_MA=('Fcentre1','Fcentre2',),
                                      PRES=182.6e3,),
                                   _F(GROUP_MA='Ftop',
                                      PRES=24.3e3,),
                                   _F(GROUP_MA='Fbot',
                                      PRES=29.5e3,),
                                   _F(GROUP_MA='Fmain',
                                      PRES=25.8e3,),),);
      1. FORCE_COQUE=_F(TOUT='OUI',FZ=-1000.0,),);
    1. define the calculation
    2. determine stiffness matrix, depending on material, mesh and applied model (coque_3D)


resu=MECA_STATIQUE(MODELE=modmod,

                  CHAM_MATER=material,
                  CARA_ELEM=shellch,
                  EXCIT=_F(CHARGE=load_bc,),
                  OPTION='SIEF_ELGA_DEPL',);

resu=CALC_ELEM(reuse =resu,

              MODELE=modmod,
              CHAM_MATER=material,
              RESULTAT=resu,
              REPE_COQUE=_F(NIVE_COUCHE='SUP',),
              OPTION='SIGM_ELNO_DEPL',);
      1. added for nodal forces and reaction forces


resu=CALC_NO(reuse =resu,

            RESULTAT=resu,
            OPTION=('FORC_NODA','REAC_NODA',),);

resuSUP=CALC_ELEM(MODELE=modmod,

                 CHAM_MATER=material,
                 RESULTAT=resu,
                 REPE_COQUE=_F(NIVE_COUCHE='SUP',),
                 OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),);

resuSUP=CALC_NO(reuse =resuSUP,

               RESULTAT=resuSUP,
               OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),);

IMPR_RESU(MODELE=modmod,

         FORMAT='MED',
         UNITE=80,
         RESU=(_F(MAILLAGE=meshmod,
                  RESULTAT=resu,
                  NOM_CHAM='DEPL',),
               _F(MAILLAGE=meshmod,
                  RESULTAT=resuSUP,
                  NOM_CHAM=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),),),);
  1. =========================
  2. Define a group of nodes for 'reaction nodal force' retrieval:
  3. Use the mesh named 'mesh'
    1. [Create a mesh group called 'npf1' derived from group_ma='pf1']
    2. [Create a node group called 'npf1' ]


  1. Create a node group called 'npf1' dervied from group_ma='pf1'

meshmod=DEFI_GROUP(reuse =meshmod,

                  MAILLAGE=meshmod,
                  CREA_GROUP_NO=(_F(GROUP_MA='Lbot',
                                    NOM='Nbot',),
                                 _F(GROUP_MA='Ltop',
                                    NOM='Ntop',),
                                 _F(GROUP_MA='Lleft',
                                    NOM='Nleft',),
                                 _F(GROUP_MA='Lright',
                                    NOM='Nright',),),);

meshmod=DEFI_GROUP(reuse =meshmod,

                  MAILLAGE=meshmod,
                  CREA_GROUP_NO=_F(UNION=('Nbot','Ntop','Nleft','Nright',),
                                   NOM='Nall',),);

TB_nodf=POST_RELEVE_T(ACTION=_F(OPERATION='EXTREMA',

                               INTITULE='displacements dz',
                               RESULTAT=resu,
                               NOM_CHAM='DEPL',
                               TOUT_ORDRE='OUI',
                               GROUP_NO='Nall',
                               NOM_CMP='DZ',),
                     INFO=2,
                     TITRE='Min/max of displacement DZ',);

IMPR_TABLE(TABLE=TB_nodf,

          FORMAT='TABLEAU',
          UNITE=26,
          SEPARATEUR=' * ',
          TITRE='extreme displacements on group allnodes',);

IMPR_RESU(MODELE=modmod,

         FORMAT='MED',
         UNITE=80,
         RESU=_F(MAILLAGE=meshmod,
                 RESULTAT=resu,
                 NOM_CHAM='REAC_NODA',),);
  1. TB_disp=POST_RELEVE_T(ACTION=(_F(OPERATION='EXTRACTION',
  2. INTITULE='Displacements',
  3. RESULTAT=result,
  4. NOM_CHAM='DEPL',
  5. TOUT_ORDRE='OUI',
  6. GROUP_NO='nforce',
  7. NOM_CMP=('DZ',),),),
  8. #TOUT_CMP='OUI',
  9. #RESULTANTE=('DZ',),),),
  10. TITRE='DZ',);
  11. ==================
    1. from .....


  1. TB_nodf=POST_RELEVE_T(ACTION=(_F(OPERATION='EXTRACTION',
  2. INTITULE='displacements',
  3. RESULTAT=Rdyn,
  4. NOM_CHAM='DEPL',
  5. TOUT_ORDRE='OUI',
  6. GROUP_NO='Ntop',
  7. RESULTANTE=('DX','DY','DZ',),
  8. MOYE_NOEUD='NON',),),
  9. TITRE='Displacement top of cylinder',);
  10. Finally, write the data to a file (define a file in ASTK with file unit 26, in this case).
  11. IMPR_TABLE(TABLE=TB_nodf,
  12. FORMAT='TABLEAU',
  13. UNITE=26,
  14. SEPARATEUR=' * ',
  15. TITRE='displacements at nodes on group Ntop',);
    1. ===========================


FIN();