Title | 212170539 Abaqus User Subroutines Reference Manual UEL |
---|---|
Author | Diyar Nasih |
Course | Engineering Mechanics |
Institution | Universiti Putra Malaysia |
Pages | 19 |
File Size | 485.1 KB |
File Type | |
Total Downloads | 87 |
Total Views | 152 |
Download 212170539 Abaqus User Subroutines Reference Manual UEL PDF
ËÛÔ
ïòïòîé
ËÛÔæ
Ë»® «¾®±«¬²» ¬± ¼»º²» ¿² »´»³»²¬ò
Ю±¼«½¬æ Abaqus/Standard
WARNING: This feature is intended for advanced users only. Its use in all but the simplest test examples will require considerable coding by the user/developer. User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual, should be read before proceeding. λº»®»²½»
User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual *UEL PROPERTY *USER ELEMENT
Ѫ»®ª»©
User subroutine ËÛÔ:
will be called for each element that is of a general user-deÞned element type (i.e., not deÞned by a linear stiffness or mass matrix read either directly or from results Þle data) each time element calculations are required; and (or subroutines called by user subroutine ËÛÔ) must perform all of the calculations for the element, appropriate to the current activity in the analysis.
É¿ª» µ²»³¿¬½ ¼¿¬¿
For Abaqus/Aqua applications four utility routines ÙÛÌÉßÊÛ, ÙÛÌÉßÊÛÊÛÔ, ÙÛÌÉ×ÒÜÊÛÔ, and ÙÛÌÝËÎÎÊÛÔare provided to access the ßuid kinematic data. These routines are used from within user subroutine ËÛÔ and are discussed in detail in Obtaining wave kinematic data in an Abaqus/Aqua analysis, Section 2.1.13. Ë»® «¾®±«¬²» ²¬»®º¿½»
ÍËÞÎÑËÌ×ÒÛ ËÛÔøÎØÍôßÓßÌÎÈôÍÊßÎÍôÛÒÛÎÙÇôÒÜÑÚÛÔôÒÎØÍôÒÍÊßÎÍô ï ÐÎÑÐÍôÒÐÎÑÐÍôÝÑÑÎÜÍôÓÝÎÜôÒÒÑÜÛôËôÜËôÊôßôÖÌÇÐÛôÌ×ÓÛôÜÌ×ÓÛô î ÕÍÌÛÐôÕ×ÒÝôÖÛÔÛÓôÐßÎßÓÍôÒÜÔÑßÜôÖÜÔÌÇÐôßÜÔÓßÙôÐÎÛÜÛÚôÒÐÎÛÜÚô í ÔÚÔßÙÍôÓÔÊßÎÈôÜÜÔÓßÙôÓÜÔÑßÜôÐÒÛÉÜÌôÖÐÎÑÐÍôÒÖÐÎÑÐôÐÛÎ×ÑÜ÷ Ý ×ÒÝÔËÜÛ ùßÞßÁÐßÎßÓò×ÒÝù Ý Ü×ÓÛÒÍ×ÑÒ ÎØÍøÓÔÊßÎÈôö÷ôßÓßÌÎÈøÒÜÑÚÛÔôÒÜÑÚÛÔ÷ôÐÎÑÐÍøö÷ô ï ÍÊßÎÍøö÷ôÛÒÛÎÙÇøè÷ôÝÑÑÎÜÍøÓÝÎÜôÒÒÑÜÛ÷ôËøÒÜÑÚÛÔ÷ô
ïòïòîéï
ËÛÔ
î ÜËøÓÔÊßÎÈôö÷ôÊøÒÜÑÚÛÔ÷ôßøÒÜÑÚÛÔ÷ôÌ×ÓÛøî÷ôÐßÎßÓÍøö÷ô í ÖÜÔÌÇÐøÓÜÔÑßÜôö÷ôßÜÔÓßÙøÓÜÔÑßÜôö÷ôÜÜÔÓßÙøÓÜÔÑßÜôö÷ô ì ÐÎÛÜÛÚøîôÒÐÎÛÜÚôÒÒÑÜÛ÷ôÔÚÔßÙÍøö÷ôÖÐÎÑÐÍøö÷
user coding to deÞne ÎØÍô ßÓßÌÎÈô ÍÊßÎÍô ÛÒÛÎÙÇô and ÐÒÛÉÜÌ
ÎÛÌËÎÒ ÛÒÜ Ê¿®¿¾´» ¬± ¾» ¼»º²»¼
These arrays depend on the value of the ÔÚÔßÙÍ array.
ÎØÍ An array containing the contributions of this element to the right-hand-side vectors of the overall system of equations. For most nonlinear analysis procedures, ÒÎØÍ=1 and ÎØÍ should contain the residual vector. The exception is the modiÞed Riks static procedure (Static stress analysis, Section 6.2.2 of the Abaqus Analysis Users Manual), for which ÒÎØÍ=2 and the Þrst column in ÎØÍ should contain the residual vector and the second column should contain the increments of external load on the element. ÎØÍøÕïôÕî÷ is the entry for the Õïth degree of freedom of the element in the Õîth right-hand-side vector.
ßÓßÌÎÈ An array containing the contribution of this element to the Jacobian (stiffness) or other matrix of the overall system of equations. The particular matrix required at any time depends on the entries in the ÔÚÔßÙÍ array (see below). All nonzero entries in ßÓßÌÎÈ should be deÞned, even if the matrix is symmetric. If you do not specify that the matrix is unsymmetric when you deÞne the user element, Abaqus/Standard will use the symmetric matrix deÞned by , where is the matrix deÞned as ßÓßÌÎÈ in this subroutine. If you specify that the matrix is unsymmetric when you deÞne the user element, Abaqus/Standard will use ßÓßÌÎÈ directly. ÍÊßÎÍ An array containing the values of the solution-dependent state variables associated with this element. The number of such variables is ÒÍÊßÎÍ (see below). You deÞne the meaning of these variables. For general nonlinear steps this array is passed into ËÛÔ containing the values of these variables at the start of the current increment. They should be updated to be the values at the end of the increment, unless the procedure during which ËÛÔ is being called does not require such an update. This depends on the entries in the ÔÚÔßÙÍ array (see below). For linear perturbation steps this array is passed into ËÛÔ containing the values of these variables in the base state. They should be returned containing perturbation values if you wish to output such quantities.
ïòïòîéî
ËÛÔ
When Õ×ÒÝ is equal to zero, the call to ËÛÔ is made for zero increment output (see Output, Section 4.1.1 of the Abaqus Analysis Users Manual). In this case the values returned will be used only for output purposes and are not updated permanently.
ÛÒÛÎÙÇ For general nonlinear steps array ÛÒÛÎÙÇ contains the values of the energy quantities associated with the element. The values in this array when ËÛÔ is called are the element energy quantities at the start of the current increment. They should be updated to the values at the end of the current increment. For linear perturbation steps the array is passed into ËÛÔ containing the energy in the base state. They should be returned containing perturbation values if you wish to output such quantities. The entries in the array are as follows: ÛÒÛÎÙÇøï÷
Kinetic energy.
ÛÒÛÎÙÇøî÷
Elastic strain energy.
ÛÒÛÎÙÇøí÷
Creep dissipation.
ÛÒÛÎÙÇøì÷
Plastic dissipation.
ÛÒÛÎÙÇøë÷
Viscous dissipation.
ÛÒÛÎÙÇøê÷
ArtiÞcial strain energy associated with such effects as artiÞcial stiffness introduced to control hourglassing or other singular modes in the element.
ÛÒÛÎÙÇøé÷
Electrostatic energy.
ÛÒÛÎÙÇøè÷
Incremental work done by loads applied within the user element.
When Õ×ÒÝ is equal to zero, the call to ËÛÔ is made for zero increment output (see Output, Section 4.1.1 of the Abaqus Analysis Users Manual). In this case the energy values returned will be used only for output purposes and are not updated permanently. Ê¿®¿¾´» ¬¸¿¬ ½¿² ¾» «°¼¿¬»¼
ÐÒÛÉÜÌ Ratio of suggested new time increment to the time increment currently being used (ÜÌ×ÓÛ, see below). This variable allows you to provide input to the automatic time incrementation algorithms in Abaqus/Standard (if automatic time incrementation is chosen). It is useful only during equilibrium iterations with the normal time incrementation, as indicated by ÔÚÔßÙÍøí÷ãï. During a severe discontinuity iteration (such as contact changes), ÐÒÛÉÜÌ is ignored unless CONVERT SDI=YES is speciÞed for this step. The usage of ÐÒÛÉÜÌ is discussed below. ÐÒÛÉÜÌ is set to a large value before each call to ËÛÔ. If ÐÒÛÉÜÌ is redeÞned to be less than 1.0, Abaqus/Standard must abandon the time increment and attempt it again with a smaller time increment. The suggested new time increment provided to the automatic time integration algorithms is ÐÒÛÉÜÌ × ÜÌ×ÓÛ, where the ÐÒÛÉÜÌ used is the minimum value for all calls to user subroutines that allow redeÞnition of ÐÒÛÉÜÌ for this iteration.
ïòïòîéí
ËÛÔ
If ÐÒÛÉÜÌ is given a value that is greater than 1.0 for all calls to user subroutines for this iteration and the increment converges in this iteration, Abaqus/Standard may increase the time increment. The suggested new time increment provided to the automatic time integration algorithms is ÐÒÛÉÜÌ × ÜÌ×ÓÛ, where the ÐÒÛÉÜÌ used is the minimum value for all calls to user subroutines for this iteration. If automatic time incrementation is not selected in the analysis procedure, values of ÐÒÛÉÜÌ that are greater than 1.0 will be ignored and values of ÐÒÛÉÜÌ that are less than 1.0 will cause the job to terminate. Ê¿®¿¾´» °¿»¼ ² º±® ²º±®³¿¬±² ß®®¿§æ
ÐÎÑÐÍ A ßoating point array containing the ÒÐÎÑÐÍ real property values deÞned for use with this element. ÒÐÎÑÐÍ is the user-speciÞed number of real property values. See DeÞning the element properties in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual. ÖÐÎÑÐÍ An integer array containing the ÒÖÐÎÑÐ integer property values deÞned for use with this element. ÒÖÐÎÑÐ is the user-speciÞed number of integer property values. See DeÞning the element properties in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual. ÝÑÑÎÜÍ An array containing the original coordinates of the nodes of the element. ÝÑÑÎÜÍøÕïôÕî÷ is the Õïth coordinate of the Õîth node of the element. Ëô ÜËô Êô ß Arrays containing the current estimates of the basic solution variables (displacements, rotations, temperatures, depending on the degree of freedom) at the nodes of the element at the end of the current increment. Values are provided as follows: ËøÕï÷
Total values of the variables. If this is a linear perturbation step, it is the value in the base state.
ÜËøÕïôÕÎØÍ÷
Incremental values of the variables for the current increment for right-hand-side ÕÎØÍ. If this is an eigenvalue extraction step, this is the eigenvector magnitude for eigenvector ÕÎØÍ. For steady-state dynamics, ÕÎØÍ denotes real components of perturbation displacement and ÕÎØÍ denotes imaginary components of perturbation displacement.
ÊøÕï÷
Time rate of change of the variables (velocities, rates of rotation). DeÞned for implicit dynamics only (ÔÚÔßÙÍøï÷ 11 or 12).
ßøÕï÷
Accelerations of the variables. DeÞned for implicit dynamics only (ÔÚÔßÙÍøï÷ 11 or 12).
ïòïòîéì
ËÛÔ
ÖÜÔÌÇÐ An array containing the integers used to deÞne distributed load types for the element. Loads of type Un are identiÞed by the integer value n in ÖÜÔÌÇÐ; loads of type UnNU are identiÞed by the negative integer value in ÖÜÔÌÇÐ. ÖÜÔÌÇÐøÕïôÕî÷ is the identiÞer of the Õïth distributed load in the Õîth load case. For general nonlinear steps Õî is always 1. ßÜÔÓßÙ For general nonlinear steps ßÜÔÓßÙøÕïôï÷ is the total load magnitude of the Õïth distributed load at the end of the current increment for distributed loads of type Un. For distributed loads of type UnNU, the load magnitude is deÞned in ËÛÔ; therefore, the corresponding entries in ßÜÔÓßÙ are zero. For linear perturbation steps ßÜÔÓßÙøÕïôï÷ contains the total load magnitude of the Õïth distributed load of type Un applied in the base state. Base state loading of type UnNU must be dealt with inside ËÛÔ. ßÜÔÓßÙøÕïôî÷, ßÜÔÓßÙøÕïôí÷, etc. are currently not used. ÜÜÔÓßÙ For general nonlinear steps ÜÜÔÓßÙ contains the increments in the magnitudes of the distributed loads that are currently active on this element for distributed loads of type Un. ÜÜÔÓßÙøÕïôï÷ is the increment of magnitude of the load for the current time increment. The increment of load magnitude is needed to compute the external work contribution. For distributed loads of type UnNU, the load magnitude is deÞned in ËÛÔ; therefore, the corresponding entries in ÜÜÔÓßÙ are zero. For linear perturbation steps ÜÜÔÓßÙøÕïôÕî÷ contains the perturbation in the magnitudes of the distributed loads that are currently active on this element for distributed loads of type Un. Õï denotes the Õïth perturbation load active on the element. Õî is always 1, except for steady-state dynamics, where Õî=1 for real loads and Õî=2 for imaginary loads. Perturbation loads of type UnNU must be dealt with inside ËÛÔ. ÐÎÛÜÛÚ An array containing the values of predeÞned Þeld variables, such as temperature in an uncoupled stress/displacement analysis, at the nodes of the element (PredeÞned Þelds, Section 33.6.1 of the Abaqus Analysis Users Manual). The Þrst index of the array, Õï, is either 1 or 2, with 1 indicating the value of the Þeld variable at the end of the increment and 2 indicating the increment in the Þeld variable. The second index, Õî, indicates the variable: the temperature corresponds to index 1, and the predeÞned Þeld variables correspond to indices 2 and above. In cases where temperature is not deÞned, the predeÞned Þeld variables begin with index 1. The third index, Õí, indicates the local node number on the element. ÐÎÛÜÛÚøÕïôïôÕí÷
Temperature.
ÐÎÛÜÛÚøÕïôîôÕí÷
First predeÞned Þeld variable.
ÐÎÛÜÛÚøÕïôíôÕí÷
Second predeÞned Þeld variable.
Etc.
Any other predeÞned Þeld variable.
ïòïòîéë
ËÛÔ
ÐÎÛÜÛÚøÕïôÕîôÕí÷
Total or incremental value of the Õîth predeÞned Þeld variable at the Õíth node of the element.
ÐÎÛÜÛÚøïôÕîôÕí÷
Values of the variables at the end of the current increment.
ÐÎÛÜÛÚøîôÕîôÕí÷
Incremental values corresponding to the current time increment.
ÐßÎßÓÍ An array containing the parameters associated with the solution procedure. The entries in this array depend on the solution procedure currently being used when ËÛÔ is called, as indicated by the entries in the ÔÚÔßÙÍ array (see below). For implicit dynamics (ÔÚÔßÙÍøï÷ = 11 or 12) ÐßÎßÓÍ contains the integration operator values, as: ÐßÎßÓÍøï÷ ÐßÎßÓÍøî÷ ÐßÎßÓÍøí÷ ÔÚÔßÙÍ An array containing the ßags that deÞne the current solution procedure and requirements for element calculations. Detailed requirements for the various Abaqus/Standard procedures are deÞned earlier in this section. ÔÚÔßÙÍøï÷
DeÞnes the procedure type. See Results Þle output format, Section 5.1.2 of the Abaqus Analysis Users Manual, for the key used for each procedure.
ÔÚÔßÙÍøî÷ãð
Small-displacement analysis.
ÔÚÔßÙÍøî÷ãï
Large-displacement analysis (nonlinear geometric effects included in the step; see General and linear perturbation procedures, Section 6.1.3 of the Abaqus Analysis Users Manual).
ÔÚÔßÙÍøí÷ãï
Normal implicit time incrementation procedure. User subroutine ËÛÔ must deÞne the residual vector in ÎØÍ and the Jacobian matrix in ßÓßÌÎÈ.
ÔÚÔßÙÍøí÷ãî
DeÞne the current stiffness matrix (ßÓßÌÎÈ or ) only.
ÔÚÔßÙÍøí÷ãí
DeÞne the current damping matrix (ßÓßÌÎÈ or ) only.
ïòïòîéê
ËÛÔ
ÔÚÔßÙÍøí÷ãì
DeÞne the current mass matrix (ßÓßÌÎÈ ) only. Abaqus/Standard always requests an initial mass matrix at the start of the analysis.
ÔÚÔßÙÍøí÷ãë
DeÞne the current residual or load vector ( ÎØÍ
ÔÚÔßÙÍøí÷ãê
DeÞne the current mass matrix and the residual vector for the initial acceleration calculation (or the calculation of accelerations after impact).
ÔÚÔßÙÍøí÷ãïðð
DeÞne perturbation quantities for output.
ÔÚÔßÙÍøì÷ãð
The step is a general step.
ÔÚÔßÙÍøì÷ãï
The step is a linear perturbation step.
ÔÚÔßÙÍøë÷ãð
The current approximations to corrections.
ÔÚÔßÙÍøë÷ãï
The current approximations were found by extrapolation from the previous increment.
) only.
, etc. were based on Newton
Ì×ÓÛøï÷ Current value of step time or frequency. Ì×ÓÛøî÷ Current value of total time. ͽ¿´¿® °¿®¿³»¬»®æ
ÜÌ×ÓÛ Time increment. ÐÛÎ×ÑÜ Time period of the current step. ÒÜÑÚÛÔ Number of degrees of freedom in the element. ÓÔÊßÎÈ Dimensioning parameter used when several displacement or right-hand-side vectors are used. ÒÎØÍ Number of load vectors. ÒÎØÍ is 1 in most nonlinear problems: it is 2 for the modiÞed Riks static procedure (Static stress analysis, Section 6.2.2 of the Abaqus Analysis Users Manual), and it is greater than 1 in some linear analysis procedures and during substructure generation.
ïòïòîéé
ËÛÔ
ÒÍÊßÎÍ User-deÞned number of solution-dependent state variables associated with the element (DeÞning the number of solution-dependent variables that must be stored within the element in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual). ÒÐÎÑÐÍ User-deÞned number of real property values associated with the element (DeÞning the element properties in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual). ÒÖÐÎÑÐ User-deÞned number of integer property values associated with the element (DeÞning the element properties in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual). ÓÝÎÜ ÓÝÎÜ is deÞ ned as the maximum of the user-deÞned maximum number of coordinates needed at any node point (DeÞning the maximum number of coordinates needed at any nodal point in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual) 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, ÓÝÎÜ 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, ÓÝÎÜ will be 2. ÒÒÑÜÛ User-deÞned number of nodes on the element (DeÞning the number of nodes associated with the element in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual). ÖÌÇÐÛ Integer deÞning the element type. This is the user-deÞned integer value n in element type Un (Assigning an element type key to a user-deÞned element in User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users Manual). ÕÍÌÛÐ Current step number. Õ×ÒÝ Current increment number.
ÖÛÔÛÓ User-assigned element number. ÒÜÔÑßÜ IdentiÞcation number of the distributed load or ßux currently active on this element. ÓÜÔÑßÜ Total number of distributed loads and/or ßuxes deÞned on this element.
ïòïòîéè
ËÛÔ
ÒÐÎÛÜÚ Number of predeÞned Þeld variables, including temperature. For user elements Abaqus/Standard uses one value for each Þeld variable per node. ËÛÔ ½±²ª»²¬±²
The solution variables (displacement, velocity, etc.) are arranged on a node/degree of freedom basis. The degrees of freedom of the Þrst node are Þrst, followed by the degrees of freedom of the second node, etc. Ë¿¹» ©¬¸ ¹»²»®¿´ ²±²´²»¿® °®±½»¼«®»
The values of (and, in direct-integration dynamic steps, and ) enter user subroutine ËÛÔ as their latest approximations at the end of the time increment; that is, at time . The values of enter the subroutine as their values at the beginning of the time increment; that is, at time t. It is your responsibility to deÞne suitable time integration schemes to update . To ensure accurate, stable integration of internal state variables, you can control the time incrementation via ÐÒÛÉÜÌ. The values of enter the subroutine as the values of the total load magnitude for the th distributed load at the end of the increment. Increments in the load magnitudes are also available. In the following descriptions of the user elements requirements, it will be assumed that ÔÚÔßÙÍøí÷ãï unless otherwise stated. ͬ¿¬½ ¿²¿´§ øÔÚÔßÙÍøï÷ãïôî÷
. Automatic convergence checks are applied to the force residuals corresponding to degrees of freedom 17.
You must deÞne ßÓßÌÎÈ .
and ÎØÍ
and update the state variables,
Ó±¼º»¼ ε ¬¿¬½ ¿²¿´§ øÔÚÔßÙÍøï÷ãï÷ ¿²¼ øÒÎØÍãî÷
, where Riks (scalar) load parameter.
Automatic convergence checks are applied to the force residuals corresponding to degrees of freedom 17. You must deÞne ßÓßÌÎÈ , ÎØÍøï÷ , and ÎØÍøî÷ and update the state variables, . ÎØÍøî÷ is the incremental load vector.
,
and
are Þxed load parameters, and
is the
Ü®»½¬ó²¬»¹®¿¬±² ¼§²¿³½ ¿²¿´§ øÔÚÔßÙÍøï÷ãïïô ïî÷
Automatic convergence checks are applied to the force residuals corresponding to degrees of freedom 17.
ïòïòîéç
ËÛÔ
ÔÚÔßÙÍøí÷ãï: Normal time increment. Either the Hilber-Hughes-Taylor or the backward Euler time integration scheme will be used. With set to zero for the backward Euler, both schemes imply
where the highest time derivative of