Atom topic feed | site map | contact | login | Protection des données personnelles | Powered by FluxBB | réalisation artaban
You are not logged in.
Hi,
I am new in frequency domain analysis in Code_Aster so I would like to create basic analysis. I am working regularly in Abaqus and running *Steady state dynamics to evaluate fixture performance. For this purpose I create MPC to all bolts holes that holds fixture and load control point with acceleration 1g load (9.81 m/s2) and check how fixture amplifies the signal in different locations.
My question is how can I simulate this in Code_Aster? Do you have any examples?
Thank you in advance,
PATCH
Offline
Hi everybody,
Can anybody help with this topic? I am enclosing my current progress with this analysis. Currently the analysis runs but gives me zero response which is not correct .
Thank you in advance.
PATCH
Offline
Hi all,
Im curious on this also, can we input enforced acceleration as input for harmonic response analysis in CA???
Thank you.
cwf007.
Offline
Below .comm can give you idea.
DEBUT(LANG='EN')
mesh = LIRE_MAILLAGE(UNITE=20)
model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
PHENOMENE='MECANIQUE',
TOUT='OUI'),
MAILLAGE=mesh)
mater = DEFI_MATERIAU(ELAS=_F(E=210000.0,
NU=0.3,
RHO=7.8e-09))
fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
TOUT='OUI'),
MODELE=model)
listR = DEFI_LIST_REEL(DEBUT=0.0,
INTERVALLE=_F(JUSQU_A=150.0,
PAS=0.1))
formula = FORMULE(NOM_PARA=('INST', ),
VALE='sin(2*pi*205.0*INST)')
func2d = CALC_FONC_INTERP(FONCTION=formula,
INTERPOL=('LIN', ),
LIST_PARA=listR,
PROL_DROITE='LINEAIRE',
PROL_GAUCHE='EXCLU')
load = AFFE_CHAR_MECA(MODELE=model,
PESANTEUR=_F(DIRECTION=(0.0, 0.0, -1.0),
GRAVITE=9850.0,
GROUP_MA=('vol', )))
load0 = AFFE_CHAR_MECA(DDL_IMPO=_F(GROUP_MA=('fix', ),
LIAISON='ENCASTRE'),
MODELE=model)
load3 = AFFE_CHAR_MECA(FORCE_FACE=_F(FZ=-10000.0,
GROUP_MA=('load', )),
MODELE=model)
ASSEMBLAGE(CHAM_MATER=fieldmat,
CHARGE=(load, load0),
MATR_ASSE=(_F(MATRICE=CO('ma'),
OPTION='MASS_MECA'),
_F(MATRICE=CO('ka'),
OPTION='RIGI_MECA')),
MODELE=model,
NUME_DDL=CO('nddl'),
VECT_ASSE=_F(CHARGE=(load3, ),
OPTION='CHAR_MECA',
VECTEUR=CO('fz')))
resharm0 = DYNA_VIBRA(BASE_CALCUL='PHYS',
CHAM_MATER=fieldmat,
EXCIT=_F(FONC_MULT=func2d,
VECT_ASSE=fz),
INCREMENT=_F(LIST_INST=listR),
MATR_MASS=ma,
MATR_RIGI=ka,
MODELE=model,
SCHEMA_TEMPS=_F(SCHEMA='NEWMARK'),
SOLVEUR=_F(METHODE='MUMPS',
NPREC=11,
PCENT_PIVOT=2000,
RENUM='AUTO'),
TYPE_CALCUL='TRAN')
restran = REST_SPEC_TEMP(METHODE='PROL_ZERO',
NOM_CHAM=('ACCE', ),
RESULTAT=resharm0,
SYMETRIE='OUI',
TOUT_CHAM='OUI')
table = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='dfft',
NOM_CHAM='ACCE',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=restran),
TITRE='LISTR=1000')
table1 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='DISPLACEMENT',
NOM_CHAM='DEPL',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=resharm0))
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='frequency',
LEGENDE_Y='amplitude',
NOM_PARA=('FREQ', 'DZ'),
PILOTE='EPS',
TABLE=table,
UNITE=29)
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='TIME-SEC',
LEGENDE_Y='DISPL-MM',
MARQUEUR=0,
NOM_PARA=('INST', 'DZ'),
PILOTE='EPS',
STYLE=1,
TABLE=table1,
UNITE=10)
FIN()
Offline
POURSUITE(LANG='EN',
PAR_LOT='NON')
field = CALC_CHAR_SEISME(DIRECTION=(0.0, 0.0, 1.0),
MATR_MASS=MA,
MONO_APPUI='OUI')
resharm = DYNA_VIBRA(BASE_CALCUL='PHYS',
CHAM_MATER=fieldmat,
EXCIT=_F(FONC_MULT=func2d,
VECT_ASSE=field),
INCREMENT=_F(LIST_INST=listr),
MATR_MASS=MA,
MATR_RIGI=KA,
MODELE=model,
SCHEMA_TEMPS=_F(SCHEMA='NEWMARK'),
SOLVEUR=_F(METHODE='MUMPS',
RENUM='AUTO'),
TYPE_CALCUL='TRAN')
table = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='dz',
NOM_CHAM='DEPL',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=resharm))
restran = REST_SPEC_TEMP(METHODE='PROL_ZERO',
NOM_CHAM=('DEPL', 'ACCE', 'VITE'),
RESULTAT=resharm,
TOUT_CHAM='OUI')
table1 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='dfft',
NOM_CHAM='ACCE',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=restran))
table0 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='displ',
NOM_CHAM='DEPL',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=restran))
table2 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='VELOCITY',
NOM_CHAM='VITE',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=restran))
table3 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='ACCER',
NOM_CHAM='ACCE',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=resharm))
table4 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
INTITULE='VELOCITY',
NOM_CHAM='VITE',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DZ', ),
RESULTAT=resharm))
IMPR_RESU(FORMAT='MED',
RESU=_F(RESULTAT=resharm),
UNITE=80)
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='TIME-SEC',
LEGENDE_Y='DISPLCEMENT',
MARQUEUR=0,
NOM_PARA=('INST', 'DZ'),
PILOTE='EPS',
STYLE=1,
TABLE=table,
TITRE='DISPL VS TIME',
UNITE=13)
IMPR_TABLE(FORMAT='XMGRACE',
LEGENDE_X='FREQUENCY',
LEGENDE_Y='AMPLITUDE',
MARQUEUR=0,
NOM_PARA=('FREQ', 'DZ'),
PILOTE='EPS',
STYLE=1,
TABLE=table1,
TITRE='ACCELERATION AS INPUT',
UNITE=29)
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='FREQ',
LEGENDE_Y='AMPLITUDE',
MARQUEUR=0,
NOM_PARA=('FREQ', 'DX'),
PILOTE='EPS',
STYLE=1,
TABLE=table0,
TITRE='DISPLACEMENT AS INPUT',
UNITE=12)
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='FREQ',
LEGENDE_Y='AMPLITUDE',
MARQUEUR=0,
NOM_PARA=('FREQ', 'DZ'),
PILOTE='EPS',
STYLE=1,
TABLE=table2,
TITRE='VELOCITY AS INPUT',
UNITE=10)
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='TIME SEC',
LEGENDE_Y='ACCELERATION -MM/SEC2',
MARQUEUR=0,
NOM_PARA=('INST', 'DZ'),
PILOTE='EPS',
STYLE=1,
TABLE=table3,
TITRE='ACCELERATION VS TIME',
UNITE=11)
IMPR_TABLE(FORMAT='XMGRACE',
IMPR_FONCTION='OUI',
LEGENDE_X='TIME-SEC',
LEGENDE_Y='VELOCITY MM/SEC',
MARQUEUR=0,
NOM_PARA=('INST', 'DZ'),
PILOTE='EPS',
STYLE=1,
TABLE=table4,
TITRE='TIME VS VELOCITY',
UNITE=14)
FIN()
Offline
Hi sameer,
Thank you for your code.
It is so kind of you.
I found it more convenient to convert the acce to FORCE_NODALE for Aster.
It yield the same FRF.
Thank you.
Warmest Regards,
cwf007.
Offline
Hi, cwf007! I'm not good specialist in frequency response in code_aster, but on this youtube channel got helpful information for this type analysis in Code_Aster.
youtube.com/c/DigvijayPatankar/videos
Offline
Hi Statist,
Yes you are right. The link is very helpful.
It gives the idea on how to setup harmonic response (DYNA_VIBRA + REST_GENE_PHYS) from scratch.
Thank you!
cwf007.
Offline
You are welcome!
Offline