forma02bを試してみました

sponsored

モデルはforma02aと同形状の90度に曲がったパイプです。

今回は線形モード解析と応答解析です。
commが2つあります。

DEBUT(CODE=_F(NIV_PUB_WEB="INTERNET"), DEBUG=_F(SDVERI="OUI"))

MAIL = LIRE_MAILLAGE(FORMAT="MED")

MODELE = AFFE_MODELE(MAILLAGE=MAIL, AFFE=_F(TOUT="OUI", PHENOMENE="MECANIQUE", MODELISATION="3D"))

MAT = DEFI_MATERIAU(ELAS=_F(E=204000000000.0, NU=0.3, RHO=7800.0))

CHMAT = AFFE_MATERIAU(MAILLAGE=MAIL, AFFE=_F(TOUT="OUI", MATER=MAT))

BLOCAGE = AFFE_CHAR_MECA(MODELE=MODELE, DDL_IMPO=_F(GROUP_MA="BASE", DX=0.0, DY=0.0, DZ=0.0))

ASSEMBLAGE(
MODELE=MODELE,
CHAM_MATER=CHMAT,
CHARGE=BLOCAGE,
NUME_DDL=CO("NUMEDDL"),
MATR_ASSE=(
_F(MATRICE=CO("RIGIDITE"), OPTION="RIGI_MECA"),
_F(MATRICE=CO("MASSE"), OPTION="MASS_MECA"),
),
)

MODES = CALC_MODES(
MATR_RIGI=RIGIDITE, OPTION="PLUS_PETITE", CALC_FREQ=_F(NMAX_FREQ=10), MATR_MASS=MASSE
)

IMPR_RESU(FORMAT="MED", RESU=_F(MAILLAGE=MAIL, RESULTAT=MODES, NOM_CHAM="DEPL"))

TEST_RESU(RESU=_F(NUME_ORDRE=1, PARA="FREQ", RESULTAT=MODES, VALE_CALC=8.92046162697))

FIN()

もうひとつのcommです。

POURSUITE(CODE="OUI")

FYC = AFFE_CHAR_MECA(MODELE=MODELE, FORCE_FACE=_F(GROUP_MA="EFOND", FY=1.0))

FYE = CALC_VECT_ELEM(OPTION="CHAR_MECA", CHARGE=FYC)

FY = ASSE_VECTEUR(VECT_ELEM=FYE, NUME_DDL=NUMEDDL)

PROJ_BASE(
BASE=MODES,
MATR_ASSE_GENE=(
_F(MATRICE=CO("MASPRO"), MATR_ASSE=MASSE),
_F(MATRICE=CO("RIPRO"), MATR_ASSE=RIGIDITE),
),
VECT_ASSE_GENE=_F(VECTEUR=CO("FYPRO"), VECT_ASSE=FY, TYPE_VECT="FORC"),
)
tfi = 2.0

pas = 0.0001

fex = 20.0

amF = 10000000.0


fs = FORMULE(VALE="amF*sin(2*pi*fex*INST)", amF=amF, fex=fex, NOM_PARA="INST")

LINS = DEFI_LIST_REEL(DEBUT=0.0, INTERVALLE=_F(JUSQU_A=tfi, PAS=pas))

FSI = CALC_FONC_INTERP(FONCTION=fs, LIST_PARA=LINS, PROL_DROITE="CONSTANT", PROL_GAUCHE="CONSTANT")

DTM = DYNA_VIBRA(
TYPE_CALCUL="TRAN",
BASE_CALCUL="GENE",
MATR_MASS=MASPRO,
MATR_RIGI=RIPRO,
AMOR_MODAL=_F(AMOR_REDUIT=0.05),
INCREMENT=_F(INST_FIN=tfi, PAS=pas),
SCHEMA_TEMPS=_F(SCHEMA="DIFF_CENTRE"),
EXCIT=_F(VECT_ASSE_GENE=FYPRO, FONC_MULT=FSI),
)

DEPY_B = RECU_FONCTION(RESU_GENE=DTM, NOM_CHAM="DEPL", NOM_CMP="DY", GROUP_NO="P_EFOND")

IMPR_FONCTION(FORMAT="XMGRACE", UNITE=29, COURBE=_F(FONCTION=DEPY_B, MARQUEUR=0))
pavi = 0.01

LIVI = DEFI_LIST_REEL(DEBUT=0.0, INTERVALLE=_F(JUSQU_A=tfi, PAS=pavi))

TRAN = REST_GENE_PHYS(RESU_GENE=DTM, LIST_INST=LIVI, NOM_CHAM="DEPL")

IMPR_RESU(FORMAT="MED", RESU=_F(RESULTAT=TRAN))

LFR = DEFI_LIST_REEL(DEBUT=0, INTERVALLE=_F(JUSQU_A=60, PAS=0.1))

DLH = DYNA_VIBRA(
TYPE_CALCUL="HARM",
BASE_CALCUL="GENE",
MATR_MASS=MASPRO,
MATR_RIGI=RIPRO,
AMOR_MODAL=_F(AMOR_REDUIT=0.05),
LIST_FREQ=LFR,
EXCIT=_F(VECT_ASSE_GENE=FYPRO, COEF_MULT=amF),
)

DHB = REST_GENE_PHYS(RESU_GENE=DLH, NOM_CHAM=("DEPL", "ACCE"), GROUP_NO="P_EFOND")

DHY_B = RECU_FONCTION(RESULTAT=DHB, NOM_CHAM="DEPL", NOM_CMP="DY", GROUP_NO="P_EFOND")

MDHY_B = CALC_FONCTION(EXTRACTION=_F(FONCTION=DHY_B, PARTIE="MODULE"))

IMPR_FONCTION(FORMAT="XMGRACE", UNITE=39, COURBE=_F(FONCTION=MDHY_B, MARQUEUR=0), ECHELLE_Y="LOG")

TEST_RESU(
RESU=_F(
GROUP_NO="P_EFOND",
INST=1.0,
RESULTAT=TRAN,
NOM_CHAM="DEPL",
NOM_CMP="DY",
VALE_CALC=-0.12834619214,
)
)

TEST_FONCTION(VALEUR=_F(VALE_CALC=0.9390585084505, VALE_PARA=10.0, FONCTION=MDHY_B))

FIN()

testcaseを選択すると、自動で2つのcommが読み込まれます。
80番が2つあるので、片方の出力先をtext編集で変更して、出力結果を2つのファイルに分けました。

計算は、両方の計算条件を有効にしてrunボタンをクリックすれば始まります。
sampleですので、問題なく完了しました。

結果です。

こちらはモード解析結果から1次のモードを示します。

こちらは、応答解析結果の動画です。

以上です。

コメント

タイトルとURLをコピーしました