
DEBUT();

sig1=DEFI_FONCTION(
                   NOM_PARA='EPSI',
                   NOM_RESU='SIGM',
                   VALE=(0.001 ,210.0 ,
                         0.4 ,400.0 ,),#材料の応力ひずみ関係、最初の値が降伏点になる。
                   PROL_DROITE='LINEAIRE',
                   PROL_GAUCHE='LINEAIRE',);


MA=DEFI_MATERIAU(ELAS=_F(E=210000.0,#VMIS_ECMI_TRACでここのヤング率は無視される。3とかでもいい。
                         NU=0.3,#降伏後は勝手に0.5になる。
                         RHO=7.87e-9,),#鉄の密度(t/mm^3)
                 TRACTION=_F(SIGM=sig1,),
                 PRAGER=_F(C=324.4,),);#プラガーの硬化半径値(遠藤の修論日誌,Drucker Pragerの硬化則)


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

MODE=AFFE_MODELE(MAILLAGE=MAIL,
                 AFFE=_F(TOUT='OUI',
                         PHENOMENE='MECANIQUE',
                         MODELISATION='3D',),);

MATE=AFFE_MATERIAU(MAILLAGE=MAIL,
                   AFFE=_F(TOUT='OUI',
                           MATER=MA,),);

CHAR=AFFE_CHAR_MECA(MODELE=MODE,
                    DDL_IMPO=(_F(GROUP_MA='z',
                                 DZ=0.0,),
                              _F(GROUP_MA='x',
                                 DX=0.0,),
                              _F(GROUP_MA='y',
                                 DY=0.0,),),
                    FORCE_FACE=_F(GROUP_MA='saika',
                                  FZ=220.0,),);


inst=DEFI_LIST_REEL(DEBUT=0.0,
                    INTERVALLE=(_F(JUSQU_A=1.0,#1秒を0.001づつ1000ステップで計算
                                   PAS=0.001,),
                                _F(JUSQU_A=2.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=3.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=4.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=5.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=6.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=7.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=8.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=9.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=10.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=11.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=12.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=13.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=14.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=15.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=16.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=17.0,
                                   PAS=0.001,),
                                _F(JUSQU_A=18.0,
                                   PAS=0.001,),),);

dinst=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',#計算が収束しないときにタイムステップを細かくしなおしてくれるコマンド。
                                  LIST_INST=inst,#DEFI_LIST_REEL適用
                                  PAS_MINI=1e-05,
                                  PAS_MAXI=0.5,
                                  NB_PAS_MAXI=1000000,),);

fonc1=DEFI_FONCTION(
                    NOM_PARA='INST',
                    VALE=(0.0 ,0.0 ,
                          1.0 ,1.0 ,#AFFE_CHAR_MECAで設定したFZ=220の1倍の載荷
                          2.0 ,0.0 ,#載荷なし
                          3.0 ,-1.0 ,#-1倍の載荷
                          4.0 ,0.0 ,#載荷なし
                          5.0 ,1.0 ,#1倍の載荷
                          6.0 ,0.0 ,#...
                          7.0 ,-1.0 ,
                          8.0 ,0.0 ,
                          9.0 ,1.0 ,
                          10.0 ,0.0 ,
                          11.0 ,-1.0 ,
                          12.0 ,0.0 ,
                          13.0 ,1.0 ,
                          14.0 ,0.0 ,
                          15.0 ,-1.0 ,
                          16.0 ,0.0 ,
                          17.0 ,1.0 ,
                          18.0 ,0.0 ,),);

RESU=DYNA_NON_LINE(MODELE=MODE,
                   CHAM_MATER=MATE,
                   EXCIT=_F(CHARGE=CHAR,#設定した荷重を
                            FONC_MULT=fonc1,),#fonc1で設定した時間でかける
                   AMOR_RAYL_RIGI='ELASTIQUE',
                   COMPORTEMENT=_F(RELATION='VMIS_ECMI_TRAC',#ミーゼスの降伏条件、プラガー硬化則、幾何学非線形解析
                                   DEFORMATION='PETIT_REAC',),#幾何学非線形解析、細かいタイムステップでないと誤差が出る。
                   INCREMENT=_F(LIST_INST=dinst,),#ここをDEFI_LIST_INSTにする
                   SCHEMA_TEMPS=_F(SCHEMA='NEWMARK',#動的解析をするための計算法。
                                   BETA=0.25,
                                   GAMMA=0.5,
                                   FORMULATION='DEPLACEMENT',),
                   NEWTON=_F(PREDICTION='TANGENTE',
                             MATRICE='TANGENTE',
                             REAC_ITER=1,),
                   CONVERGENCE=_F(RESI_GLOB_RELA=0.001,#収束誤差DEFI_LIST_INSTがあるから小さくていい
                                  ITER_GLOB_MAXI=10,),#収束までの計算回数DEFI_LIST_INSTがあるから少なくていい
                   ARCHIVAGE=_F(LIST_INST=inst,
                                CHAM_EXCLU='VARI_ELGA',),);

RESU=CALC_CHAMP(reuse =RESU,
                MODELE=MODE,
                CHAM_MATER=MATE,
                RESULTAT=RESU,
                EXCIT=_F(CHARGE=CHAR,),
                CONTRAINTE='SIEF_ELNO',
                CRITERES='SIEQ_ELNO',);

RESU=CALC_CHAMP(reuse =RESU,
                RESULTAT=RESU,
                CONTRAINTE=('SIGM_NOEU','SIEF_NOEU',),
                DEFORMATION='EPSI_NOEU',
                CRITERES='SIEQ_NOEU',);

IMPR_RESU(FORMAT='MED',
          UNITE=80,
          RESU=_F(MAILLAGE=MAIL,
                  RESULTAT=RESU,
                  NOM_CHAM=('SIGM_NOEU','SIEQ_NOEU','DEPL','EPSI_NOEU',),),);

FIN();
#CHECKSUM:25886a0c5aa5a31820b763ef3e308c38  -:FIN CHECKSUM
