Product: Abaqus/Standard
User subroutine UDSECURRENT:
can be used to define the variation of surface current density vector as a function of position, time, element number, load integration point number, etc. for a transient eddy current or magnetostatic analysis or as a function of position, excitation frequency, phase, element number, load integration point number, etc. for a time-harmonic eddy current analysis;
will be called at each surface load integration point for each nonuniform surface current density definition during eddy current and magnetostatic analyses; and
ignores any amplitude references that may appear with the associated step definition or nonuniform distributed surface current density definition.
subroutine udsecurrent ( C Write only - * surfacecurrent, C Read only - * coords, nBlock, * i_array, niarray, * r_array, nrarray, * c_array, ncarray ) C include 'aba_param.inc' C dimension surfacecurrent(nBlock,*), * coords(nBlock,*), * i_array(*), * r_array(*) C character*80 c_array(*) C parameter( i_udsecurr_kstep = 1, * i_udsecurr_kinc = 2, * i_udsecurr_noel = 3, * i_udsecurr_currtyp = 4, * i_udsecurr_phase = 5, * i_udsecurr_proc = 6) C parameter( ir_udsecurr_time_1 = 1, * ir_udsecurr_time_2 = 2, * ir_udsecurr_time_3 = 3 ) C parameter( ic_udsecurr_surf = 1) C parameter( i_currtyp_tangential = 1 ) C parameter( i_proc_lf_th = 1, * i_proc_lf_td = 2, * i_proc_ms = 3 ) C parameter( i_udsecurr_phase_real = 1, * i_udsecurr_phase_imag = 2 ) C user coding to define surfacecurrent return end
surfacecurrent(nBlock,*)
Components of the surface current density vector at a block of surface integration points. The units are CL–1T–1. surfacecurrent will be passed into the routine as the vector specified as part of the surface-based distributed surface current density definition. If the vector is not defined, surfacecurrent will be passed in as zero.
coords(nBlock,*)
An array containing the coordinates of a block of surface load integration points.
nBlock
Number of surface integration points in this block. Currently equal to 1.
i_array(i_udsecurr_kstep)
Step number.
i_array(i_udsecurr_kinc)
Increment number.
i_array(i_udsecurr_noel)
Element number.
i_array(i_udsecurr_currtyp)
Currently equal to 1.
i_array(i_udsecurr_phase)
This value is relevant only for a time-harmonic eddy current analysis and is either 1 (i_udsecurr_phase_real) or 2 (i_udsecurr_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 surface current density vector.
i_array(i_udsecurr_proc)
Equal to 1 for a time-harmonic eddy current procedure, 2 for a transient eddy current procedure, and 3 for a magnetostatic procedure.
niarray
Size of array i_array. Currently equal to 6.
r_array(ir_udsecurr_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_udsecurr_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_udsecurr_time_3)
Time increment for a transient eddy current or magnetostatic analysis.
nrarray
Size of array r_array. Currently equal to 3.
c_array(ic_udsecurr_surf)
Surface name.
ncarray
Size of array c_array. Currently equal to 1.