1.1.24 UDECURRENT
User subroutine to define nonuniform volume current density in an eddy current or magnetostatic analysis.

Product: Abaqus/Standard  

References

Overview

User subroutine UDECURRENT:

User subroutine interface

      subroutine udecurrent (
C Write only - 
     *   bodycurrent, 
C Read only - 
     *   predef, coords, nBlock,
     *   i_array, niarray, 
     *   r_array, nrarray,
     *   c_array, ncarray )
C
      include 'aba_param.inc'
C
      dimension bodycurrent(nBlock,*), 
     *   predef(nBlock,2,*),
     *   coords(nBlock,*),
     *   i_array(*),
     *   r_array(*)
C
      character*80 c_array(*) 
C
      parameter( i_udecurr_kstep   = 1,
     *           i_udecurr_kinc    = 2,
     *           i_udecurr_noel    = 3,
     *           i_udecurr_npt     = 4,
     *           i_udecurr_jltyp   = 5,
     *           i_udecurr_phase   = 6,
     *           i_udecurr_proc    = 7,
     *           i_udecurr_nfld    = 8 )
C
      parameter( ir_udecurr_time_1 = 1,
     *           ir_udecurr_time_2 = 2,
     *           ir_udecurr_time_3 = 3 )
C
      parameter( i_jltyp_cj = 1 )
C
      parameter( i_proc_lf_th = 1,
     *           i_proc_lf_td = 2,
     *           i_proc_ms    = 3 )
C
      parameter( i_udecurr_phase_real   = 1,
     *           i_udecurr_phase_imag   = 2 )
C
      user coding to define bodycurrent
      return
      end

Variable to be defined

bodycurrent(nBlock,*)

Components of the body current density vector for a block of load integration points. The units are CL–2T–1. bodycurrent will be passed into the routine as the vector specified as part of the element-based distributed volume current density definition. If the vector is not defined, bodycurrent will be passed in as zero.

Variables passed in for information

predef(2,*)

An array containing values of temperature and all the predefined field variables at the current load integration point, based on interpolation from the values specified at the nodes. The first value in a pair, predef(1,*), corresponds to initial values; the second value, predef(2,*), corresponds to incremental values of the temperature and field variables. The first entry (for example, predef(1,1) or predef(2,1)) contains the temperature; the subsequent entries (for example, predef(1,2) or predef(2,2) onward) contain the field variables.

coords(nBlock,*)

An array containing the coordinates of the load integration points.

nBlock

Number of load integration points in this block. Currently equal to 1.

i_array(i_udecurr_kstep)

Step number.

i_array(i_udecurr_kinc)

Increment number.

i_array(i_udecurr_noel)

Element number.

i_array(i_udecurr_npt)

Load integration point number.

i_array(i_udecurr_jltyp)

Currently equal to 1.

i_array(i_udecurr_phase)

This value is relevant only for a time-harmonic eddy current analysis and is either 1 (i_udecurr_phase_real) or 2 (i_udecurr_phase_imag), depending on whether the current call to the user subroutine defines the real (in-phase) or the imaginary (out-of-phase) part of the volume current density vector.

i_array(i_udecurr_proc)

Equal to 1 for a time-harmonic eddy current procedure, 2 for a transient eddy current procedure, and 3 for a magnetostatic procedure.

i_array(i_udecurr_nfld)

Total number of predefined field variables.

niarray

Size of array i_array. Currently equal to 8.

r_array(ir_udecurr_time_1)

Excitation frequency in cycles/time for a time-harmonic eddy current analysis; alternatively, the value of step time at the beginning of the current increment for a transient eddy current or magnetostatic analysis.

r_array(ir_udecurr_time_2)

Excitation frequency in radians/time for a time-harmonic eddy current analysis; alternatively, the value of total time at the beginning of the current increment for a transient eddy current or magnetostatic analysis.

r_array(ir_udecurr_time_3)

Time increment for a transient eddy current or magnetostatic analysis.

nrarray

Size of array r_array. Currently equal to 3.

c_array(1)

Not used.

ncarray

Size of array c_array(1). Currently equal to 1.