# 1.1.40 UHYPEL: User subroutine to define a hypoelastic stress-strain relation. Product: Abaqus/Standard # References • “Hypoelastic behavior,” Section 22.4.1 of the Abaqus Analysis User’s Guide • \*HYPOELASTIC # Overview User subroutine UHYPEL: • can be used to define isotropic hypoelastic material behavior, thus requiring the definition of Young’s modulus, E, and Poisson’s ratio, ; • is called at all material calculation points of elements for which the material definition contains user-defined hypoelastic behavior; • can be used in conjunction with user subroutine USDFLD to redefine any field variables that are passed in (see “USDFLD,” Section 1.1.53); and • ignores any data specified outside the user subroutine for the associated hypoelastic material definition. # Special considerations for various element types There are several special considerations that need to be noted. # Beams and shells that calculate transverse shear energy When UHYPEL is used to define the material response of shell or beam elements that calculate transverse shear energy, Abaqus/Standard cannot calculate a default value for the transverse shear stiffness of the element. Hence, you must define the element’s transverse shear stiffness. See “Shell section behavior,” Section 29.6.4 of the Abaqus Analysis User’s Guide, and “Choosing a beam element,” Section 29.3.3 of the Abaqus Analysis User’s Guide, for guidelines on choosing this stiffness. # Elements with hourglassing modes If this capability is used to describe the material of elements with hourglassing modes, you must define the hourglass stiffness for hourglass control based on the total stiffness approach. The hourglass stiffness is not required for enhanced hourglass control, but you can define a scaling factor for the stiffness associated with the drill degree of freedom (rotation about the surface normal). See “Section controls,” Section 27.1.4 of the Abaqus Analysis User’s Guide. User subroutine interface ```txt SUBROUTINE UHYPEL(E, GNU, STRAIN, NDI, NSHR, EINV1, EINV2, EINV3, 1 COORDS, NOEL, TEMP, PREDEF, CMNAME) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME C DIMENSION STRAIN(*), COORDS(3), PREDEF(*) user coding to define E and GNU RETURN END ``` Variables to be defined ```txt E Young's modulus. GNU Poisson's ratio. ``` Variables passed in for information STRAIN Array containing the total (elastic) strains, ( $\varepsilon$ ). NDI Number of direct strain components at this point. NSHR Number of shear strain components at this point. EINV1 $I_{1} = \mathrm{trace}(\varepsilon)$ , the first strain invariant. EINV2 $I_{2} = 1 / 2(\varepsilon :\varepsilon -I_{1}^{2})$ , the second strain invariant. EINV3 $I_{3} = \operatorname{det}(\varepsilon)$ , the third strain invariant. # COORDS An array containing the coordinates of the material point. These are the current coordinates if geometric nonlinearity is accounted for during the step (see “Defining an analysis,” Section 6.1.2 of the Abaqus Analysis User’s Guide); otherwise, the array contains the original coordinates of the point. # NOEL Element number. # TEMP Current temperature at this point. # PREDEF An array containing current values of the predefined field variables at this point (initial values at the beginning of the analysis and current values during the analysis). # CMNAME User-specified material name, left justified. # 1.1.41 UHYPER: User subroutine to define a hyperelastic material. # Product: Abaqus/Standard # References • “Hyperelastic behavior of rubberlike materials,” Section 22.5.1 of the Abaqus Analysis User’s Guide • \*HYPERELASTIC • “UMAT and UHYPER,” Section 4.1.21 of the Abaqus Verification Guide # Overview # User subroutine UHYPER: • can be used to define the strain energy potential for isotropic hyperelastic material behavior; • is called at all material calculation points of elements for which the material definition contains user-defined hyperelastic behavior; • can include material behavior dependent on field variables or state variables; and • requires that the values of the derivatives of the strain energy density function of the hyperelastic material be defined with respect to the strain invariants. # Special considerations for various element types There are several special considerations that need to be noted. # Shells that calculate transverse shear energy When UHYPER is used to define the material response of shell elements that calculate transverse shear energy, Abaqus/Standard cannot calculate a default value for the transverse shear stiffness of the element. Hence, you must define the element’s transverse shear stiffness. See “Shell section behavior,” Section 29.6.4 of the Abaqus Analysis User’s Guide, for guidelines on choosing this stiffness. # Elements with hourglassing modes If this capability is used to describe the material of elements with hourglassing modes, you must define the hourglass stiffness for hourglass control based on the total stiffness approach. The hourglass stiffness is not required for enhanced hourglass control, but you can define a scaling factor for the stiffness associated with the drill degree of freedom (rotation about the surface normal). See “Section controls,” Section 27.1.4 of the Abaqus Analysis User’s Guide. # User subroutine interface SUBROUTINE UHYPER(BI1,BI2,AJ,U,UI1,UI2,UI3,TEMP,NOEL, 1 CMNAME,INCMPFLAG,NUMSTATEV,STATEV,NUMFIELDV,FIELDV, UHYPER ```txt 2 FIELDVINC, NUMPROPS, PROPS) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME DIMENSION U(2), UI1(3), UI2(6), UI3(6), STATEV(*), FIELDV(*), 2 FIELDVINC(*), PROPS(*) user coding to define U, UI1, UI2, UI3, STATEV ``` RETURN END Variables to be defined U(1) U, strain energy density function. For a compressible material, at least one derivative involving J should be nonzero. For an incompressible material, all derivatives involving J will be ignored. The strain invariants— $\overline{I}_{1}$ , $\overline{I}_{2}$ , and J—are defined in “Hyperelastic behavior of rubberlike materials,” Section 22.5.1 of the Abaqus Analysis User’s Guide. U(2) $\tilde{U}_{dev}$ , the deviatoric part of the strain energy density of the primary material response. This quantity is needed only if the current material definition also includes Mullins effect (see “Mullins effect,” Section 22.6.1 of the Abaqus Analysis User’s Guide). UI1(1) $\partial U/\partial\overline{I}_{1}$ . UI1(2) $\partial U/\partial\overline{I}_{2}$ . UI1(3) $\partial U/\partial J$ . UI2(1) $\partial^{2}U/\partial\overline{I}_{1}^{2}$ . UI2(2) $\partial^{2}U/\partial\overline{I}_{2}^{2}$ . UI2(3) $\partial^{2}U/\partial J^{2}$ . UI2 (4) $\partial^{2}U/\partial\overline{I}_{1}\partial\overline{I}_{2}.$ UI2 (5) $\partial^{2}U/\partial\overline{I}_{1}\partial J.$ UI2 (6) $\partial^{2}U/\partial\overline{I}_{2}\partial J.$ UI3 (1) $\partial^{3}U/\partial\overline{I}_{1}^{2}\partial J.$ UI3 (2) $\partial^{3}U/\partial\overline{I}_{2}^{2}\partial J.$ UI3 (3) $\partial^{3}U/\partial\overline{I}_{1}\partial\overline{I}_{2}\partial J.$ UI3 (4) $\partial^{3}U/\partial\overline{I}_{1}\partial J^{2}.$ UI3 (5) $\partial^{3}U/\partial\overline{I}_{2}\partial J^{2}.$ UI3 (6) $\partial^{3}U/\partial J^{3}.$ # STATEV Array containing the user-defined solution-dependent state variables at this point. These are supplied as values at the start of the increment or as values updated by other user subroutines (see “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User’s Guide) and must be returned as values at the end of the increment. # Variables passed in for information BI1 $\overline{I}_1$ BI2 $\overline{I}_2$ ```txt AJ J. ``` # TEMP Current temperature at this point. # NOEL Element number. # CMNAME User-specified material name, left justified. # INCMPFLAG Incompressibility flag defined to be 1 if the material is specified as incompressible or 0 if the material is specified as compressible. # NUMSTATEV User-defined number of solution-dependent state variables associated with this material (see “Allocating space” in “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User’s Guide). # NUMFIELDV Number of field variables. # FIELDV Array of interpolated values of predefined field variables at this material point at the end of the increment based on the values read in at the nodes (initial values at the beginning of the analysis and current values during the analysis). # FIELDVINC Array of increments of predefined field variables at this material point for this increment; this includes any values updated by the user subroutine USDFLD. # NUMPROPS Number of material properties entered for this user-defined hyperelastic material. # PROPS Array of material properties entered for this user-defined hyperelastic material. # 1.1.42 UINTER: User subroutine to define surface interaction behavior for contact surfaces. # Product: Abaqus/Standard # References • “User-defined interfacial constitutive behavior,” Section 37.1.6 of the Abaqus Analysis User’s Guide • \*SURFACE INTERACTION • “UINTER,” Section 4.1.20 of the Abaqus Verification Guide # Overview # User subroutine UINTER: • is called at points on the slave surface of a contact pair with a user-defined constitutive model defining the interaction between the surfaces; • can be used to define the mechanical (normal and shear) and thermal (heat flux) interactions between surfaces; • can be used when the normal surface behavior (contact pressure versus overclosure) models (“Contact pressure-overclosure relationships,” Section 37.1.2 of the Abaqus Analysis User’s Guide) or the extended versions of the classical Coulomb friction model (“Frictional behavior,” Section 37.1.5 of the Abaqus Analysis User’s Guide) are too restrictive and a more complex definition of normal and shear transmission between contacting surfaces, including damping properties, are required; • must provide the entire definition of the mechanical and the thermal interaction between the contacting surfaces (hence, no additional surface behaviors can be specified in conjunction with this capability); • can provide the entire definition of viscous and structural damping for interactions between the contacting surfaces for direct and mode-based steady-state dynamic analysis (including the subspace projection method), transient mode-based analysis, complex eigenvalue extraction, matrix generation, and substructure generation; • only accounts for element damping in mode-based procedures if the SIM architecture is used; • can use and update solution-dependent state variables; and • is not available for contact elements. # User subroutine interface SUBROUTINE UINTER(STRESS,DDSDDR,DVISCOUS,DSTRUCTURAL,FLUX,DDFDDT, 1 DDSDDT,DDFDDR,STATEV,SED,SFD,SPD,SVD,SCD,PNEWDT,RDISP, ```prolog 2 DRDISP, 3 TEMP, DTEMP, PREDEF, DPRED, TIME, DTIME, FREQR, CINAME, SLNAME, 4 MSNAME, 5 PROPS, COORDS, ALOCALDIR, DROT, AREA, CHRLNGTH, NODE, NDIR, NSTATV, 6 NPRED, NPROPS, MCRD, KSTEP, KINC, KIT, LINPER, LOPENCLOSE, LSTATE, 7 LSDI, LPRINT) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CINAME, SLNAME, MSNAME DIMENSION STRESS (NDIR), DDSDDR (NDIR, NDIR), FLUX (2), DDFDDT (2, 2), 1 DDSDDT (NDIR, 2), DDFDDR (2, NDIR), STATEV (NSTATV), 2 RDISP (NDIR), DRDISP (NDIR), TEMP (2), DTEMP (2), PREDEF (2, NPRED), 3 DPRED (2, NPRED), TIME (2), PROPS (NPROPS), COORDS (MCRD), 4 ALOCALDIR (3, 3), DROT (2, 2), DVISCOUS (NDIR, NDIR), 5 DSTRUCTURAL (NDIR, NDIR) user coding to define STRESS, DDSDDR, FLUX, DDFDDT, DDSDDT, DDFDDR, and, optionally, STATEV, SED, SFD, SPD, SVD, SCD, PNEWDT, LOPENCLOSE, LSTATE, LSDI, DVISCOUS, DSTRUCTURAL RETURN END ``` # Variables to be defined # STRESS(NDIR) This array is passed in as the stress between the slave and master surfaces at the beginning of the increment and must be updated in this routine to be the stress at the end of the increment. The stress must be defined in a local coordinate system (see ALOCDIR). This variable must be defined for a stress/displacement, a fully coupled temperature-displacement, or a coupled thermal-electrical-structural analysis. The sign convention for stresses is that a positive stress indicates compression across contact surfaces, while a negative stress indicates tension. # DDSDDR(NDIR,NDIR) Interface stiffness matrix. DDSDDR(I,J) defines the change in the Ith stress component at the end of the time increment caused by an infinitesimal perturbation of the Jth component of the relative displacement increment array. Unless you invoke the unsymmetric equation solution capability in the contact property model definition (“Use with the unsymmetric equation solver in Abaqus/Standard” in