Abaqus - UAMP Fortran subroutine

Hi all, i am trying to create a UAMP Fortran subroutine for performing a thermal analysis of a localised post weld heat treatment.

I am applying a heat flux load to various surfaces (SURFFLUX), i have 14 total, each of these use their own UAMP. for example: Surfflux1 uses UAMP_01, this continues until Surfflux14 uses UAMP_14. I also have 14 history output requests (1 for each surface and load) and these are node sets (nset), they are outputting the NT (Nodal Temperature) and include the sensor when available, these are acting as thermocouples, named TC1->TC14. The corresponding number link to each other e.g. Surfflux1 uses UAMP_01 and TC1 is on the same surface.

I need the subroutine to automatically calculate what the UAMP should be for the surface heat flux so that 1 specific node on the surface reaches the heat treatment requirements (ramps & holds), this will use the current temperature value of the node and the state variables (material properties are different at varying temperatures) to calculate what the heat flux should be in order to reach the temperature by this increment or to hold. This will cause areas of the same surface to exceed or be below the temperature of the node but this is what i want as this is due to the geometry of the part and the thicknesses.

I have heat treatment requirements for what temperatures i need the nodes to reach at certain time increments. For example:

TC1, TC13, TC14:

  1. Beginning at room temperature (20 degC)
  2. remain at room temperature for 100 seconds (no heat flux applied)
  3. Apply a heat flux to the surface so that the node reaches 100 degC after 100 seconds
  4. Apply heat flux to maintain temperature of 100 degC for 100 more seconds
  5. apply heat flux to ramp temperature of node to 300 degC after 100 more seconds.
  6. apply heat flux to ramp temperature of node to 500 degC after 100 more seconds
  7. Apply heat flux to maintain soak of 500 degC for 100 seconds.
  8. Remove heat flux to naturally cool until end of step (step is 100 seconds, cool from 600increments to 1000increments)
  9. TimeTemperature(s) cumulative
    020
    10020
    200100
    300300
    400300
    500500
    600500
    1000Naturally cool down

     

    TC2->TC12:

  10. Beginning at room temperature (20 degC)
  11. remain at room temperature for 100 seconds (no heat flux applied)
  12. Apply a heat flux to the surface so that the node reaches 100 degC after 100 seconds
  13. Apply heat flux to maintain temperature of 100 degC for 100 more seconds
  14. apply heat flux to ramp temperature of node to 300 degC after 100 more seconds.
  15. apply heat flux to ramp temperature of node to 500 degC after 100 more seconds
  16. apply heat flux to ramp temperature of node to 600 degC after 100 more seconds
  17. Apply heat flux to maintain soak of node temp 600degC for 100 more seconds
  18. Remove heat flux to naturally cool until end of step (step is 100 seconds, cool from 700increments to 1000increments)
  19.  
  20. TimeTemperature(s) cumulative
    020
    10020
    200100
    300300
    400300
    500500
    600600
    700600
    1000Naturally cool down

Would it make most sense to list all the temperatures and times as parameters (example in attached subroutine) (only end of the subroutine is included as the start is the standard UAMP)

Could i make 2 groups for the 2 different heating requirements and then link which ever TC to a group

These are only example numbers and not my true values so it is not important the numbers are correct but how i would write it.

  1. Thanks