Professional Documents
Culture Documents
Abaqus/Explicit Abaqus/Standard
Abaqus/Explicit Abaqus/Standard
مقدمه
در مواردی که تعریف ویژگیهای مدل وابس ته ب ه ح ل مس ئله
است ،میتوان از زیربرنامههای آباکوس اس تفاده ک رد .از آنج ایی
که زیربرنامهه ا در آب اکوس توس ط حلگره ا فراخ وانی میش وند،
بنابراین زیربرنامهها با توجه به حلگری که آنها را فراخوانی میکند
به دو دسته اصلی تقسیم میشوند .دسته اول زیربرنامهها توس ط
حلگ ر ABAQUS/EXPLICITو دس ته دوم توس ط حلگ ر
ABAQUS/STANDARDمورد اس تفاده ق رار میگیرن د .ب ا توج ه ب ه
اینکه زیربرنامهها به زب ان فرت رن نوش ته میش وند ،در این بخش
ابتدا به معرفی زبان فرترن پرداخته خواهد شد .سپس با بررسی
نکات عمومی زیربرنام هه ا ،ب ه مع رفی چن د زیربرنام ه خ واهیم
پرداخت.
برنامه نویسی فرترن
در این بخش دستورات مهم زبان برنامهنویسی فرت رن ب رای
زیربرنامهنویسی در آباکوس بی ان خواه د ش د .این بخش ش امل
موارد زیر است:
متغیرهای عددی و فرمانهای تعیین خصوصیت آنها .1
فرامین کنترل برنامه .2
آشنایی و 314
طرز کار با نرم افزار ABAQUS
……
END DO
در صورتی ک ه بخ واهیم ی ک حلق ه در ص ورت برق رار ب ودن
شرطی اجرا گردد ،دستور DO WHILEمفید خواهد بود .س اختار
این دستور عبارت است از:
)عبارت منطقی( DO WHILE
……
……
END DO
دس تور exitب رای خ ارج ش دن از ی ک حلق ه ،ب دون ارض ای
شرایط حلقه ،بکار میرود.
:IF
ساختار کلی دستور شرطی IFبصورات زیر است:
) THENعبارت منطقی( IF
……
……
) THENعبارت منطقی( ELSE IF
……
…....
ELSE
……
……
END IF
باید دقت شود که از ش رط اتم ام برنام ه ک ه ب ا ENDنش ان
داده میشود در دستورات فوق استفاده نگردد.
خروجی
در ب رخی م وارد الزم اس ت ک ه ب ه منظ ور کن ترل ص حت
زیربرنامه آباکوس ،برخی اطالعات در فایلی ذخ یره ش ود .ب رای
این منظور از دستور writeو printمیتوان استفاده کرد .فرم ساده
و کاربردی دستور printبه صورت زیر است:
… ,متغیر, 1متغیرPrint *, 2
زیر برنامه نویسی در ABAQUS
319
البته بهجای متغیر میتوان عدد و یا رشته نیز جایگزین کرد .در
آباکوس حاصل دس تور ف وق در ی ک فای ل ب ا ن ام (log.)Job name
ذخیره میشود .از دستور writeنیز میتوان برای نوش تن اطالع ات
در یک فایل خارجی استفاده کرد.
برنامه های فرعی در فرترن
در بسیاری از موارد الزم است برای جلوگیری از بک ار ب ردن
دستورات تکراری ،از برنامههای فرعی استفاده شود .برنامهه ای
فرعی در فرترن به سه دسته تقسیم میشوند:
.1برنام هه ای ف رعی ی ک جمل های ،تعری ف این برنام هه ای
فرعی بهصورت زیر است:
عبارت منطقی= (،...ورودی،2ورودی )1نام تابع
مثال:
SUM(A,B,C)=A+B+C
…
…
)S=SUM(10,4,6
END
مثال:
)REAL FUNCTION SUM( A,B
SUM= A+B+C
END
با بکار بردن نام توابع در داخل برنام ه اص لی میت وان آنه ا را
فراخوانی کرد.
.3زیر برنامهه ا مانن د تواب ع برنام هه ایی مس تقل از برنام ه
اص لی هس تند .در ن ام زیربرنام هه ا ب رخالف تواب ع هیچ
مقداری ذخیره نمی شود .فرم کلی زیر برنامه ها بهصورت
زیر است:
)SUBROUTINE 'NAME' ( VARIABLES
body
END
که منظور از ، NAMEنام زیربرنامه است .زیربرنامهها در
برنامه اصلی از طریق دستور زیر فراخوانی میشوند:
)CALL 'NAME' ( variables
هم در توابع و هم در زیربرنامه ها میتوان در هر ج ای برنام ه
با استفاده از دستور RETURNبه برنامه اصلی بازگشت.
تابع )Aint(variable
قس مت ص حیح متغ یر اعش اری را ب هص ورت ی ک متغ یر
اعشاری میدهد.
تابع )(REAL
مقدار متغیر را به صورت اعشاری میدهد.
تابع )nInt(variable
متغیر اعشاری را بهصورت گرد ک رده و بص ورت ی ک متغ یر
صحیح میدهد.
)Anint(variable
متغیر اعشاری را بهصورت گرد کرده و بهصورت ی ک متغ یر
اعشاری میدهد.
تابع)(Matmul
ضرب دو ماتریس و یا بردار انجام میدهد.
تابع )(Dot_product
این تابع ضرب داخلی دو بردار را محاسبه میکند.
تابع خارج قسمت )(Mod
Modul: Mesh → Tools → set → Manager → create
زیر برنامه نویسی در ABAQUS
331
Set-1, 1, 3
در خ ط اول این دس تور ،بع د از ، TYPEمیت وان کلم ات
VELOCITY ، DISPLACEMENTو یا ACCELERATIONرا بکار برد که
معرفی کننده س رعت ،جابج ایی و ش تاب اس ت .ب ه این ت رتیب
برای Abaqusمشخص خواهد شد که چه پارامتری را از زیر برنامه
VDISPفراخوانی کند .در خط دوم ابتدا شماره گره ()Node number
و یا برچسبی ( )node set labelکه به یک دسته گره زده شده است
را مشخص میکنیم .در این مثال Set-1،نام برچسبی اس ت ک ه ب ه
تمام گرههای مدل زدهایم .بعد از node set labelو ی ا Node number
الزم است که اولین درجه آزادی و آخرین درجه آزادی را مشخص
کنیم .در صورتی که مسئله 2بعدی باش د ،تعری ف غل ط درج ات
آزادی میتوان د ب دون هیچ گون ه هش داری از ط رف ن رم اف زار،
مشکالت پیش بینی نشدهای را ایجاد کن د .در نه ایت ن یز میت وان
مقدار درج ه آزادی را تعری ف ک رد ک ه در هنگ ام فراخ وانی زی ر
برنامه VDISPتوسط ،Abaqusاصالح خواهد شد.
در انتها ،مجددا ً از طریق مسیر :
Modul: Job → Job → create
1
که در آن y 0x, 0مکان مش عل a ،ش عاع پرت و ل یزر e ،ب ازده
انتقال حرارت و Pقدرت پرتو لیزر است .در صورتی ک ه مش عل
با سرعت Vبر روی محور yحرکت کند ،خواهیم داشت:
) x 0 (t )=x 0 (0 ) , y 0 (t )=V ×t− y 0 (0
2
در این بخش به بررسی اعمال شار حرارتی بر روی یک ورق
توسط زیربرنامه DFLUXپرداخت ه خواه د ش د .ش بیهس ازی این
فرآیند شامل دو قسمت اس ت .در قس مت اول ب ا نح وه آم اده-
سازی زیربرنامه آشنا خواهید شد و در قسمت دوم به مدلس ازی
ورق و اعمال شار حرارتی در واسط گرافیکی خواهیم پرداخت.
DFLUX زیربرنامه
نمون ۀ زیربرنام ه را از قس مت User subroutine interfaceک پی
کرده و در ویرایشگر فرترن قرار دهید .در خط اول قبل از کلم ۀ
، Subroutineشش ب ار spaceبزنی د ت ا اولین ح رف در مک ان هفتم
SDROOC
را قرار گیرد .سپس در خط شش م کام ای بع د از ) (3
پاک کنید .برنامه زیر بدست خواهد آمد:
آشنایی و 334
طرز کار با نرم افزار ABAQUS
)FLUX(1)=(2*eta*w*exp(-2*h/a**2))/(3.14d0*a**2
FLUX(2)=0.d0
RETURN
END
انتخاب سطح فوقانی قسمت وسط (شماره )1 → Done →
Distribution: User-Defined; Magnitude: 1
زیر برنامه نویسی در ABAQUS
343
) ∂ F(U
F(U 0 )+ |U=U ΔU=0
∂U 0
-2
) ∂ F(U −1
( or ΔU=− ) |U=U ) F (U 0
∂U 0
، U =Uادامه
0 روند باال تا رسیدن به نتیجه مطلوب ،با فرض
خواهد داشت .به طور خالصه میتون روند گفته شده را بهصورت
زیر نوشت:
1− U =U 0
) ∂ F (U −1
( 2− ΔU =− ) |U=U ) F (U 0
∂U 0
) (∂F U
− |
حل دینامیکی غیر صریح(ضمنی): مثال :مقادیر ) F (U 0و ∂U U=U 0
در حالت کلی ،معادله تعادل بهصورت زیر است:
nm m n n
M Ü +I −P =0 or M Ü +I −P=0 -6
نش ان دهن ده نیروه ای داخلی اس ت و براب ر I ک ه در آن
است با:
I=∫ BT σ d Ω -7
Ω0
ح ذف ش ده اس ت زی را در UEL
L| t+tΔ
در رابطه 14عب ارت
نیازی به ارضاء شرایط مرزی اساسی نیست.
) (∂F U
− |
باید ب ه این نکت ه توج ه ش ود ک ه برای محاسبه ∂U t+tΔ
U | t+tΔهستند .بنابراین:
| ¨U
G | t+tΔو t+tΔتوابعی از
∂F ̈d U ̇∂ G d U ∂G -15
− =M −(1+α) |t+ Δt −(1+α ) |t+ Δt
∂U dU ̇∂ U dU ∂U
زیر برنامه نویسی در ABAQUS
349
¨ dU
Udبرابر است با: با توجه به معادله 11
̈d U 1 -16
= 2
dU βΔt
˙ dU
Ud به همین ترتیب ب ا توج ه ب ه مع ادالت 11و 12مق دار
برابر است با:
d U̇ γ -17
=
dU βΔt
G در صورتی که از ف رم معادل ه 9اس تفاده ش ود ،مق دار
برابر است با :
G=P−C U̇−KU -18
بنابراین :
∂G
− =K
∂U
∂G
-19
− =C
̇∂ U
Cم اتریس اس تهالک سیس تم م اتریس س ختی و
که K
است.
بطور خالصه در روش دینامی ک غ یر ص ریح (ض منی) مق ادیر
) (∂F U
− |
برابر است با: ) F (U 0و ∂U U=U 0
F=−M Ü|t+Δt +(1+α )G|t +Δt −G|t
∂F 1 ∂G γ ∂G -20
− =M 2 −(1+α ) |t +Δt −(1+α ) |t+ Δt
∂U βΔt ̇∂ U βΔt ∂U
آشنایی و 350
طرز کار با نرم افزار ABAQUS
1
-American Standard Code for Information Interchange
زیر برنامه نویسی در ABAQUS
351
⋮
*Instance, name=Part-1-1, part=Part-1
*Node
1, 0., -2.
2, 4., -2.
3, 8., -2.
4, 0., 0.
5, 4., 0. -1مش خص ک ردن
6, 8., 0. مکان نودها
7, 0., 2.
8, 4., 2.
9, 8., 2.
*Element, type=CPS4
1, 1, 2, 5, 4
2, 2, 3, 6, 5 -2مش خص ک ردن الم انه ا و نح وه
3, 4, 5, 8, 7 ارتباط بین نودها در المان
4, 5, 6, 9, 8
⋮
آشنایی و 352
ABAQUS طرز کار با نرم افزار
** MATERIALS
*Material, name=steel
*Density مش خص ک ردن خ واص-3
7800., ماده
*Elastic
2e+11, 0.3
** BOUNDARY CONDITIONS
**Name:BC-1Type:Displacement/Rotation خص مش-4
*Boundary ردن ک
_PickedSet5, 1, 1 بارگذاری(شرط
_PickedSet5, 2, 2
)مرزی اساسی
** STEP: Step-1
*Step, name=Step-1
*Static مشخص کردن نوع حل-5
1., 1., 1e-05, 1.
** LOADS
** Name: Load-1 Type: Pressure مش خص ک ردن-6
*Dsload بارگذاری(شرط مرزی
_PickedSurf4, P, -1000.
)طبیعی
⋮
*End Step
e
) ∂F (U
− |
:ب ه ط ور پیش ف رض عدم تقارن ماتریس ∂U U=U 0 -6
e
) ∂F (U
− |
که در زیر برنامه UELبا AMATRX ماتریس ∂U U=U 0
نشان داده میشود ،متقارن فرض میشود ،عدم تق ارن این
ماتریس باید مشخص گردد.
تعیین درجات آزادی گرهه ا در الم ان :ه ر الم ان در فای ل -7
¿⋅pniتوسط تعدادی گره تعریف میشود .به عنوان مثال
3, 4, 5, 8, 7
نش ان میده د ک ه الم ان 3از گ رهه ای 4و 5و 8و7
تشکیل یافته است .در این مثال گ ره ،4گ ره اول الم ان،
گره 5گره دوم المان ،گره 8گ ره س وم الم ان و گ ره 7
گره چهارم المان است .عالوه بر شماره گرههای الم ان و
چیدمان آن ،درجه آزادی هر گره ن یز بای د مش خص ش ود.
برای این منظور باید از قرارداد آباکوس در شماره گ ذاری
درجات آزادی استفاده گردد .جدول 1نحوه شماره گذاری
درجات آزادی را نشان میدهد .با توج ه ب ه اینک ه آب اکوس
همگ رایی ح ل را ب ر اس اس این ق رارداد کن ترل میکن د،
بنابراین رعایت این قرارداد الزامی است.
تعیین درجات آزادی گ رهه ا میتوان د ب ه روشه ای مختلفی
انجام گیرد .روش اس تاندارد و توص یه ش ده آب اکوس ب ه این
ص ورت اس ت ک ه ابت دا درج ات آزادی مش ترک بین گ رهه ا
تعریف ش ود و س پس درج ات آزادی گ ره ه ایی ک ه اس تثناء
است بیان شود.
ه آزادی
r-displacement x-displacement 1
z-displacement y-displacement 2
z-displacement 3
Rotation about the x-axis, in 4
radians
Rotation about the z- Rotation about the y-axis, in 5
axis (for axisymmetric radians
elements with twist), in
radians
Rotation in the r–z Rotation about the z-axis, in 6
plane (for axisymmetric radians
shells), in radians
Warping amplitude (for open- 7
section beam elements)
Pore pressure (or hydrostatic 8
fluid pressure)
Electric potential 9
Not used 10
Temperature (or normalized 11
concentration in mass diffusion
analysis)
Second temperature (for shells or 12
beams)
Third temperature (for shells 13
or beams)
.Etc 14
آشنایی و 356
طرز کار با نرم افزار ABAQUS
2و14و 15ب وده و درج ات آزادی گ رهه ای 5ت ا 8فق ط 1و 2
است .درجات آزادی 1و 2معرف جابجایی است و درجات 14و
،15درجات آزادی دلخواه است.
بعد از مشخص شدن نام المان و برخی ویژگیهای آن ،باید -2
المان های مربوطه مشخص شوند .برای این کار دستور زیر
نوشته میشود:
* ELEMENT, TYPE=Un, ELSET=name
Fره دوم ,
Fماره گF
Fره اول ,شF
Fماره گF
Fان ,شF
Fماره المF
شF
,...شماره گره سوم
در دستورات قب ل ،تع داد خ واص م اده م ورد نی از الم ان -3
مش خص گردی د .ب ا اس تفاده از دس تور زیرخ واص م اده
مشخص میگردد.
* UEL PROPERTY, ELSET=name
,مقدار ,1مقدار , ... ,2مقدار 8
,...مقدار 9
*Heading
.
.
.
9, 8., 2.
*Element, type=CPS4
2, 2, 3, 6, 5
3, 4, 5, 8, 7
4, 5, 6, 9, 8
LFLAGS(2)
0 Small displacement
1 large displacement
LFLAGS(3)
1 Normal implicit time increment
.ردد فگ د تعری ختی بای اتریس س م
e
2 ∂F (U )
XRTAMA = K=−
∂U
.ماتریس استهالک باید تعریف گردد
3 ∂F e (U )
XRTAMA = C=−
∂U˙
زیر برنامه نویسی در ABAQUS
363
)LFLAGS(4
)LFLAGS(5
0 Uبر اساس اصالح نیوتن
مشخص شده است.
1 Uبر اساس برونیابی مشخص
شده است.
ورودی KSTEP
ورودی KINC
در ادام ه ب ه بررس ی جزئی ات ی ک زیربرنام ه UELخ واهیم
پرداخت.
توضیح مس ئله :تحلی ل اس تاتیکی ی ک ورق مس تطیلی (تنش
ص فحهای) ب ا مق دار ک رنش کم م ورد نظ ر اس ت .بن ابراین
SGALFL
خواه د ب ود .البت ه ب ه دلی ل ) 0 SGALFL
= (2 و ) 1 ro 2
= (1
اینکه برنامه مورد نظر کلی نیست ،بنابراین عمال ً در این قس مت
از این پارامتره ا اس تفاده نخواه د ش د .در ابت دای تحلی ل
SGALFLت ک ه ب ه
اس ) 1
= (3 در ادام ه تحلی لSGALFL
و ) 4
= (3
دلیل تاثیر در تعریف AMATRXباید مورد استفاده قرار گیرن د .ب ا
توجه به معادله 4و 5تعریف مقادیر زیر مورد نظر است:
RHS=−KU|t+Δt +f |t+ Δt
AMATRX =K
3 JDLTYP(MDLOAD,*),ADLMAG(MDLOAD,*),DDLMAG(MDLOAD,*),
4 PREDEF(2,NPREDF,NNODE),LFLAGS(*),JPROPS(*)
AK=0.D0
NG=2
WEIGHT(1,1)=1.D0
WEIGHT(2,1)=1.D0
GP(1,1)=-0.57735D0
GP(2,1)=+0.57735D0
RO = PROPS(1)
EE = PROPS(2)
ANU = PROPS(3)
DO K1 = 1, NDOFEL
RHS(K1,1) = 0.
DO K2 = 1, NDOFEL
AMATRX(K2,K1) = 0.
END DO
END DO
DE(1,1)=EE/(1.0-ANU**2)
DE(1,2)=EE*ANU/(1.0-ANU**2)
DE(2,1)=EE*ANU/(1.0-ANU**2)
DE(2,2)=EE/(1.0-ANU**2)
DE(3,3)=EE/(1.0+ANU)/2.0
DO II=1,NG
X=GP(II,1)
DO JJ=1,NG
Y=GP(JJ,1)
SHAP=0.D0
SHAP(1,1)=(1.-X)*(1.-Y)/4.
SHAP(2,2)=(1.-X)*(1.-Y)/4.
SHAP(1,3)=(1.+X)*(1.-Y)/4.
SHAP(2,4)=(1.+X)*(1.-Y)/4.
SHAP(1,5)=(1.+X)*(1.+Y)/4.
SHAP(2,6)=(1.+X)*(1.+Y)/4.
SHAP(1,7)=(1.-X)*(1.+Y)/4.
SHAP(2,8)=(1.-X)*(1.+Y)/4.
DSHAP0(1,1)=(-1.)*(1.-Y)/4.
DSHAP0(1,2)=( 1.)*(1.-Y)/4.
DSHAP0(1,3)=( 1.)*(1.+Y)/4.
DSHAP0(1,4)=(-1.)*(1.+Y)/4.
DSHAP0(2,1)=(1.-X)*(-1.)/4.
DSHAP0(2,2)=(1.+X)*(-1.)/4.
DSHAP0(2,3)=(1.+X)*( 1.)/4.
ABAQUS زیر برنامه نویسی در
367
DSHAP0(2,4)=(1.-X)*( 1.)/4.
AJACOBIAN=MATMUL(DSHAP0,TRANSPOSE(COORDS))
DETJA=(AJACOBIAN(1,1)*AJACOBIAN(2,2)-AJACOBIAN(1,2)*AJACOBIAN(2,1))
AINVJ(1,1)= AJACOBIAN(2,2)/DETJA
AINVJ(2,2)= AJACOBIAN(1,1)/DETJA
AINVJ(1,2)=-AJACOBIAN(1,2)/DETJA
AINVJ(2,1)=-AJACOBIAN(2,1)/DETJA
DSHAP1=MATMUL(AINVJ,DSHAP0)
AMASS=MATMUL(TRANSPOSE(SHAP),SHAP)
AMASS=AMASS*RO
DO I=1,4
B(1,(I-1)*2+1)=DSHAP1(1,I)
B(2,(I-1)*2+2)=DSHAP1(2,I)
B(3,(I-1)*2+1)=DSHAP1(2,I)
B(3,(I-1)*2+2)=DSHAP1(1,I)
END DO
AA=MATMUL(TRANSPOSE(B),DE)
CC=MATMUL(AA,B)
AK=AK+CC*WEIGHT(II,1)*WEIGHT(JJ,1)*DETJA
END DO
END DO
IF (LFLAGS(3).EQ.4) THEN
AMATRX =AMASS
END IF
IF (LFLAGS(3).EQ.1) THEN
C NORMAL INCREMENTATION
IF (LFLAGS(1).EQ.1 .OR. LFLAGS(1).EQ.2) THEN
C *STATIC
AMATRX =AK
DO I=1,8
DO J=1,8
RHS(I,1)=RHS(I,1)-AMATRX(I,J)*U(J)
END DO
END DO
DO I=1,8
DO J=1,8
ENERGY(2)=ENERGY(2)+0.5*U(I)*AMATRX(I,J)*U(J)
END DO
END DO
END IF
END IF
RETURN
END
VUAMPنوشتن زیربرنامه
ب ه قس مت Abaqus User Subroutines Reference Manualدر help
نرم افزار مراجعه کرده و در بخش مربوط به ،VUAMPزیربرنامه
نمون ه را از قس مت User subroutine interfaceک پی ک رده و در
زیر برنامه نویسی در ABAQUS
373