DEBUT();   #板要素と立体要素をくっつけて、ヒンジにする。(STA10)

#材料定数
MA=DEFI_MATERIAU(ELAS=_F(E=210000000000.0,
                         NU=0.3,),);

#読み込みメッシュの形式
MAIL=LIRE_MAILLAGE(FORMAT='MED',);

#MAIL=MODI_MAILLAGE(reuse=MAIL,
#                   MAILLAGE=MAIL,
#                   ORIE_PEAU_2D=_F(GROUP_MA=('saika',),),
#                   );

#要素の設定
MODE=AFFE_MODELE(MAILLAGE=MAIL,
                 AFFE=(_F(GROUP_MA='zenmen', #板のグループの名前
                          PHENOMENE='MECANIQUE',
                          MODELISATION='DKT',), #板要素(1次)
                       _F(GROUP_MA='hako', #立体のグループの名前
                          PHENOMENE='MECANIQUE',
                          MODELISATION='3D',),),); #立体要素
#                         MODELISATION='C_PLAN',),); 

#「ita1」というのは、板の勝手に付けた名前。ここを変えたら、下の方に出てくる「ita1」も変える。
ita1=AFFE_CARA_ELEM(MODELE=MODE,
                    COQUE=_F(GROUP_MA='zenmen',
                             EPAIS=0.001, #厚さ
                             COQUE_NCOU=1,),); #層の数とやら

#面の法線方向を決めるらしいが、設定しなくても計算できた。
#chnorm=CREA_CHAMP(TYPE_CHAM='NOEU_GEOM_R',
#                   OPERATION='NORMALE',
#                   MODELE=MODE,
#                   GROUP_MA='zenmen',);

#材料定数と部材の対応
MATE=AFFE_MATERIAU(MAILLAGE=MAIL,
                   AFFE=_F(TOUT='OUI', #フランス語「全て＝はい」。つまり、１種材料。
                           MATER=MA,),);

#境界条件と荷重条件
CHAR=AFFE_CHAR_MECA(MODELE=MODE,
                    DDL_IMPO=(_F(GROUP_MA='kotei',
                                 DX=0.0,
                                 DY=0.0,
                                 DZ=0.0,),
                              _F(GROUP_MA='saika',
                                 DX=0.0,
                                 DY=0.0,
                                 DZ=0.1,  #蝶番だと変位を与えたほうがいい
                                 ),),
#                    FORCE_ARETE=_F(GROUP_MA='saika', #荷重だと解が出ない
#                                   FZ=1000,),
                    LIAISON_MAIL=_F(GROUP_MA_MAIT='hako', #境界をくっつける
                                    GROUP_MA_ESCL='sakai'),
                                    );

#計算
RESU=MECA_STATIQUE(MODELE=MODE,
                   CHAM_MATER=MATE,
                   CARA_ELEM=ita1,
                   EXCIT=_F(CHARGE=CHAR,),);

#要素解の計算
RESU=CALC_ELEM(reuse =RESU,
               MODELE=MODE,
               CHAM_MATER=MATE,
               RESULTAT=RESU,
               REPE_COQUE=_F(NIVE_COUCHE='SUP',),
               OPTION=('SIGM_ELNO','SIEQ_ELNO',),
               EXCIT=_F(CHARGE=CHAR,),);

#節点解の計算
RESU=CALC_NO(reuse =RESU,
             RESULTAT=RESU,
             OPTION=('SIGM_NOEU','SIEQ_NOEU',),);

#出力の設定
IMPR_RESU(FORMAT='MED',
          UNITE=80,
          RESU=_F(MAILLAGE=MAIL,
                  RESULTAT=RESU,
                  NOM_CHAM=('SIGM_NOEU','SIEQ_NOEU','DEPL',),),);

FIN();
