در سابروتین نویسی همواره ورودی ها به نرم افزار از طرف آباکوس داده می شود. ورودی های مهمی که در شبیه سازی حرکت جوش به کار می رود مختصات المان ها است. می توانیم با تعریف یک محیط با شعاعی به اندازه قوس جوش، المان هایی که در این بازه قرار دارند مقدار شار حرارتی آنها را برابر مقداری غیرصفر و بقیه المان ها که در این محیط قرار ندارند، شار حرارتی آنها را برابر صفر قرار داد. برای این منظور از دستور شرطی IF استفاده می شود. همچنین ورودی مهم دیگری که جهت حرکت جوش به کار می رود پارامتر زمان است. آباکوس این ورودی را در پارامتر TIME می دهد. جهت تغییر مکان محیط می توان از پارامتر زمان و همچنین پارامتر سرعت حرکت جوش که توسط کاربر در پارامتر V تعیین می شود، استفاده کرد.
کد زیر بدون ایراد بوده و می توانید به راحتی در شبیه سازی خودتان به کار ببرید.
SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,
1 JLTYP,TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION FLUX(2), TIME(2), COORDS(3)
CHARACTER*80 SNAME
Q=4000000.0 !Surface flux (W/m^2)
V=0.0027d0 ! Weld speed m/s
Wdia=0.025 !Weld diameter
!LASER BEAM VELOCITY [mm/s]
X0=0.0 !STARTING COORDINATE OF THE LASER BEAM
Y0=TIME(1)*V !STARTING COORDINATE OF THE LASER BEAM
Z0=0.030 !STARTING COORDINATE OF THE LASER BEAM
X=COORDS(1)
Y=COORDS(2)
Z=COORDS(3)
xp=X0 - X
yp=Y0 - y
DD=sqrt(xp**2 + yp**2)
IF(DD.LT.Wdia) THEN
FLUX(1)=Q*exp(-(DD/Wdia)**2)
ELSE
FLUX(1)=0
END IF
RETURN
END
برچسب: سابروتین,
نویسنده: سجاد مهدوی