Hallo,
in der Abaqus Dokumentation (Analysis User's Manual V. 6.4, Vol. VI: User Subroutines & Parametric Srtudies, 25.2.3-1, DFLUX) sind die Variablen die Du für eine Nachbildung der bewegten Wärmequelle benötigst eigentlich sehr gut erklärt.
Hier jedenfalls nochmal die Erklärung:
FLUX(1): Höhe des Flusses in das Modell an diesem Punkt biem Wärmeübergang (in JT-1L-2 Oberflächenwärmequelle und JT-1L-3 Volumenwärmequelle)
FLUX(2): Änderungsrate bezüglich der Temperatur an diesem Punkt (in JT-1L-2 Oberflächenwärmequelle und THETA-1 JT-1L-3 Volumenwärmequelle)
SOL: Wert des Lösungsvariablen z.B. Temperatur (T)
KSTEP: Nummer des aktuellen Steps
KINC: Nummer des aktuellen Inkrements
TIME(1): Seit dem aktuellen Stepstart verstrichene Zeit (in s)
TIME(2): Seit Simulationsstart verstrichene Zeit (in s)
NOEL: Nummer des aktuellen Elements (Knotens)
NPT: Nummer des aktuellen Integrationspunktes im oder auf der Oberfläche des Elements abhängig von Oberflächenwärmequelle oder Volumenwärmequelle)
COORDS: 1-3-Vektor der die aktuelle Position beschrieben durch das ...Koordinatensystem in den Richtungen 1 bis 3 wieder gibt (in L)
JLTYP: Art des Flusses 0:Oberflächenwärmequelle, 1:BFNU, 11:S1NU 12:S2NU, 13:S4NU, 14:S4NU, 15:S5NU, 16:S6NU
TEMP: aktueller Temperaturwert an diesem Integrationspunkt (in T)
PRESS: aktueller Wert der Druckspannung an diesem Integrationspunkt (gilt nur für die Massendiffusionsanalyse)
SNAME: Oberflächenname nur bei Oberflächenwärmequelle
Für Dich am wichtigsten sind vermutlich die Variablen:
JLTYPE: Volumen- oder Oberflächenwärmequelle (je nachdem, wie groß die Eindringtiefe der Strahlung ist und ob das Lambert-Beersche Gesetz beachtet werden muss)
Coords(1) - X-Position des aktuellen (bestrahlten) Knotens
Coords(2) - Y-Position des aktuellen (bestrahlten) Knotens
Coords(3) - Z-Position des aktuellen (bestrahlten) Knotens
TIME(1) - aktuelle Inkrement-Zeit des Steps
Zur Bewegung der Wärmequelle gehst Du wie folgt vor:
Du musst ausgehend von deinem Koordinatensystem eine Variable definieren (z.B. X0=0.0, Y0=0.0), die die Koordinaten des Start- bzw. Endpunktes deines Laserstrahls festlegt.
Dann bildest Du dann mittels einer weiteren Variable (z.B. dX=ABS(X0-Coords(1), dY=ABS(Y0-Coords(2)) die Differenz zwischen dem Startpunkt und der aktuellen Koordinate des aktuellen Knotens.
Über die Time(1)-Variable und eine Vorschubgeschwindigkeit (z.B. v=1.0) kannst Du die eigentliche Bewegung als zurückgelegten Weg nachbilden:
dX=dX + v*TIME(1).
Der vollständige Code würde in etwa so aussehen:
Code:
X0=0.0
Y0=0.0
dX=ABS(X0-Coords(1))
dY=ABS(Y0-Coords(2))
dX=dX
dX=dX + v*TIME(1)
Et voila, sie bewegt sich doch!
Übrigens noch ein Tipp für die Namensvergabe von Variablen in Fortran: Alle Variablen, die mit dem Namen "i-n" oder "I-N" anfangen, werden automatisch als Integer-Zahlen definiert. Du erhältst dann ein Problem bei der Kompilierung, wenn Du diese Datentypen z.B. in Rechenoperationen mit REAL-Datentypen mischt. Also am besten vermeidest Du Variablennamen wie "No_set" oder "Ideal_w" von vornherein.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP