

Hi. I have a question. I have constructed a cylinder and I apply a load on the curvature surface. I have to simulate a situation where by the laser is heating up the cylinder while it is rotating. I manage to rotate the cylinder by constraining one of the face at a reference point.
However, the computational time is very long and I am thinking if there is other method to reduce the time taken to complete the simulation.
Is it possible to move the laser load instead of the cylinder? Will that help?
In one simulation, the cylinder remain still and the laser load is moving along the length of the cylinder and that takes a very short time. So, I am hoping this works the same if only the load is moving.
If yes, how do I do that? below is my dflux subroutine.
SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
C A = Absorbtivity
C P = Incident Laser Power
C R = Laser Spot Size
C v = Scan Speed
V=0.03333
P=250.0
R=0.0031
A=0.34
PART1=2*A*P*1/(R**2)
x = COORDS(1)
y = COORDS(2)
z = COORDS(3)
C FLUX(1) = laser power intensity distribution
FLUX(1)=PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
FLUX(2)=0.0
RETURN
END
p/s: this subroutine is for the laser moving along the length of the cylinder


If you're only interested in the heat transfer problem, then moving the
heat flux will allow you to eliminate the structural degreesoffreedom,
which should result in a shorter run time.
If the axis of the cylinder is parallel to the Zaxis, then the initial
angular position A0 of a point is ATAN2(COORDS(2),COORDS(1)). If the
cylinder is rotating at a constant speed OMEGA, then the current angular
position AC is:
AC = A0 + OMEGA*TIME(2)
If the laser is located at AL, then:
IF (ABS(ALAC) .LE. TOLERANCE) THEN
FLUX(1) = FLUX_VALUE
ELSE
FLUX(1) = 0.0D+00
ENDIF
where TOLERANCE is some angular position tolerance, and FLUX_VALUE is
the nonzero flux you want applied.
Regards,
Dave

Dave Lindeman
Lead Research Specialist
3M Company
3M Center 2353F08
St. Paul, MN 55144
6517336383
On 7/28/2010 7:41 AM, wtwc_yksdr wrote:
>
>
> Hi. I have a question. I have constructed a cylinder and I apply a load
> on the curvature surface. I have to simulate a situation where by the
> laser is heating up the cylinder while it is rotating. I manage to
> rotate the cylinder by constraining one of the face at a reference point.
>
> However, the computational time is very long and I am thinking if there
> is other method to reduce the time taken to complete the simulation.
>
> Is it possible to move the laser load instead of the cylinder? Will that
> help?
>
> In one simulation, the cylinder remain still and the laser load is
> moving along the length of the cylinder and that takes a very short
> time. So, I am hoping this works the same if only the load is moving.
>
> If yes, how do I do that? below is my dflux subroutine.
>
> SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
> 1 TEMP,PRESS,SNAME)
> C
> INCLUDE 'ABA_PARAM.INC'
> C
> DIMENSION COORDS(3),FLUX(2),TIME(2)
> CHARACTER*80 SNAME
>
> C A = Absorbtivity
> C P = Incident Laser Power
> C R = Laser Spot Size
> C v = Scan Speed
>
> V=0.03333
> P=250.0
> R=0.0031
> A=0.34
> PART1=2*A*P*1/(R**2)
>
> x = COORDS(1)
> y = COORDS(2)
> z = COORDS(3)
>
> C FLUX(1) = laser power intensity distribution
>
> FLUX(1)=PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
> FLUX(2)=0.0
>
> RETURN
> END
>
> p/s: this subroutine is for the laser moving along the length of the
> cylinder
>
>

Community email addresses:
Post message: [hidden email]
Subscribe: [hidden email]
Unsubscribe: [hidden email]
List owner: [hidden email]
Shortcut URL to this page:
http://groups.yahoo.com/group/AbaqusYahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Abaqus/<*> Your email settings:
Individual Email  Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/Abaqus/join (Yahoo! ID required)
<*> To change settings via email:
[hidden email]
[hidden email]
<*> To unsubscribe from this group, send an email to:
[hidden email]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/


I still can't figure out how to make the laser beam move around the cylinder
this is my fortran code
SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
C A = Absorbtivity
C P = Incident Laser Power
C R = Laser Spot Size
C v = Scan Speed
P=250.0
R=0.0031
A=0.34
PART1=2*A*P*1/(R**2)
x = COORDS(1)
y = COORDS(2)
z = COORDS(3)
C A0 = initial angular position
A0 = ATAN2(y,x)
C OMEGA = Constant angular speed
OMEGA = 52
AC = A0 + OMEGA*TIME(2)
C Tolerance = angular position tolerence
TOLERANCE = 0
C FLUX_VALUE = nonzero flux
FLUX_VALUE = PART1*EXP(2*((z0.1)**2+x**2)/(R**2))
FLUX(2)=0.0
IF (ABS(ALAC) .LE. TOLERANCE) THEN
FLUX(1) = FLUX_VALUE
ELSE
FLUX(1) = 0.0D+00
ENDIF
RETURN
END
Is the constant angular speed in radians/sec?
I don't understand how the if and else function work.
If i were to move the laser along the length of cylinder, i apply this:
FLUX(1) = PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
by setting a constant velocity for example:
V = 0.3333
but for this AC, i do not know how to apply into the FLUX(1) or I don't need to do that?
How will abaqus recognise AC as a constant angular velocity?
Thanks.
 In [hidden email], Dave Lindeman <ddlindeman@...> wrote:
>
> If you're only interested in the heat transfer problem, then moving the
> heat flux will allow you to eliminate the structural degreesoffreedom,
> which should result in a shorter run time.
>
> If the axis of the cylinder is parallel to the Zaxis, then the initial
> angular position A0 of a point is ATAN2(COORDS(2),COORDS(1)). If the
> cylinder is rotating at a constant speed OMEGA, then the current angular
> position AC is:
>
> AC = A0 + OMEGA*TIME(2)
>
> If the laser is located at AL, then:
>
> IF (ABS(ALAC) .LE. TOLERANCE) THEN
> FLUX(1) = FLUX_VALUE
> ELSE
> FLUX(1) = 0.0D+00
> ENDIF
>
> where TOLERANCE is some angular position tolerance, and FLUX_VALUE is
> the nonzero flux you want applied.
>
> Regards,
>
> Dave
>
>
>
> 
> Dave Lindeman
> Lead Research Specialist
> 3M Company
> 3M Center 2353F08
> St. Paul, MN 55144
> 6517336383
>
> On 7/28/2010 7:41 AM, wtwc_yksdr wrote:
> >
> >
> > Hi. I have a question. I have constructed a cylinder and I apply a load
> > on the curvature surface. I have to simulate a situation where by the
> > laser is heating up the cylinder while it is rotating. I manage to
> > rotate the cylinder by constraining one of the face at a reference point.
> >
> > However, the computational time is very long and I am thinking if there
> > is other method to reduce the time taken to complete the simulation.
> >
> > Is it possible to move the laser load instead of the cylinder? Will that
> > help?
> >
> > In one simulation, the cylinder remain still and the laser load is
> > moving along the length of the cylinder and that takes a very short
> > time. So, I am hoping this works the same if only the load is moving.
> >
> > If yes, how do I do that? below is my dflux subroutine.
> >
> > SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
> > 1 TEMP,PRESS,SNAME)
> > C
> > INCLUDE 'ABA_PARAM.INC'
> > C
> > DIMENSION COORDS(3),FLUX(2),TIME(2)
> > CHARACTER*80 SNAME
> >
> > C A = Absorbtivity
> > C P = Incident Laser Power
> > C R = Laser Spot Size
> > C v = Scan Speed
> >
> > V=0.03333
> > P=250.0
> > R=0.0031
> > A=0.34
> > PART1=2*A*P*1/(R**2)
> >
> > x = COORDS(1)
> > y = COORDS(2)
> > z = COORDS(3)
> >
> > C FLUX(1) = laser power intensity distribution
> >
> > FLUX(1)=PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
> > FLUX(2)=0.0
> >
> > RETURN
> > END
> >
> > p/s: this subroutine is for the laser moving along the length of the
> > cylinder
> >
> >
>


Hi, wtwc_yksdr
I use the subrutine in a plane surface;
X=(COORDS(1))
Y=COORDS(2)
DESP=0.012
YDESP=YDESP
IF ((((XV*TME(1))**2.0+YDESP**2.0)**0.5)<= R) THEN
FLUX(1)= (formula)
END IF

DESP=advance in diferent steps in direction Y
R=radius
V=constante speed
Abaqus call the subrutine for every node in the surface with the flux, and
it do it one by one, giving to the subrutine the coordenates of the node.
The "if" control wich nodes are inside the radius to put the load over them.
My advance is just in one direction, the result is a modulus that should be
lower that R, and it advance in Xdirection.
You should do the same, with the if you tell abaqus where to apply the flux,
inside the radius of the spot.
You choose as surface just the external surface of the cilinder, and your
coordinates are in the center of the cylinder.
desp= distance between the place your center of coordinates and the place
along Zdirection where you want the laser.
z=length of the cylinder
alfa=atan(x,y)
zdesp=zdesp
if ((alfaomega*time)^2+zdesp^2)^0.5<R)
FLUX(1)=.....
end if
This is not exactly FORTRAN is just the idea of how i do it.
Also i didnt add nothing about initial position in X, Y. If you want you
have to add and initial displacement, you have to do something to "alfa"
like i did to "z".
FLUX is a value, a number, no coordinates on it, is Jules/second (for me).
It is a value for each node in the surface, because "each node call the
subroutine" and the subroutine give back a value of the HEAT FLUX for this
node.
I hope you understand my english and it helps you. Ask again with any doubt
:)
Edgar
>
>
[Nontext portions of this message have been removed]


That doesn't work for me.
This is my new code that i used.
SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
C A = Absorbtivity
C P = Incident Laser Power
C R = Laser Spot Size
C v = Scan Speed
V=0.0333
P=250.0
R=0.0031
A=0.34
PART1=2*A*P*1/(R**2)
x = COORDS(1)
y = COORDS(2)
z = COORDS(3)
C A0 = initial angular position
A0 = ATAN2(y,x)
C OMEGA = Constant angular speed
OMEGA = 52
AC = 0.027*SIN(A0 + OMEGA*TIME(2))
FLUX(1) = PART1*EXP(2*((z0.1V*TIME(2))**2+(x+AC)**2)/(R**2))
FLUX(2)=0.0
RETURN
END
My cylinder is along zaxis. And i try to configure the laser to move along x axis at the same time as well put inputing AC into the FLUX(1) (I am trying to simulate the laser to move in a spiral direction) It does rotate but it generate 2 heat at the same time. They are both 180 degree apart. I am wondering what went wrong.
And also, is there anything wrong with this code? How do I write this code if I only want one heat flux at a time?
 In [hidden email], Edgar Blanco <namcob@...> wrote:
>
> Hi, wtwc_yksdr
>
> I use the subrutine in a plane surface;
>
> X=(COORDS(1))
> Y=COORDS(2)
> DESP=0.012
>
> YDESP=YDESP
> IF ((((XV*TME(1))**2.0+YDESP**2.0)**0.5)<= R) THEN
> FLUX(1)= (formula)
> END IF
>
> 
> DESP=advance in diferent steps in direction Y
> R=radius
> V=constante speed
> Abaqus call the subrutine for every node in the surface with the flux, and
> it do it one by one, giving to the subrutine the coordenates of the node.
>
> The "if" control wich nodes are inside the radius to put the load over them.
> My advance is just in one direction, the result is a modulus that should be
> lower that R, and it advance in Xdirection.
>
> You should do the same, with the if you tell abaqus where to apply the flux,
> inside the radius of the spot.
>
> You choose as surface just the external surface of the cilinder, and your
> coordinates are in the center of the cylinder.
>
> desp= distance between the place your center of coordinates and the place
> along Zdirection where you want the laser.
> z=length of the cylinder
> alfa=atan(x,y)
>
> zdesp=zdesp
> if ((alfaomega*time)^2+zdesp^2)^0.5<R)
> FLUX(1)=.....
> end if
>
>
> This is not exactly FORTRAN is just the idea of how i do it.
> Also i didnt add nothing about initial position in X, Y. If you want you
> have to add and initial displacement, you have to do something to "alfa"
> like i did to "z".
>
> FLUX is a value, a number, no coordinates on it, is Jules/second (for me).
> It is a value for each node in the surface, because "each node call the
> subroutine" and the subroutine give back a value of the HEAT FLUX for this
> node.
>
> I hope you understand my english and it helps you. Ask again with any doubt
> :)
>
> Edgar
>
> >
> >
>
>
> [Nontext portions of this message have been removed]
>


Hi,
I am not sure, but i think that A0 is not initial angular position, cause
you use it all the time. You call x and y the cordinates of a node, so A0
is the angel of a node (x,y) that is "calling" the subroutine at this time.
Also the angle that gives you back atan2 is the "same" just with diferent
sign , one positive another negative, so both will appear with flux, no?
I think that you should control it with an IF, with a condition that made it
take just one of it, the one you want.Something like;
IF ((TME(2).LE.2).AND.(A0.LE.0) THEN
FLUX(1)=....
END
Probably you will need many conditions...
Another solution (the one i like) is to do it in diferent steps each you
will activate the load in part of the surface, the one you need, and in the
next other surface, with this it will only be applied in the part you want
so it will not appear two sources.
I have not time to test my ideas or your ideas, i just write you what i
think. But i use subroutines for a for lines in a bended plate and i use one
step for each line, and diferent conditions in the suroutine for each step.
I hope you understand my english and it works.
Edgar
[Nontext portions of this message have been removed]


Sorry , i mistake....
Forget what i said about the surfaces, it will not work in this way. And i
think with and IF controling the time you can not control it too,so my idea
is to do something like this.
alfa=atan2(x,y)
r=radius of the laser beam
if( ( ( alfa (omega*time(2)) )**2+ (z0.1time(2)*V) **2)**0.5.LE.r )
FLUX(1)=...
end if
As i understood alfa is the angle of the node abqus is caculating the flux.
Omega is the angular speed of the laser.
The zdim i copy yours.
I think that with this it will only appear one point. I took my idea because
a spiral is a triangle around a cylinder. The base of the triangle is
(Alfa*radius of the cylinder) and high is Z.
I think is last time i answer you because i give more dark that light to the
topic.
Good luck ;)
Edgar
[Nontext portions of this message have been removed]


Yes, the speed would be in rad/sec.
ABAQUS knows nothing about the angular velocity  the user subroutine
is simply turning the flux on and off as a function of the "current"
position of the nodes to simulate the rotation.
One thing I failed to mention was that in order for the position
tolerance test to work the angular position will need to be less than
2*PI. So,
PI = ACOS(1.0D+00)
AC = A0 + OMEGA*TIME(2)
10 IF (AC .GT. (2*PI)) THEN
AC = AC(2*PI)
GOTO 10
ENDIF
Regards,
Dave

Dave Lindeman
Lead Research Specialist
3M Company
3M Center 2353F08
St. Paul, MN 55144
6517336383
On 8/2/2010 7:44 AM, wtwc_yksdr wrote:
>
>
> I still can't figure out how to make the laser beam move around the cylinder
>
> this is my fortran code
>
> SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
> 1 TEMP,PRESS,SNAME)
> C
> INCLUDE 'ABA_PARAM.INC'
> C
> DIMENSION COORDS(3),FLUX(2),TIME(2)
> CHARACTER*80 SNAME
>
> C A = Absorbtivity
> C P = Incident Laser Power
> C R = Laser Spot Size
> C v = Scan Speed
>
> P=250.0
> R=0.0031
> A=0.34
> PART1=2*A*P*1/(R**2)
>
> x = COORDS(1)
> y = COORDS(2)
> z = COORDS(3)
>
> C A0 = initial angular position
>
> A0 = ATAN2(y,x)
>
> C OMEGA = Constant angular speed
> OMEGA = 52
>
> AC = A0 + OMEGA*TIME(2)
>
> C Tolerance = angular position tolerence
> TOLERANCE = 0
>
> C FLUX_VALUE = nonzero flux
>
> FLUX_VALUE = PART1*EXP(2*((z0.1)**2+x**2)/(R**2))
>
> FLUX(2)=0.0
>
> IF (ABS(ALAC) .LE. TOLERANCE) THEN
> FLUX(1) = FLUX_VALUE
> ELSE
> FLUX(1) = 0.0D+00
> ENDIF
>
> RETURN
> END
>
> Is the constant angular speed in radians/sec?
>
> I don't understand how the if and else function work.
>
> If i were to move the laser along the length of cylinder, i apply this:
>
> FLUX(1) = PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
>
> by setting a constant velocity for example:
> V = 0.3333
>
> but for this AC, i do not know how to apply into the FLUX(1) or I don't
> need to do that?
>
> How will abaqus recognise AC as a constant angular velocity?
>
> Thanks.
>
>  In [hidden email] <mailto:Abaqus%40yahoogroups.com>, Dave
> Lindeman <ddlindeman@...> wrote:
> >
> > If you're only interested in the heat transfer problem, then moving the
> > heat flux will allow you to eliminate the structural degreesoffreedom,
> > which should result in a shorter run time.
> >
> > If the axis of the cylinder is parallel to the Zaxis, then the initial
> > angular position A0 of a point is ATAN2(COORDS(2),COORDS(1)). If the
> > cylinder is rotating at a constant speed OMEGA, then the current angular
> > position AC is:
> >
> > AC = A0 + OMEGA*TIME(2)
> >
> > If the laser is located at AL, then:
> >
> > IF (ABS(ALAC) .LE. TOLERANCE) THEN
> > FLUX(1) = FLUX_VALUE
> > ELSE
> > FLUX(1) = 0.0D+00
> > ENDIF
> >
> > where TOLERANCE is some angular position tolerance, and FLUX_VALUE is
> > the nonzero flux you want applied.
> >
> > Regards,
> >
> > Dave
> >
> >
> >
> > 
> > Dave Lindeman
> > Lead Research Specialist
> > 3M Company
> > 3M Center 2353F08
> > St. Paul, MN 55144
> > 6517336383
> >
> > On 7/28/2010 7:41 AM, wtwc_yksdr wrote:
> > >
> > >
> > > Hi. I have a question. I have constructed a cylinder and I apply a load
> > > on the curvature surface. I have to simulate a situation where by the
> > > laser is heating up the cylinder while it is rotating. I manage to
> > > rotate the cylinder by constraining one of the face at a reference
> point.
> > >
> > > However, the computational time is very long and I am thinking if there
> > > is other method to reduce the time taken to complete the simulation.
> > >
> > > Is it possible to move the laser load instead of the cylinder? Will
> that
> > > help?
> > >
> > > In one simulation, the cylinder remain still and the laser load is
> > > moving along the length of the cylinder and that takes a very short
> > > time. So, I am hoping this works the same if only the load is moving.
> > >
> > > If yes, how do I do that? below is my dflux subroutine.
> > >
> > > SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
> > > 1 TEMP,PRESS,SNAME)
> > > C
> > > INCLUDE 'ABA_PARAM.INC'
> > > C
> > > DIMENSION COORDS(3),FLUX(2),TIME(2)
> > > CHARACTER*80 SNAME
> > >
> > > C A = Absorbtivity
> > > C P = Incident Laser Power
> > > C R = Laser Spot Size
> > > C v = Scan Speed
> > >
> > > V=0.03333
> > > P=250.0
> > > R=0.0031
> > > A=0.34
> > > PART1=2*A*P*1/(R**2)
> > >
> > > x = COORDS(1)
> > > y = COORDS(2)
> > > z = COORDS(3)
> > >
> > > C FLUX(1) = laser power intensity distribution
> > >
> > > FLUX(1)=PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
> > > FLUX(2)=0.0
> > >
> > > RETURN
> > > END
> > >
> > > p/s: this subroutine is for the laser moving along the length of the
> > > cylinder
> > >
> > >
> >
>
>

Community email addresses:
Post message: [hidden email]
Subscribe: [hidden email]
Unsubscribe: [hidden email]
List owner: [hidden email]
Shortcut URL to this page:
http://groups.yahoo.com/group/AbaqusYahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Abaqus/<*> Your email settings:
Individual Email  Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/Abaqus/join (Yahoo! ID required)
<*> To change settings via email:
[hidden email]
[hidden email]
<*> To unsubscribe from this group, send an email to:
[hidden email]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/


Hi. thanks.
I have redeveloped the code with my supervisor. Apparently, Fortran recognise angle as degree. this is my code
SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
C A = Absorbtivity
C P = Incident Laser Power
C R = Laser Spot Size
C v = Scan Speed
V=0.0333
P=250.0
R=0.0031
A=0.34
PART1=2*A*P*1/(R**2)
x = COORDS(1)
y = COORDS(2)
z = COORDS(3)
FLUX(1)=0.0
FLUX(2)=0.0
C A0 = initial angular position
C A0 = ATAN2(y,x)
C OMEGA = Constant angular speed, 2988 degree per second
OMEGA = 2988
*** here the positive angle is defined as the rotation of the laser beam from y axis to x axis
*** the original is (0,rc,0), rc is the radius of the cylinder
*** the angle is
angle=omega*time(2)
rc=0.027
*** the coordinates the laster spot center in xy axes
cx=rc*sin(angle)
cy=rc*cos(angle)
**** only the cylindrical surface on the laser beam side is possibly subjected to laster heating
**** the condition can be realised by the following condition
check=cx*x+cy*y
if (check.lt.0.0) go to 1000
C AC = 0.027*SIN(A0 + OMEGA*TIME(2))
AC = 0.027*SIN(OMEGA*TIME(2))
xnew=x*cos(angle)y*sin(angle)
d=sqrt(((zV*TIME(2)0.01)**2+xnew**2))
*** if the flux is negligibly small out side the laser spot zone,
*** then the following command can be applied
if (d.gt.2*R) go to 1000
C FLUX(1) = PART1*EXP(2*((z0.1V*TIME(2))**2+(x+AC)**2)/(R**2))
FLUX(1) = PART1*EXP((2*d*d)/(R**2))
1000 continue
RETURN
END
however, the problem i am facing at the moment is that there is another laser heat flux appears at 180 degree of the same spot of heat flux on the cylinder surface at the first few time steps. I can't seem to disable that. any idea wat adjustment i need to make?
 In [hidden email], Dave Lindeman <ddlindeman@...> wrote:
>
> Yes, the speed would be in rad/sec.
>
> ABAQUS knows nothing about the angular velocity  the user subroutine
> is simply turning the flux on and off as a function of the "current"
> position of the nodes to simulate the rotation.
>
> One thing I failed to mention was that in order for the position
> tolerance test to work the angular position will need to be less than
> 2*PI. So,
>
> PI = ACOS(1.0D+00)
> AC = A0 + OMEGA*TIME(2)
> 10 IF (AC .GT. (2*PI)) THEN
> AC = AC(2*PI)
> GOTO 10
> ENDIF
>
> Regards,
>
> Dave
>
>
> 
> Dave Lindeman
> Lead Research Specialist
> 3M Company
> 3M Center 2353F08
> St. Paul, MN 55144
> 6517336383
>
> On 8/2/2010 7:44 AM, wtwc_yksdr wrote:
> >
> >
> > I still can't figure out how to make the laser beam move around the cylinder
> >
> > this is my fortran code
> >
> > SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
> > 1 TEMP,PRESS,SNAME)
> > C
> > INCLUDE 'ABA_PARAM.INC'
> > C
> > DIMENSION COORDS(3),FLUX(2),TIME(2)
> > CHARACTER*80 SNAME
> >
> > C A = Absorbtivity
> > C P = Incident Laser Power
> > C R = Laser Spot Size
> > C v = Scan Speed
> >
> > P=250.0
> > R=0.0031
> > A=0.34
> > PART1=2*A*P*1/(R**2)
> >
> > x = COORDS(1)
> > y = COORDS(2)
> > z = COORDS(3)
> >
> > C A0 = initial angular position
> >
> > A0 = ATAN2(y,x)
> >
> > C OMEGA = Constant angular speed
> > OMEGA = 52
> >
> > AC = A0 + OMEGA*TIME(2)
> >
> > C Tolerance = angular position tolerence
> > TOLERANCE = 0
> >
> > C FLUX_VALUE = nonzero flux
> >
> > FLUX_VALUE = PART1*EXP(2*((z0.1)**2+x**2)/(R**2))
> >
> > FLUX(2)=0.0
> >
> > IF (ABS(ALAC) .LE. TOLERANCE) THEN
> > FLUX(1) = FLUX_VALUE
> > ELSE
> > FLUX(1) = 0.0D+00
> > ENDIF
> >
> > RETURN
> > END
> >
> > Is the constant angular speed in radians/sec?
> >
> > I don't understand how the if and else function work.
> >
> > If i were to move the laser along the length of cylinder, i apply this:
> >
> > FLUX(1) = PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
> >
> > by setting a constant velocity for example:
> > V = 0.3333
> >
> > but for this AC, i do not know how to apply into the FLUX(1) or I don't
> > need to do that?
> >
> > How will abaqus recognise AC as a constant angular velocity?
> >
> > Thanks.
> >
> >  In [hidden email] <mailto:Abaqus%40yahoogroups.com>, Dave
> > Lindeman <ddlindeman@> wrote:
> > >
> > > If you're only interested in the heat transfer problem, then moving the
> > > heat flux will allow you to eliminate the structural degreesoffreedom,
> > > which should result in a shorter run time.
> > >
> > > If the axis of the cylinder is parallel to the Zaxis, then the initial
> > > angular position A0 of a point is ATAN2(COORDS(2),COORDS(1)). If the
> > > cylinder is rotating at a constant speed OMEGA, then the current angular
> > > position AC is:
> > >
> > > AC = A0 + OMEGA*TIME(2)
> > >
> > > If the laser is located at AL, then:
> > >
> > > IF (ABS(ALAC) .LE. TOLERANCE) THEN
> > > FLUX(1) = FLUX_VALUE
> > > ELSE
> > > FLUX(1) = 0.0D+00
> > > ENDIF
> > >
> > > where TOLERANCE is some angular position tolerance, and FLUX_VALUE is
> > > the nonzero flux you want applied.
> > >
> > > Regards,
> > >
> > > Dave
> > >
> > >
> > >
> > > 
> > > Dave Lindeman
> > > Lead Research Specialist
> > > 3M Company
> > > 3M Center 2353F08
> > > St. Paul, MN 55144
> > > 6517336383
> > >
> > > On 7/28/2010 7:41 AM, wtwc_yksdr wrote:
> > > >
> > > >
> > > > Hi. I have a question. I have constructed a cylinder and I apply a load
> > > > on the curvature surface. I have to simulate a situation where by the
> > > > laser is heating up the cylinder while it is rotating. I manage to
> > > > rotate the cylinder by constraining one of the face at a reference
> > point.
> > > >
> > > > However, the computational time is very long and I am thinking if there
> > > > is other method to reduce the time taken to complete the simulation.
> > > >
> > > > Is it possible to move the laser load instead of the cylinder? Will
> > that
> > > > help?
> > > >
> > > > In one simulation, the cylinder remain still and the laser load is
> > > > moving along the length of the cylinder and that takes a very short
> > > > time. So, I am hoping this works the same if only the load is moving.
> > > >
> > > > If yes, how do I do that? below is my dflux subroutine.
> > > >
> > > > SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
> > > > 1 TEMP,PRESS,SNAME)
> > > > C
> > > > INCLUDE 'ABA_PARAM.INC'
> > > > C
> > > > DIMENSION COORDS(3),FLUX(2),TIME(2)
> > > > CHARACTER*80 SNAME
> > > >
> > > > C A = Absorbtivity
> > > > C P = Incident Laser Power
> > > > C R = Laser Spot Size
> > > > C v = Scan Speed
> > > >
> > > > V=0.03333
> > > > P=250.0
> > > > R=0.0031
> > > > A=0.34
> > > > PART1=2*A*P*1/(R**2)
> > > >
> > > > x = COORDS(1)
> > > > y = COORDS(2)
> > > > z = COORDS(3)
> > > >
> > > > C FLUX(1) = laser power intensity distribution
> > > >
> > > > FLUX(1)=PART1*EXP(2*((z0.1V*TIME(2))**2+x**2)/(R**2))
> > > > FLUX(2)=0.0
> > > >
> > > > RETURN
> > > > END
> > > >
> > > > p/s: this subroutine is for the laser moving along the length of the
> > > > cylinder
> > > >
> > > >
> > >
> >
> >
>

