Product: Abaqus/Standard
User subroutine UDECURRENT:
can be used to define the variation of volume current density vector as a function of position, time, element number, etc. for a transient eddy current or magnetostatic analysis or as a function of position, excitation frequency, phase, element number, etc. for a time-harmonic eddy current analysis;
will be called at each load integration point for each element-based nonuniform volume current density definition during eddy current or magnetostatic analysis; and
ignores any amplitude references that may appear with the associated step definition or nonuniform distributed volume current density definition.
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
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.
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.