UMDFLUX

User subroutine for specifying moving or stationary nonuniform heat flux in a heat transfer analysis.

User subroutine UMDFLUX:

  • can be used to prescribe multiple moving or stationary heat fluxes as a function of position, time, temperature, etc.;

  • can use and update element solution-dependent variables;

  • will be called once for each element to prescribe heat moving sources between start points and end points inside the element; and

  • applies heat fluxes as point heat sources, which will have the units of power (JT−1); no volumetric integration is performed outside the user subroutine.

This page discusses:

User Subroutine Interface

      subroutine umdflux( 
     *     jFlags, amplitude, noel, nElemNodes, iElemNodes, 
     *     mcrd, coordNodes, uNodes, kstep, kinc, time, dt, jlTyp,
     *     temp, npredef, predef, nsvars, svars, sol, dsol,
     *     nIntp, volElm, volInt, 
     *     nHeatEvents, flux, dfluxdT, csiStart, csiEnd)
C
      include 'aba_param.inc'
C
      dimension jFlags(2), iElemNodes(nElemNodes),
     *     coordNodes(mcrd,nElemNodes), uNodes(mcrd,nElemNodes),
     *     volInt(nIntp), time(2), dt(2), 
     *     temp(2,nElemNodes), predef(2,npredef,nElemNodes),
     *     svars(nsvars,2), sol(nElemNodes), dsol(nElemNodes),
     *     flux(nHeatEvents), dfluxdT(nHeatEvents),
     *     csiStart(3,nHeatEvents), csiEnd(3,nHeatEvents) 

      user coding to define nHeatEvents, flux, dfluxdT, csiStart, csiEnd, 
      and possibly update dt, svars

      return
      end

Variables to Be Defined

nHeatEvents

The total number of moving or stationary heat events (heat fluxes) in this element.

flux(nHeatEvents)

Magnitudes of the fluxes (units of JT−1) flowing into this element.

dfluxdT(nHeatEvents)

The rate of change of the fluxes with respect to temperatures.

csiStart(3,nHeatEvents)

The isoparametric coordinates of the moving fluxes' starting points.

csiEnd(3,nHeatEvents)

The isoparametric coordinates of the moving fluxes' ending points. If the flux is stationary, the coordinates of the end points are the same as the coordinates of the start points (csiStart=csiEnd).

Variables That Can Be Updated

dt(2)

New suggested time increment (modifiable); to use the analysis time increment, leave this unchanged.

svars(nsvars,1)

An array for defining new values of element solution-dependent variables at the end of the increment. These are passed in as the values at the beginning of the increment unless they are updated by other user subroutines, in which case the updated values are passed in. The size of the array is nsvars (see below), which can be defined as described in Allocating Space for Element Solution-Dependent Variables.

Variables Passed in for Information

jFlags

An array containing the flags that define the current solution procedure and analysis type.

jFlags(1) Defines the procedure type. See Results File for the key used for each procedure.
jFlags(2)=0 Small-displacement analysis.
jFlags(2)=1 Large-displacement analysis (nonlinear geometric effects included in the step; see General and Perturbation Procedures).
amplitude

The current value of the amplitude referenced for this flux (set to unity if no amplitude is referenced). This is the amplitude defined on the *DFLUX definition.

noel

User-assigned element number.

nElemNodes

Number of element nodes.

iElemNodes(nElemNodes)

An array containing user-assigned node numbers of the element.

mcrd

The maximum of the user-defined maximum number of coordinates needed at any node point (Defining the Maximum Number of Coordinates Needed at Any Nodal Point) and the value of the largest active degree of freedom of the user element that is less than or equal to 3. For example, if you specify that the maximum number of coordinates is 1 and the active degrees of freedom of the user element are 2, 3, and 6, mcrd will be 3. If you specify that the maximum number of coordinates is 2 and the active degrees of freedom of the user element are 11 and 12, mcrd will be 2.

coordNodes(mcrd,nElemNodes)

An array containing the coordinates of the nodes of the element.

uNodes(mcrd,nElemNodes)

An array containing displacements at the element nodes. In a pure heat transfer analysis the displacements are set equal to the coordinates.

kstep

Current step number.

kinc

Current increment number.

time(1)

Current value of step time.

time(2)

Current value of total time.

dt(1)

Time increment.

jlTyp

Identifies the moving flux type for which this call to UMDFLUX is being made; only the concentrated heat flux type is supported (jlTyp=1).

temp(2,nElemNodes)

An array containing pairs of values of predefined temperature at the element nodes. The first value in a pair, temp(1,nElemNodes), corresponds to the value at the end of the increment; and the second value, temp(2,nElemNodes), corresponds to the increment in temperature.

npredef

Number of field variables.

predef(2,npredef,nElemNodes)

An array containing pairs of values of predefined field variables at the element nodes. The first value in a pair, predef(1,npredef,nElemNodes), corresponds to the value at the end of the increment; and the second value, predef(2,npredef,nElemNodes), corresponds to the increment in the field variables.

nsvars

Number of element solution-dependent variables.

svars(nsvars,2)

An array containing values of element solution-dependent variables at the beginning of the increment.

sol(nElemNodes)

An array of the solution variables (temperature in a heat transfer analysis) at the beginning of the increment.

dsol(nElemNodes)

An array of estimated values of the increment of the solution variables (temperature in a heat transfer analysis). The values are always set equal to zero.

nIntp

Total number of integration points for this element type.

volElm

The total volume of the element.

volInt(nIntp)

The integration point volume.