212170539 Abaqus User Subroutines Reference Manual UEL PDF

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 PDF
Total Downloads 87
Total Views 152

Summary

Download 212170539 Abaqus User Subroutines Reference Manual UEL PDF


Description

ËÛÔ

ïòïòîé

ËÛÔæ

Ë»® «¾®±«¬²» ¬± ¼»º²» ¿² »´»³»²¬ò

Ю±¼«½¬æ 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 Users Manual, should be read before proceeding. λº»®»²½»

  

User-deÞned elements, Section 32.15.1 of the Abaqus Analysis Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 Users 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 elements requirements, it will be assumed that ÔÚÔßÙÍøí÷ãï unless otherwise stated. ͬ¿¬½ ¿²¿´§ øÔÚÔßÙÍøï÷ãïôî÷

 

. Automatic convergence checks are applied to the force residuals corresponding to degrees of freedom 17.



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 17. 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 17.

ïòïòîéç

ËÛÔ



ÔÚÔßÙÍøí÷ãï: 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


Similar Free PDFs