# 2.1.17 ACCESSING Abaqus MATERIALS Product: Abaqus/Standard # References • “UELMAT,” Section 1.1.29 • “UELMAT,” Section 4.1.15 of the Abaqus Verification Guide # Overview Utility routine MATERIAL\_LIB\_MECH returns the stress and the material Jacobian at the element material point. The routine can be called only from Abaqus/Standard user subroutine UELMAT. # Interface ```matlab dimension stress(*),ddsdde(ntens,*,stran(*),dstran(*), * defGrad(3,3),predef(npredf),dpredef(npredf),coords(3) ... call material_lib_mech(materialllib,stress,ddsdde,stran,dstran, * npt,dvdv0,dvmat,dfgrd,predef,dpredef,npredf,celent,coords) ... ``` # Variables to be provided to the utility routine materiallib Variable containing information about the Abaqus material. This variable is passed into user subroutine UELMAT. stran Strain at the beginning of the increment. dstran Strain increment. npt Integration point number. dvdv0 Ratio of the current volume to the reference volume at the integration point. # dvmat Volume at the integration point. # dfgrd Array containing the deformation gradient at the end of the increment. # predef Array of interpolated values of predefined field variables at the integration point at the start of the increment. # dpredef Array of increments of predefined field variables. # npredf Number of predefined field variables, including temperature. # celent Characteristic element length. # coords An array containing the coordinates of this point. These are the current coordinates if geometric nonlinearities are 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. # Variables returned from the utility routine # stress Stress tensor at the end of the increment. # ddsdde Jacobian matrix of the constitutive model, $\partial \Delta \sigma / \partial \Delta \varepsilon$ , where $\Delta \sigma$ are the stress increments and $\Delta \varepsilon$ are the strain increments. ddsdde(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 strain increment array. # 2.1.18 ACCESSING Abaqus THERMAL MATERIALS Product: Abaqus/Standard # References • “UELMAT,” Section 1.1.29 • “UELMAT,” Section 4.1.15 of the Abaqus Verification Guide # Overview Utility routine MATERIAL\_LIB\_HT returns heat fluxes, internal energy time derivative, volumetric heat generation rate, and their derivatives at the element material point. The routine can be called only from Abaqus/Standard user subroutine UELMAT. # Interface ```txt dimension predef(npredef), dpredef(npredef), dtemdx(*), * rhodUdg(*), flux(*), dfdt(*), dfdg(ndim, *), drpldt(*), * coords(3) ... call material_lib_ht(materialllib, rhoUdot, rhodUdt, rhodUdg, * flux, dfdt, dfdg, rpl, drpldt, npt, dvmat, predef, * dpredef, npredf, temp, dtemp, dtemdx, celent, coords) ... ``` # Variables to be provided to the utility routine materiallib Variable containing information about the Abaqus material. This variable is passed into user subroutine UELMAT. npt Integration point number. dvmat Volume at the integration point. predef Array of interpolated values of predefined field variables at the integration point at the start of the increment. # dpredef Array of increments of predefined field variables. # npredf Number of predefined field variables, including temperature. # temp Temperature at the integration point at the start of the increment, . # dtemp Increment of temperature. # dtemdx Spatial gradients of temperature, , at the end of the increment. # celent Characteristic element length. # coords The array containing the original coordinates of this point. # Variables returned from the utility routine # rhoUdot Time derivative of the internal thermal energy per unit mass, U, multiplied by density at the end of increment. # rhodUdt Variation of internal thermal energy per unit mass with respect to temperature multiplied by density evaluated at the end of the increment. # rhodUdg Variation of internal thermal energy per unit mass with respect to the spatial gradients of temperature, , multiplied by density at the end of the increment. # flux Heat flux vector, , at the end of the increment. # dfdt Variation of the heat flux vector with respect to temperature, , evaluated at the end of the increment. # dfdg Variation of the heat flux vector with respect to the spatial gradients of temperature, , at the end of the increment rpl Volumetric heat generation per unit time at the end of the increment. drpldt Variation of rpl with respect to temperature. # 2.1.19 OBTAINING SCALAR STATE INFORMATION IN AN Abaqus/CFD ANALYSIS # Product: Abaqus/CFD # References • “SMACfdUserPressureBC,” Section 1.3.1 • “SMACfdUserVelocityBC,” Section 1.3.2 # Overview Utility routine SMACfdUserSubroutineGetScalar can be called from a user subroutine to access selected output variables for elements or surface facets that are part of a boundary condition definition. # Interface ```txt #include const double* scalars = SMACfdUserSubroutineGetScalar("VAR"); ``` # Variable to be provided to the utility routine # VAR Output variable key. The available variables are listed in “Available output variable keys.” # Variable returned from the utility routine # scalars Real array containing scalar values of the output variable. # Available output variable keys The following output variable keys are supported: • AREA: Area of the surface facet. • DENSITY: Element density. • DIV: Element divergence. • EVOL: Element volume. • TEMP: Element temperature. • TURBEPS: Element energy dissipation rate. • TURBKE: Element turbulent kinetic energy. • TURBNU: Element turbulent eddy viscosity. • TURBOMEGA: Element-specific energy dissipation rate. A requested output variable must be valid for the energy equation setting or turbulence model for the request to be successful. The returned array scalars corresponds to the real-valued variable that can be associated with the request output variable key VAR. If the surface associated with an output variable does not have any facets on the current processor, the pointer returned from the method will be 0. The method will throw an exception and terminate the analysis if an output variable is not available for the current model. # Analysis time for which values are returned Utility subroutine SMACfdUserSubroutineGetScalar returns values of the requested variable that correspond to the beginning of the current increment. # 2.1.20 OBTAINING VECTOR STATE INFORMATION IN AN Abaqus/CFD ANALYSIS # Product: Abaqus/CFD # References • “SMACfdUserPressureBC,” Section 1.3.1 • “SMACfdUserVelocityBC,” Section 1.3.2 # Overview Utility routine SMACfdUserSubroutineGetVector can be called from a user subroutine to access selected output variables for elements and surface facets that are part of a boundary condition definition. # Interface ```c #include const double* vcomp = SMACfdUserSubroutineGetVector("VAR", comp); ``` # Variables to be provided to the utility routine # VAR Output variable key. The available variables are listed in “Available output variable keys.” # comp Output variable vector component number; i.e., 1, 2, or 3. # Variable returned from the utility routine # vcomp Real array containing the values of the vector component for the output variable. # Available output variable keys The following output variable keys are supported: • NORMAL: Surface facet normal direction cosines. • V: Surface facet normal velocity. The returned array component corresponds to the real-valued variable that can be associated with the request output variable key VAR’s component. If the surface associated with an output variable does not have any facets on the current processor, the pointer returned from the method will be 0. The method will throw an exception and terminate the analysis if an output request is not available for the current model. # Analysis time for which values are returned Utility subroutine SMACfdUserSubroutineGetVector returns values of the requested variable that correspond to the beginning of the current increment.