DEBUT(); #JIS K7125の摩擦試験(STA10)
                                                       
#材料定数
kou=DEFI_MATERIAU(ELAS=_F(E=206e+3, #鋼材
                          NU=0.3,),);

#moku=DEFI_MATERIAU(ELAS=_F(E=7e+3, #木材
#                           NU=0.4,),);

gomu=DEFI_MATERIAU(ELAS=_F(E=1.0,
                           NU=0.49,),);

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

#MAIL=MODI_MAILLAGE(reuse =MAIL,
#                   MAILLAGE=MAIL,
#                   ORIE_PEAU_3D=_F(GROUP_MA='pue',),);

#要素の設定
MODE=AFFE_MODELE(MAILLAGE=MAIL,
                 AFFE=_F(TOUT='OUI',
				         PHENOMENE='MECANIQUE',
						 MODELISATION='3D',),);

#材料定数と部材の対応
MATE=AFFE_MATERIAU(MAILLAGE=MAIL,
                   AFFE=(_F(GROUP_MA=('yuka','siken'),
				            MATER=kou,),
						 _F(GROUP_MA='gom',
						    MATER=gomu,),
							),);

#マスター面とスレーブ面の選択
contact=DEFI_CONTACT(MODELE=MODE,
                     FORMULATION='DISCRETE',
					 FROTTEMENT='COULOMB',
					 ZONE=_F(GROUP_MA_MAIT='mmen', #mesh粗、硬い 方の面
					         GROUP_MA_ESCL='smen', #mesh密、軟い 方の面
							 ALGO_CONT='PENALISATION', #ペナルティ法
							 E_N=206e+3, #法線方向のヤング率(小さい方のヤング率)
							 COULOMB=0.4, #摩擦係数
							 ALGO_FROT='PENALISATION',
							 E_T=206e+2,),); #接線方向のヤング率(よくわからない)

#境界条件と荷重条件(抑えるだけ)	
osae=AFFE_CHAR_MECA(MODELE=MODE,
                    DDL_IMPO=(_F(GROUP_MA='kotei1',
                                 DX=0.0,
                                 DY=0.0,
                                 DZ=0.0,),
    						  _F(GROUP_MA='joumen',
    							 DY=0.0,),
    						  _F(GROUP_MA='kotei2',
                                 DX=0.0,
                                 DY=0.0,
    	                         DZ=0.0,),
    						  _F(GROUP_MA='sita',
    							 DY=0.0,
    						     DZ=0.0,),
                                 ),
                   FORCE_FACE=_F(GROUP_MA='joumen',
                                 FZ=-0.2,),); #1000N/(50mm*100mm)
                                     
    
#境界条件と荷重条件(ずらす)
#zurasi=AFFE_CHAR_MECA(MODELE=MODE,
#                      DDL_IMPO=_F(GROUP_MA='saika',
#					              DX=16.6666667,),); #100mm/min=100/60=1.67mm/s 

tikara=AFFE_CHAR_MECA(MODELE=MODE,
                   FORCE_FACE=_F(GROUP_MA='saika',
                                  FX=1.0,),); #1000*0.4N/(50mm*10mm)

#時間と荷重の割合の関係
masatu=DEFI_FONCTION(
                     NOM_PARA='INST',
					 VALE=(0.0,0.0, #開始時刻,荷重
					       1.0,1.0, #終了時刻,荷重の割合
						   ),);

#計算時間と間隔
kankaku=DEFI_LIST_REEL(DEBUT=0.0, #開始時間
                       INTERVALLE=_F(JUSQU_A=1.0, #終了時間。上と一致させる
					                 NOMBRE=10,),); #時間の分割数

#計算
resu=STAT_NON_LINE(MODELE=MODE,
                   CHAM_MATER=MATE,
				   EXCIT=(_F(CHARGE=osae,),
				          _F(CHARGE=tikara, #ずらし に時間と荷重の割合の関係を適用
                          FONC_MULT=masatu,),),
                   CONTACT=contact,
    			   COMP_ELAS=_F(RELATION='ELAS',),
    			   INCREMENT=_F(LIST_INST=kankaku,),
    			   CONVERGENCE=_F(RESI_GLOB_RELA=0.01,
				                  ITER_GLOB_MAXI=500,),); #計算の最大反復回数

#要素解の計算
resu=CALC_ELEM(reuse =resu,
               MODELE=MODE,
               CHAM_MATER=MATE,
               RESULTAT=resu,
               OPTION=('SIEF_ELNO','SIEQ_ELNO',),);

#節点解の計算
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();
