Abaqus 用户子程序uinter介绍
ABAQUS子程序
Home浅谈ABAQUS用户子程序李青清华大学工程力学系摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。
关键字ABAQUS,用户子程序,应用程序,结果文件一、前言:ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。
ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。
这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。
例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。
二.在ABAQUS中使用用户子程序ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。
在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。
运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下:ABAQUS JOB=[JOB] USER¡[.FOR]¡C用户在编写用户子程序时,要注意以下几点:1.用户子程序不能嵌套。
即任何用户子程序都不能调用任何其他用户子程Home序,但可以调用用户自己编写的FORTRAN子程序和ABAQUS应用程序。
Abaqus用户子程序VUMAT
Component 1 2 3 4 5 6 7 8 9
2-D Case 3-D Case
Initial calculations and checks
ABAQUS功能简介
最先进的大型通用非线性有限元分析软件——ABAQUS1、概述美国ABAQUS软件公司成立于1978年,总部位于美国罗德岛博塔市,专门从事非线性有限元力学分析软件ABAQUS的开发与维护。
公司总部雇员400余人,其中近130余人具有工程或计算机博士学位,近120人具有硕士学位,被公认为世界上最大且最优秀的固体力学研究团体。
ABAQUS公司不断吸取最新的分析理论和计算机技术,领导着全世界非线性有限元技术的发展。
ABAQUS是国际著名的CAE软件,它以其强大的非线性分析功能以及解决复杂和深入的科学问题的能力赢得广泛称誉。
ABAQUS软件已被全球工业界广泛接受,并拥有世界最大的非线性力学用户群。
ABAQUS已成为国际上最先进的大型通用非线性有限元分析软件。
ABAQUS软件,除普通工业用户外,也在以高等院校、科研院所等为代表的高端用户中得到广泛。
研究水平的提高引发了用户对高水平分析工具需求的加强,作为满足这种高端需求的有力工具,ABAQUS软件在各行业用户群中所占据的地位也越来越突出。
ABAQUS是一个推崇技术的公司,它始终走在结构力学研究和软件化领域的前沿,它良好的品质和服务得到业界的广泛认可。
制造业是ABAQUS最重要的应用领域之一,拥有NASA、罗克希德-马丁、波音、空中客车等长期合作的用户。
对制造业很多复杂和特殊的问题,如热传导、爆炸冲击、流固耦合、疲劳断裂、复合材料损伤、接触连接、金属塑性等,在所有的CAE软件中,ABAQUS是最有优势的。
目前ABAQUS软件在中国的用户已超过800家,涵盖汽车、航空航天、船舶、武器、工程机械、建筑、电子、石化和核能源等各个领域,如宝山钢铁集团、长春一汽、上海泛亚、中国船级社、北京石化设计院、江钻股份、摩托罗拉和诺基亚等。
2、功能介绍ABAQUS软件的功能可以归纳为线性分析、非线性分析和机构分析三大块。
•线性静力学、动力学和热传导–静强度/刚度、动力学和模态、热力学和声学等–金属和复合材料、应力、振动、 声场、压电效应等•非线性和瞬态分析–汽车碰撞、飞机坠毁、电子器件跌落, 冲击和损毁等–复合材料损伤、接触, 塑性失效, 断裂和磨损, 橡胶超弹性等 •多体动力学分析–起落架收放、副翼展开、汽车悬架、微机电系统MEMS、医疗器械等–结合刚体和柔体模拟各种连接件,进行运动过程的力学分析3、模块介绍ABAQUS软件主要由ABAQUS/CAE,ABAQUS/Standard,ABAQUS/Explicit三个模块组成。
abaqus2用户单元子程序
20 ABAQUS用户单元子程序(UEL)在这一章中将列举两个在这些年里发展过的ABAQUS/Standard用户单元子程序(UEL)。
第一个例子是一个非线性的索单元,我们的目的是通过这个比较简单的例子让读者了解用户单元子程序的基本开发过程;第二个例子是一个用于计算应变梯度理论的单元,应变梯度是当今比较热点的一个科研前沿问题,有各种理论,我们为了验证新的理论,需要数值结果与实验对照来进行评价,整个例子的目的是通过它说明用户子单元可以求解的问题范围很广,但是由于内容比较艰深,程序也很长,所以这个例子我们并没有给出最后的全部程序。
另外,到目前为止,ABAQUS还只有隐式求解器ABAQUS/Standard支持用户自定义单元,而显式求解器ABAQUS/Explicit中还不支持这一功能。
20.1 非线性索单元20.1.1 背景钢索斜拉桥和斜拉索结构广泛应用于土木工程建筑上。
索力的计算分析是设计和施工的关键环节。
清华大学工程力学系在采用ABAQUS进行荆沙长江斜拉桥的计算机仿真分析(这个项目我们已在第15章“ABAQUS在土木工程中的应用(一)——荆州长江大桥南汊斜拉桥结构三维仿真分析”中讨论过)时,也曾进行了自行建立索单元的尝试。
本节介绍的就是这方面的工作。
香港理工大学土木与结构工程系采用ABAQUS有限元软件进行计算,完成了香港Ting Kau斜拉桥和Tsing Ma悬索桥的结构计算和分析。
对于钢索计算,他们采用梁单元进行模拟。
由于梁单元含有弯曲刚度,计算的高阶频率值偏高,周期较低。
一般假设索是单向受拉力的构件。
随着应变的非线性增加,索力呈非线性增加。
尽管ABAQUS单元库中有500个以上的单元类型,但是,还没有索单元。
本文发展了三维非线性索单元模型,形成ABAQUS的用户单元子程序,可以利用ABAQUS输入文件调入到具体的分析中。
通过静态和动态例题的计算比较,索单元工作良好。
20.1.2 基本公式在三维索单元计算中,如图20-1所示,坐标x 和位移u 的变量表达式为:ij ji i j ji u u u x x x -=-= (x,y,z) (u,v,w) (20-1)应变的公式为:()⎥⎦⎤⎢⎣⎡+++++=222211ji ji ji ji ji ji ji ji ji w v u w z v y u x L ε (20-2)公式(20-2)中,L 为索的长度,索的张力为:0N AE N +=ε(20-3)在公式(20-3)中,A 为截面面积,E 为弹性模量,N 0为初始张力。
Abaqus User Subroutines Reference Guide 用户材料子程序帮助文档
1.1.41 UMATUser subroutine to define a material's mechanical behavior.Product: Abaqus/StandardWarning: The use of this subroutine generally requires considerable expertise. Y ou arecautioned that the implementation of any realistic constitutive model requires extensivedevelopment and testing. Initial testing on a single-element model with prescribedtraction loading is strongly recommended.References“User-defined mechanical material behavior,” Section 26.7.1 of the Abaqus Analysis User's Guide“User-defined thermal material behavior,” Section 26.7.2 of the Abaqus Analysis User's Guide*USER MA TERIAL“S D V I N I,” Section 4.1.11 of the Abaqus V erification Guide“U M A T and U H Y P E R,” Section 4.1.21 of the Abaqus V erification GuideOv erv iewUser subroutine U M A T:can be used to define the mechanical constitutive behavior of a material;will be called at all material calculation points of elements for which the material definition includes auser-defined material behavior;can be used with any procedure that includes mechanical behavior;can use solution-dependent state variables;must update the stresses and solution-dependent state variables to their values at the end of theincrement for which it is called;must provide the material Jacobian matrix, , for the mechanical constitutive model;can be used in conjunction with user subroutine U S D F L D to redefine any field variables before they are passed in; andis described further in “User-defined mechanical material behavior,” Section 26.7.1 of the AbaqusAnalysis User's Guide.Storage of stress and strain componentsIn the stress and strain arrays and in the matrices D D S D D E, D D S D D T, and D R P L D E, direct components are stored first, followed by shear components. There are N D I direct and N S H R engineering shear components. The order of the components is defined in “Conventions,” Section 1.2.2 of the Abaqus Analysis User's Guide. Since the number of active stress and strain components varies between element types, the routine must be coded toprovide for all element types with which it will be used.Defining local orientationsIf a local orientation (“Orientations,” Section 2.2.5 of the Abaqus Analysis User's Guide) is used at the same point as user subroutine U M A T, the stress and strain components will be in the local orientation; and, in the case of finite-strain analysis, the basis system in which stress and strain components are stored rotates with the material.StabilityY ou should ensure that the integration scheme coded in this routine is stable—no direct provision is made to include a stability limit in the time stepping scheme based on the calculations in U M A T.Convergence rateD D S D DE and—for coupled temperature-displacement and coupled thermal-electrical-structural analyses—D D S D D T, D R P L D E, and D R P L D T must be defined accurately if rapid convergence of the overall Newton scheme is to be achieved. In most cases the accuracy of this definition is the most important factor governing the convergence rate. Since nonsymmetric equation solution is as much as four times as expensive as the corresponding symmetric system, if the constitutive Jacobian (D D S D D E) is only slightly nonsymmetric (for example, a frictional material with a small friction angle), it may be less expensive computationally to use a symmetric approximation and accept a slower convergence rate.An incorrect definition of the material Jacobian affects only the convergence rate; the results (if obtained) are unaffected.Special considerations for various element typesThere are several special considerations that need to be noted.A v ailability of deformation gradientThe deformation gradient is available for solid (continuum) elements, membranes, and finite-strain shells(S3/S3R, S4, S4R, SAXs, and SAXAs). It is not available for beams or small-strain shells. It is stored as a 3× 3 matrix with component equivalence D F G R D0(I,J). For fully integrated first-order isoparametric elements (4-node quadrilaterals in two dimensions and 8-node hexahedra in three dimensions) the selectively reduced integration technique is used (also known as the technique). Thus, a modified deformation gradientis passed into user subroutine U M A T. For more details, see “Solid isoparametric quadrilaterals and hexahedra,”Section 3.2.4 of the Abaqus Theory Guide.Beams and shells that calculate transv erse shear energyIf user subroutine U M A T is used to describe the material of beams or shells that calculate transverse shear energy, you must specify the transverse shear stiffness as part of the beam or shell section definition to define the transverse shear behavior. 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 informationon specifying this stiffness.Open-section beam elementsWhen user subroutine U M A T is used to describe the material response of beams with open sections (for example, an I-section), the torsional stiffness is obtained aswhere J is the torsional constant, A is the section area, k is a shear factor, and is the user-specified transverse shear stiffness (see “Transverse shear stiffness definition” in “Choosing a beam element,” Section29.3.3 of the Abaqus Analysis User's Guide).E lements w ith hourglassing modesIf this capability is used to describe the material of elements with hourglassing modes, you must define the hourglass stiffness factor for hourglass control based on the total stiffness approach as part of the element section definition. The hourglass stiffness factor 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, for information on specifying the stiffness factor.Pipe-soil interaction elementsThe constitutive behavior of the pipe-soil interaction elements (see “Pipe-soil interaction elements,” Section 32.12.1 of the Abaqus Analysis User's Guide) is defined by the force per unit length caused by relative displacement between two edges of the element. The relative-displacements are available as “strains” (S T R A N and D S T R A N). The corresponding forces per unit length must be defined in the S T R E S S array. The Jacobian matrix defines the variation of force per unit length with respect to relative displacement.For two-dimensional elements two in-plane components of “stress” and “strain” exist (N T E N S=N D I=2, andN S H R=0). For three-dimensional elements three components of “stress” and “strain” exist (N T E N S=N D I=3, and N S H R=0).Large volume changes with geometric nonlinearityIf the material model allows large volume changes and geometric nonlinearity is considered, the exact definition of the consistent Jacobian should be used to ensure rapid convergence. These conditions are most commonly encountered when considering either large elastic strains or pressure-dependent plasticity. In the former case, total-form constitutive equations relating the Cauchy stress to the deformation gradient are commonly used; in the latter case, rate-form constitutive laws are generally used.For total-form constitutive laws, the exact consistent Jacobian is defined through the variation in Kirchhoff stress:Here, J is the determinant of the deformation gradient, is the Cauchy stress, is the virtual rate of deformation, and is the virtual spin tensor, defined asFor rate-form constitutive laws, the exact consistent Jacobian is given byUse with incompressible elastic materialsFor user-defined incompressible elastic materials, user subroutine U H Y P E R should be used rather than user subroutine U M A T. In U M A T incompressible materials must be modeled via a penalty method; that is, you must ensure that a finite bulk modulus is used. The bulk modulus should be large enough to model incompressibility sufficiently but small enough to avoid loss of precision. As a general guideline, the bulk modulus should be about – times the shear modulus. The tangent bulk modulus can be calculated fromIf a hybrid element is used with user subroutine U M A T, Abaqus/Standard will replace the pressure stress calculated from your definition of S T R E S S with that derived from the Lagrange multiplier and will modify the Jacobian appropriately.For incompressible pressure-sensitive materials the element choice is particularly important when using user subroutine U M A T. In particular, first-order wedge elements should be avoided. For these elements the technique is not used to alter the deformation gradient that is passed into user subroutine U M A T, which increases the risk of volumetric locking.Increments for which only the Jacobian can be definedAbaqus/Standard passes zero strain increments into user subroutine U M A T to start the first increment of all the steps and all increments of steps for which you have suppressed extrapolation (see “Defining an analysis,”Section 6.1.2 of the Abaqus Analysis User's Guide). In this case you can define only the Jacobian (D D S D D E).Utility routinesSeveral utility routines may help in coding user subroutine U M A T. Their functions include determining stress invariants for a stress tensor and calculating principal values and directions for stress or strain tensors. These utility routines are discussed in detail in “Obtaining stress invariants, principal stress/strain values and directions, and rotating tensors in an Abaqus/Standard analysis,” Section 2.1.11.U ser subroutine interfaceS U B R O U T I N E U M A T(S T R E S S,S T A T E V,D D S D D E,S S E,S P D,S C D,1R P L,D D S D D T,D R P L D E,D R P L D T,2S T R A N,D S T R A N,T I M E,D T I M E,T E M P,D T E M P,P R E D E F,D P R E D,C M N A M E,3N D I,N S H R,N T E N S,N S T A T V,P R O P S,N P R O P S,C O O R D S,D R O T,P N E W D T,4C E L E N T,D F G R D0,D F G R D1,N O E L,N P T,L A Y E R,K S P T,K S T E P,K I N C)CI N C L U D E'A B A_P A R A M.I N C'C H A R A C T E R*80C M N A M ED I ME N S I O N S T R E S S(N T E N S),S T A T E V(N S T A T V),1D D S D D E(N T E N S,N T E N S),D D S D D T(N T E N S),D R P L D E(N T E N S),2S T R A N(N T E N S),D S T R A N(N T E N S),T I M E(2),P R E D E F(1),D P R E D(1),3P R O P S(N P R O P S),C O O R D S(3),D R O T(3,3),D F G R D0(3,3),D F G R D1(3,3)user coding to define D D S D D E,S T R E S S,S T A T E V,S S E,S P D,S C Dand, if necessary,R P L,D D S D D T,D R P L D E,D R P L D T,P N E W D TR E T U R NE N DV ariables to be definedIn all situationsD D S D D E(N TE N S,N T E N S)Jacobian matrix of the constitutive model, , where are the stress increments and are the strain increments. D D S D D E(I,J) defines the change in the I th stress component at the end of the time increment caused by an infinitesimal perturbation of the J th component of the strain increment array.Unless you invoke the unsymmetric equation solution capability for the user-defined material,Abaqus/Standard will use only the symmetric part of D D S D D E. The symmetric part of the matrix iscalculated by taking one half the sum of the matrix and its transpose.S T R E S S(N T E N S)This array is passed in as the stress tensor at the beginning of the increment and must be updated in this routine to be the stress tensor at the end of the increment. If you specified initial stresses (“Initial conditions in Abaqus/Standard and Abaqus/Explicit,” Section 34.2.1 of the Abaqus Analysis User's Guide), this array will contain the initial stresses at the start of the analysis. The size of this array depends on the value of N T E N S as defined below. In finite-strain problems the stress tensor has already been rotated to account for rigid body motion in the increment before U M A T is called, so that only the corotational part of the stress integration should be done in U M A T. The measure of stress used is “true” (Cauchy) stress.S T A T E V(N S T A T V)An array containing the solution-dependent state variables. These are passed in as the values at thebeginning of the increment unless they are updated in user subroutines U S D F L D or U E X P A N, in which case the updated values are passed in. In all cases S T A T E V must be returned as the values at the end of the increment. The size of the array is defined as described in “Allocating space” in “User subroutines:overview,” Section 18.1.1 of the Abaqus Analysis User's Guide.In finite-strain problems any vector-valued or tensor-valued state variables must be rotated to account for rigid body motion of the material, in addition to any update in the values associated with constitutivebehavior. The rotation increment matrix, D R O T, is provided for this purpose.S S E,S P D,S C DSpecific elastic strain energy, plastic dissipation, and “creep” dissipation, respectively. These are passed in as the values at the start of the increment and should be updated to the corresponding specific energy values at the end of the increment. They have no effect on the solution, except that they are used forenergy output.Only in a fully coupled thermal-stress or a coupled thermal-electrical-structural analysisR P LV olumetric heat generation per unit time at the end of the increment caused by mechanical working of the material.D D S D D T(N TE N S)V ariation of the stress increments with respect to the temperature.D R P L D E(N TE N S)V ariation of R P L with respect to the strain increments.D R P L D TV ariation of R P L with respect to the temperature.Only in a geostatic stress procedure or a coupled pore fluid diffusion/stress analysis for pore pressure cohesive elementsR P LR P L is used to indicate whether or not a cohesive element is open to the tangential flow of pore fluid. Set R P L equal to 0 if there is no tangential flow; otherwise, assign a nonzero value to R P L if an element is open.Once opened, a cohesive element will remain open to the fluid flow.V ariable that can be updatedP N E W D TRatio of suggested new time increment to the time increment being used (D T I M E, see discussion later in this section). This variable allows you to provide input to the automatic time incrementation algorithms in Abaqus/Standard (if automatic time incrementation is chosen). For a quasi-static procedure the automatic time stepping that Abaqus/Standard uses, which is based on techniques for integrating standard creep laws (see “Quasi-static analysis,” Section 6.2.5 of the Abaqus Analysis User's Guide), cannot becontrolled from within the U M A T subroutine.P N E W D T is set to a large value before each call to U M A T.If P N E W D T is redefined to be less than 1.0, Abaqus/Standard must abandon the time increment andattempt it again with a smaller time increment. The suggested new time increment provided to theautomatic time integration algorithms is P N E W D T × D T I M E, where the P N E W D T used is the minimum value for all calls to user subroutines that allow redefinition of P N E W D T for this iteration.If P N E W D T 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 suggestednew time increment provided to the automatic time integration algorithms is P N E W D T × D T I M E, where the P N E W D T 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 P N E W D T that aregreater than 1.0 will be ignored and values of P N E W D T that are less than 1.0 will cause the job to terminate. V ariables passed in for informationS T R A N(N T E N S)An array containing the total strains at the beginning of the increment. If thermal expansion is included in the same material definition, the strains passed into U M A T are the mechanical strains only (that is, thethermal strains computed based upon the thermal expansion coefficient have been subtracted from the total strains). These strains are available for output as the “elastic” strains.In finite-strain problems the strain components have been rotated to account for rigid body motion in the increment before U M A T is called and are approximations to logarithmic strain.D S T R A N(N TE N S)Array of strain increments. If thermal expansion is included in the same material definition, these are the mechanical strain increments (the total strain increments minus the thermal strain increments).T I M E(1)V alue of step time at the beginning of the current increment or frequency.T I M E(2)V alue of total time at the beginning of the current increment.D T I M ETime increment.T E M PTemperature at the start of the increment.D TE M PIncrement of temperature.P R E D E FArray of interpolated values of predefined field variables at this point at the start of the increment, based on the values read in at the nodes.D P RE DArray of increments of predefined field variables.C M N A M EUser-defined material name, left justified. Some internal material models are given names starting with the “ABQ_” character string. To avoid conflict, you should not use “ABQ_” as the leading string for C M N A M E. N D INumber of direct stress components at this point.N S H RNumber of engineering shear stress components at this point.N T E N SSize of the stress or strain component array (N D I + N S H R).N S T A T VNumber of solution-dependent state variables that are associated with this material type (defined asdescribed in “Allocating space” in “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User's Guide).P R O P S(N P R O P S)User-specified array of material constants associated with this user material.N P R O P SUser-defined number of material constants associated with this user material.C O O RD SAn array containing the coordinates of this point. These are the current coordinates if geometricnonlinearity 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.D R O T(3,3)Rotation increment matrix. This matrix represents the increment of rigid body rotation of the basis system in which the components of stress (S T R E S S) and strain (S T R A N) are stored. It is provided so that vector-or tensor-valued state variables can be rotated appropriately in this subroutine: stress and straincomponents are already rotated by this amount before U M A T is called. This matrix is passed in as a unit matrix for small-displacement analysis and for large-displacement analysis if the basis system for thematerial point rotates with the material (as in a shell element or when a local orientation is used).C E L E N TCharacteristic element length, which is a typical length of a line across an element for a first-order element;it is half of the same typical length for a second-order element. For beams and trusses it is a characteristic length along the element axis. For membranes and shells it is a characteristic length in the referencesurface. For axisymmetric elements it is a characteristic length in the plane only. For cohesiveelements it is equal to the constitutive thickness.D F G R D0(3,3)Array containing the deformation gradient at the beginning of the increment. If a local orientation is defined at the material point, the deformation gradient components are expressed in the local coordinate system defined by the orientation at the beginning of the increment. For a discussion regarding the availability of the deformation gradient for various element types, see “Availability of deformation gradient.”D F G R D1(3,3)Array containing the deformation gradient at the end of the increment. If a local orientation is defined at the material point, the deformation gradient components are expressed in the local coordinate system defined by the orientation. This array is set to the identity matrix if nonlinear geometric effects are not included in the step definition associated with this increment. For a discussion regarding the availability of thedeformation gradient for various element types, see “Availability of deformation gradient.”N O E LElement number.N P TIntegration point number.L A Y E RLayer number (for composite shells and layered solids).K S P TSection point number within the current layer.K S T E PStep number.K I N CIncrement number.Example: Using more than one user-defined mechanical material modelTo use more than one user-defined mechanical material model, the variable C M N A M E can be tested for different material names inside user subroutine U M A T as illustrated below:I F(C M N A M E(1:4).E Q.'M A T1')T H E NC A L L U M A T_M A T1(argument_list)E L S E I F(C M N A M E(1:4).E Q.'M A T2')T H E NC A L L U M A T_M A T2(argument_list)E N D I FU M A T_M A T1 and U M A T_M A T2 are the actual user material subroutines containing the constitutive material models for each material M A T1 and M A T2, respectively. Subroutine U M A T merely acts as a directory here. The argument list may be the same as that used in subroutine U M A T.Example: Simple linear viscoelastic materialAs a simple example of the coding of user subroutine U M A T, consider the linear, viscoelastic model shown in Figure 1.1.41–1. Although this is not a very useful model for real materials, it serves to illustrate how to code the routine.Figure 1.1.41–1 Simple linear viscoelastic model.The behavior of the one-dimensional model shown in the figure iswhere and are the time rates of change of stress and strain. This can be generalized for small straining of an isotropic solid asandwhereand , , , , and are material constants ( and are the Lamé constants).A simple, stable integration operator for this equation is the central difference operator:where f is some function, is its value at the beginning of the increment, is the change in the function over the increment, and is the time increment.Applying this to the rate constitutive equations above givesandso that the Jacobian matrix has the termsandThe total change in specific energy in an increment for this material iswhile the change in specific elastic strain energy iswhere D is the elasticity matrix:No state variables are needed for this material, so the allocation of space for them is not necessary. In a morerealistic case a set of parallel models of this type might be used, and the stress components in each model might be stored as state variables.For our simple case a user material definition can be used to read in the five constants in the order , , , , and so thatThe routine can then be coded as follows:S U B R O U T I N E U M A T(S T R E S S,S T A T E V,D D S D D E,S S E,S P D,S C D,1R P L,D D S D D T,D R P L D E,D R P L D T,2S T R A N,D S T R A N,T I M E,D T I M E,T E M P,D T E M P,P R E D E F,D P R E D,C M N A M E,3N D I,N S H R,N T E N S,N S T A T V,P R O P S,N P R O P S,C O O R D S,D R O T,P N E W D T,4C E L E N T,D F G R D0,D F G R D1,N O E L,N P T,L A Y E R,K S P T,K S T E P,K I N C)CI N C L U D E'A B A_P A R A M.I N C'CC H A R A C T E R*80C M N A M ED I ME N S I O N S T R E S S(N T E N S),S T A T E V(N S T A T V),1D D S D D E(N T E N S,N T E N S),2D D S D D T(N T E N S),D R P L D E(N T E N S),3S T R A N(N T E N S),D S T R A N(N T E N S),T I M E(2),P R E D E F(1),D P R E D(1),4P R O P S(N P R O P S),C O O R D S(3),D R O T(3,3),D F G R D0(3,3),D F G R D1(3,3)D I ME N S I O N D S T R E S(6),D(3,3)CC E V A L U A T E N E W S T R E S S T E N S O RCE V=0.D E V=0.D O K1=1,N D IE V=E V+S T R A N(K1)D E V=D E V+D S T R A N(K1)E N D D OCT E R M1=.5*D T I M E+P R O P S(5)T E R M1I=1./T E R M1T E R M2=(.5*D T I M E*P R O P S(1)+P R O P S(3))*T E R M1I*D E VT E R M3=(D T I M E*P R O P S(2)+2.*P R O P S(4))*T E R M1ICD O K1=1,N D ID S T RE S(K1)=T E R M2+T E R M3*D S T R A N(K1)1+D T I M E*T E R M1I*(P R O P S(1)*E V2+2.*P R O P S(2)*S T R A N(K1)-S T R E S S(K1))S T R E S S(K1)=S T R E S S(K1)+D S T R E S(K1)E N D D OCT E R M2=(.5*D T I M E*P R O P S(2)+P R O P S(4))*T E R M1II1=N D ID O K1=1,N S H RI1=I1+1D S T RE S(I1)=T E R M2*D S T R A N(I1)+1D T I M E*T E R M1I*(P R O P S(2)*S T R A N(I1)-S T R E S S(I1)) S T R E S S(I1)=S T R E S S(I1)+D S T R E S(I1)E N D D OCC C R E A T E N E W J A C O B I A NCT E R M2=(D T I M E*(.5*P R O P S(1)+P R O P S(2))+P R O P S(3)+12.*P R O P S(4))*T E R M1IT E R M3=(.5*D T I M E*P R O P S(1)+P R O P S(3))*T E R M1ID O K1=1,N TE N SD O K2=1,N TE N SD D S D D E(K2,K1)=0.E N D D OE N D D OCD O K1=1,N D ID D S D D E(K1,K1)=TE R M2E N D D OCD O K1=2,N D IN2=K1–1D O K2=1,N2D D S D D E(K2,K1)=TE R M3D D S D D E(K1,K2)=TE R M3E N D D OE N D D OT E R M2=(.5*D T I M E*P R O P S(2)+P R O P S(4))*T E R M1II1=N D ID O K1=1,N S H RI1=I1+1D D S D D E(I1,I1)=TE R M2E N D D OCC T O T A L C H A N G E I N S P E C I F I C E N E R G YCT D E=0.D O K1=1,N TE N ST D E=T D E+(S T R E S S(K1)-.5*D S T R E S(K1))*D S T R A N(K1)E N D D OCC C H A N G E I N S P E C I F I C E L A S T I C S T R A I N E N E R G YCT E R M1=P R O P S(1)+2.*P R O P S(2)D O K1=1,N D ID(K1,K1)=T E R M1E N D D OD O K1=2,N D IN2=K1-1D O K2=1,N2D(K1,K2)=P R O P S(1)D(K2,K1)=P R O P S(1)E N D D OE N D D OD E E=0.D O K1=1,N D IT E R M1=0.T E R M2=0.D O K2=1,N D IT E R M1=T E R M1+D(K1,K2)*S T R A N(K2)T E R M2=T E R M2+D(K1,K2)*D S T R A N(K2)E N D D OD E E=D E E+(T E R M1+.5*T E R M2)*D S T R A N(K1)E N D D OI1=N D ID O K1=1,N S H RI1=I1+1D E E=D E E+P R O P S(2)*(S T R A N(I1)+.5*D S T R A N(I1))*D S T R A N(I1)E N D D OS S E=S S E+D E ES C D=S C D+T D E– D E ER E T U R NE N D。
完整word版ABAQUS中Fortran子程序调用方法—自己总结
第一种方法:在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在Usersubroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。
第二种方法:1. 建立工作目录?崠2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或aba_param_sp.inc 拷贝到工作目录,并改名为aba_param.inc;3. 将编译的fortran程序拷贝到工作目录;4.将.obj文件拷贝到工作目录;5. 建立好输入文件.inp;6. 运行abaqus job=inp_name user=fortran name即可。
以下是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1子程序格式(程序后缀是.f; .f90; .for;.obj??)答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。
ABAQUS中Fortran子程序调用方法—自己总结
ABAQUS中Fortran子程序调用方法—自己总结第一种方法: 在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择您要调用的子程序文件(后缀为、for或、f)。
第二种方法:1、建立工作目录2、将Abaqus安装目录\6、4-pr11\site下的aba_param_dp、inc 或aba_param_sp、inc拷贝到工作目录,并改名为aba_param、inc;3、将编译的fortran程序拷贝到工作目录;4、将、obj文件拷贝到工作目录;5、建立好输入文件、inp;6、运行abaqus job=inp_name user=fortran name即可。
以下就是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU、lib与动态库standardU、dll,还有其它一些临时文件,而它的主程序(如standard、exe与explicit、exe等)则没有任何改变,由此瞧来ABAQUS就是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\Local Settings\Temp\中才能找到,这也就是6楼所说的藏了一些工作吧,大家不妨试一下。
1子程序格式(程序后缀就是、f; 、f90; 、for;、obj??)答:我试过,、for格就是应该就是不可以的,至少6、2与6、3版本应该就是不行,其她的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名就是、for(、f,、f90应该都不行的,手册上也有讲过),只有在username、for文件没有找到的情况下,才会去搜索username、obj,如果两者都没有,就会报错误信息。
ABAQUS用户子程序
将没有任何影响的。也就是说,ABAQUS中调用的时候,实际并不存在这个错误。FT,忘了
说一句了,你把ABA_PARAM.INC.dp或ABA_PARAM.INC.sp拷到你的程序工作空间后 ,应该将
几个关于子程序的问题及相应解答
Q 本人在用umat作本构模型时,
static,
1,500,0.000001,0.1 此时要求的增量步很多,即每次增量要很小,
static
1,500 时,在弹性向塑性过度时,出现错误,增量过大,出现尖点.
A YOU CAN TRY AS FOLLOWS
PARAMETER (PLOAD=100.E4)
IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小
P=PLOAD
ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小
P=COORDS(1)PLOAD !施加在积分点的荷载P是坐标的函数
态变量矩阵中的任何矢量或者张量都必须通过旋转来考虑材料的刚体运动。
状态变量矩阵的维数,等于关键字“DEPVAR”定义的数值。状态变量矩阵的维数通过ABAQUS 输入文件中的关键字“DEPVAR”定义,关键字下面数据行的数值即为状态变量矩阵的维数。
材料常数的个数,等于关键字“USER MATERIAL”中“CONSTANTS”常数设定的值。
STRESS (NTENS)
应力张量矩阵,对应NDI 个直接分量和NSHR 个剪切分量。在增量步的开始,应力张量矩阵中的数值通过UMAT 和主程序之间的接口传递到UMAT 中,在增量步的结束UMAT 将对应力张量矩阵更新。对于包含刚体转动的有限应变问题,一个增量步调用UMAT 之前就已经对应力张量的进行了刚体转动,因此在UMAT 中只需处理应力张量的共旋部分。UMAT 中应力张量的度量为柯西(真实)应力。
最新ABAQUS用户子程序
ABAQUS用户子程序123ABAQUS/Standard subroutines:41.CREEP: Define time-dependent, viscoplastic behavior (creep and 5swelling).6定义和时间相关的、粘塑性的运动(蠕变和膨胀)2. DFLOW: Define nonuniform pore fluid velocity in a 78consolidation analysis.9在压实分析中,定义非均匀孔隙流速度3. DFLUX: Define nonuniform distributed flux in a heat transfer1011or mass diffusion analysis.在热传递和质量扩散分析中,定义非均匀的分布流量12134. DISP: Specify prescribed boundary conditions.14指定规定的边界条件5. DLOAD: Specify nonuniform distributed loads.1516指定非均匀的分布荷载176. FILM: Define nonuniform film coefficient and associated sink 18temperatures for heat19transfer analysis.20对热传递分析指定非均匀的膜层散热系数和联合的散热器温度7. FLOW: Define nonuniform seepage coefficient and associated2122sink pore pressure for23consolidation analysis.对压实分析定义非均匀的渗流系数和渗入孔隙压力24258. FRIC: Define frictional behavior for contact surfaces.26对接触面定义摩擦279. GAPCON: Define conductance between contact surfaces or nodes 28in a fully coupled29temperature-displacement analysis or pure heat transfer analysis.30在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义31接触面或节点间的导热系数。
浅谈ABAQUS用户子程序
Home浅谈ABAQUS用户子程序李青清华大学工程力学系摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。
关键字ABAQUS,用户子程序,应用程序,结果文件一、前言:ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。
ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。
这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。
例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。
二.在ABAQUS中使用用户子程序ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。
在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。
运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下:ABAQUS JOB=[JOB] USER¡[.FOR]¡C用户在编写用户子程序时,要注意以下几点:1.用户子程序不能嵌套。
即任何用户子程序都不能调用任何其他用户子程Home序,但可以调用用户自己编写的FORTRAN子程序和ABAQUS应用程序。
abaqus用户子程序vusdfld单元 积分点出的极限应变
abaqus用户子程序vusdfld单元积分点出的极限应变(实用版)目录一、引言二、Abaqus 用户子程序概述三、VUSDFLD 单元的简介四、积分点出的极限应变计算方法五、结论正文一、引言Abaqus 是一款广泛应用于各个领域的有限元分析软件,用户可以根据实际需求通过编写用户子程序来实现特定的计算功能。
在本文中,我们将介绍如何利用 Abaqus 用户子程序对 VUSDFLD 单元的积分点出的极限应变进行计算。
二、Abaqus 用户子程序概述Abaqus 用户子程序是用户自定义的功能模块,可以根据用户的需求进行编写。
用户子程序在 Abaqus 中的应用非常广泛,例如材料属性定义、边界条件设置、后处理等。
通过编写用户子程序,用户可以实现对模型的更加精确和复杂的分析。
三、VUSDFLD 单元的简介VUSDFLD 单元是 Abaqus 中的一种复合材料单元,可以用于模拟复合材料的力学性能。
VUSDFLD 单元包含多个子区域,每个子区域的材料属性可以不同。
这种单元适用于模拟具有明显材料性能梯度的复合材料结构。
四、积分点出的极限应变计算方法在 Abaqus 中,通过编写用户子程序可以实现对 VUSDFLD 单元的积分点出的极限应变的计算。
具体步骤如下:1.首先,在用户子程序中定义一个函数,用于计算积分点出的极限应变。
该函数需要接收模型的节点坐标、单元坐标和材料属性作为输入参数。
2.使用 Abaqus 提供的 API 接口,遍历模型的所有节点和单元。
对于每个节点和单元,计算其对应的积分点出的极限应变。
3.将计算得到的积分点出的极限应变保存到用户自定义的数据区域,以便在后处理中使用。
五、结论通过编写 Abaqus 用户子程序,可以实现对 VUSDFLD 单元的积分点出的极限应变的计算。
这种方法具有较高的灵活性和准确性,可以满足复合材料结构分析的需求。
abaqus用户子程序vusdfld单元 积分点出的极限应变
abaqus用户子程序vusdfld单元积分点出的极限应变(最新版)目录1.Abaqus 用户子程序概述2.VUSDFLD 单元介绍3.积分点出的极限应变计算方法4.应用实例与注意事项正文【1.Abaqus 用户子程序概述】Abaqus 是一款广泛应用于工程领域的有限元分析软件,其强大的功能和灵活的接口使得用户可以根据实际需求进行自定义和扩展。
用户子程序是 Abaqus 提供的一种编程接口,可以通过编写 C 或 Fortran 语言的程序,实现对 Abaqus 求解过程的控制和结果的后处理。
【2.VUSDFLD 单元介绍】VUSDFLD 单元是 Abaqus 中的一种通用粘结滑移软弹簧非线性几何单元,适用于模拟材料在复杂应力/应变路径下的非线性行为。
该单元可以描述材料在拉伸、压缩、剪切和扭转过程中的非线性特性,广泛应用于橡胶、泡沫、复合材料等非线性材料的分析中。
【3.积分点出的极限应变计算方法】在 Abaqus 中,通过用户子程序可以实现对 VUSDFLD 单元积分点出的极限应变的计算。
具体步骤如下:(1)首先,在用户子程序中定义一个函数,用于计算 VUSDFLD 单元的积分点出的极限应变。
该函数需要接收单元的各阶导数作为输入参数,并返回积分点出的极限应变。
(2)然后,在 Abaqus 的脚本中,通过调用该函数,获取 VUSDFLD 单元的积分点出的极限应变。
【4.应用实例与注意事项】在实际应用中,用户可以根据具体的材料特性和加载条件,编写相应的用户子程序,实现对 VUSDFLD 单元积分点出的极限应变的计算。
在编写过程中,需要注意以下几点:(1)正确定义函数输入输出参数,与 Abaqus 的接口保持一致。
(2)确保函数的计算过程正确无误,避免出现数值不稳定或误差较大的情况。
(3)在实际应用中,可能需要根据不同的材料特性和加载条件,调整用户子程序的计算参数,以获得更准确的结果。
21ABAQUS用户材料子程序_1502407
21 ABAQUS用户材料子程序(UMAT)虽然ABAQUS为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题;但是实际问题毕竟非常复杂,ABAQUS不可能直接求解所有可能出现的问题。
所以ABAQUS提供了大量的用户自定义子程序(User Subroutine),允许用户在找不到合适模型的情况下自行定义符合自己问题的模型。
这些用户子程序涵盖了建模、载荷到单元的几乎各个部分。
用户子程序具有以下的功能和特点:(1)如果ABAQUS的一些固有选项模型功能有限,用户子程序可以提高ABAQUS中这些选项的功能;(2)通常用户子程序是用FORTRAN语言的代码写成;(3)它可以以几种不同的方式包含在模型中;(4)由于它们没有存储在restart文件中,如果需要的话,可以在重新开始运行时修改它;(5)在某些情况下它可以利用ABAQUS允许的已有程序。
要在模型中包含用户子程序,可以利用ABAQUS执行程序,在执行程序中应用user 选项指明包含这些子程序的FORTRAN源程序或者目标程序的名字。
提示:ABAQUS的输入文件除了可以通过ABAQUS/CAE的作业模块中提交运行外,还可以在ABAQUS Command窗口中输入ABAQUS执行程序直接运行:ABAQUS job=输入文件名 user=用户子程序的Fortran文件名ABAQUS/Standard和ABAQUS/Explicit都支持用户子程序功能,但是他们所支持的用户子程序种类不尽相同,读者在需要使用时请注意查询手册。
在接下来的两章里,我们将讨论两种常用的用户子程序——用户材料子程序和用户单元子程序。
本章将通过在ABAQUS/Standard中创建Johnson-Cook的材料模型,介绍编写ABAQUS/Standard的用户材料子程序UMAT。
在ABAQUS/Explicit中编写用户材料子程序VUMAT与之相似,但是由于隐式和显式两种方法本身的差异,它们之间也有一些不同,请读者在具体使用前仔细查阅ABAQUS手册中的相关内容。
ABAQUS VUMAT初学者用户子程序小例子
trace = strainInc(i,1) + strainInc(i,2) + strainInc(i,3)
sig1 = stressOld(i,1) + alamda*trace + twomu*strainInc(i,1)
sig2 = stressOld(i,2) + alamda*trace + twomu*strainInc(i,2)
4 tempOld, stretchOld, defgradOld, fieldOld,
3 stressOld, stateOld, enerInternOld, enerInelasOld,
6 tempNew, stretchNew, defgradNew, fieldNew,
C Write only -
alamda = twomu * ( e - twomu ) / ( sixmu - two * e )
term = one / ( twomu * ( one + hard/thremu ) )
con1 = sqrt( twoThirds )
C
do 100 i = 1,nblock
C
C Trial stress
用户子程序文件可以使用文本编辑器进行编辑当然也可以用fortran编译器如果对自己的用户子程序文件的语法不放心可以先用fortan编译器进行编译不过编译前要先建立project关于fortran编译这里不再介绍
上一次发过《ABAQUS 初学者用户子程序小例子》,給学习 UMAT 的初学者带来了一定的帮助。现在用到 VUMAT,发现网上 这种小例子很少,关于 VUMAT 的资料也不多。摸索了一天,做个 VUMAT 的小例子供大家分享。
ABAQUS用户材料子程序开发及应用
ABAQUS用户材料子程序开发及应用ABAQUS用户材料子程序开发及应用摘要:本文介绍了ABAQUS用户材料子程序的开发与应用。
首先,简要介绍了ABAQUS软件及其在工程领域的广泛应用。
然后,详细阐述了用户材料子程序的概念及作用,并介绍了子程序的开发流程和必要步骤。
接着,以一个具体的材料模型开发为例,详细介绍了子程序的实现方法和注意事项。
最后,以轴对称挤压模拟为例,展示了用户材料子程序在实际工程分析中的应用,并讨论了其优点和局限性。
关键词:ABAQUS;用户材料子程序;开发;应用一、引言ABAQUS是一款广泛应用于工程领域的有限元分析软件。
其强大的建模和分析能力使得工程师可以准确地模拟和分析各种结构和材料的行为。
然而,对于一些非标准材料或特殊材料,ABAQUS自带的材料模型可能无法满足工程师的需求。
此时,用户材料子程序的开发就显得尤为重要。
二、用户材料子程序的概念及作用用户材料子程序是指由ABAQUS用户自行编写的用于描述非标准材料行为的子程序。
它可以根据特定的材料性质和应变-应力关系,定义材料模型的行为,并将其与ABAQUS的有限元分析过程相结合。
通过用户材料子程序,工程师可以更加准确地模拟和分析特殊材料的行为,提高分析结果的可靠性和准确性。
三、用户材料子程序的开发流程和步骤用户材料子程序的开发包括以下几个基本步骤:1. 确定材料模型:根据实际需要和具体材料的性质,选择合适的材料模型。
常见的模型包括线弹性模型、塑性模型、粘弹性模型等。
2. 编写用户材料子程序:使用合适的编程语言(如Fortran)编写用户材料子程序,实现材料模型的行为。
子程序应包括材料刚度矩阵计算、应力和塑性应变更新等关键计算部分。
3. 软件接口设置:将编写好的用户材料子程序与ABAQUS 软件进行接口设置,以实现子程序与有限元分析的集成。
4. 验证与调试:使用合适的测试用例对子程序进行验证和调试,确保其计算结果与实际情况吻合。
ABAQUS中Fortran子程序调用方法-自己总结
第一种方法:在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。
第二种方法:1. 建立工作目录2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或 aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;3. 将编译的fortran程序拷贝到工作目录;4. 将.obj文件拷贝到工作目录;5. 建立好输入文件.inp;6. 运行abaqus job=inp_name user=fortran name即可。
以下是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe 等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\LocalSettings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1 子程序格式(程序后缀是.f; .f90; .for;.obj??)答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for (.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。
ABAQUS用户子程序
A B A Q U S用户子程序(总4页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.MarchABAQUS用户子程序ABAQUS/Standard subroutines:: Define time-dependent, viscoplastic behavior (creep and swelling).定义和时间相关的、粘塑性的运动(蠕变和膨胀)2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis.在压实分析中,定义非均匀孔隙流速度3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis.在热传递和质量扩散分析中,定义非均匀的分布流量4. DISP: Specify prescribed boundary conditions.指定规定的边界条件5. DLOAD: Specify nonuniform distributed loads.指定非均匀的分布荷载6. FILM: Define nonuniform film coefficient and associated sink temperatures for heattransfer analysis.对热传递分析指定非均匀的膜层散热系数和联合的散热器温度7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis.对压实分析定义非均匀的渗流系数和渗入孔隙压力8. FRIC: Define frictional behavior for contact surfaces.对接触面定义摩擦9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis.在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。
ABAQUS中Fortran子程序调用方法-自己总结
第一种方法:在Job模块里,创立工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件〔后缀为.for或.f〕。
第二种方法:1. 建立工作目录2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或拷贝到工作目录,并改名为;3. 将编译的fortran程序拷贝到工作目录;4.将.obj文件拷贝到工作目录;5. 建立好输入文件.inp;6. 运行abaqus job=inp_name user=fortran name即可。
以下是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库和动态库,还有其它一些临时文件,而它的主程序〔如等〕那么没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束那么删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1子程序格式(程序后缀是.f; .f90; .for;.obj??)答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for 〔.f,.f90应该都不行的,手册上也有讲过〕,只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1.38 UINTERUser subroutine to define surface interaction behavior for contact surfaces.Product: Abaqus/StandardReferences“User-defined interfacial constitutive behavior,” Section 36.1.6 of the Abaqus Analysis User'sManual*SURFACE INTERACTION“U I N T E R,” Section 4.1.20 of the Abaqus Verification ManualOverviewUser subroutine U I N T E R:is called at points on the slave surface of a contact pair with a user-defined constitutive modeldefining 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 36.1.2 of the Abaqus Analysis User'sManual) or the extended versions of the classical Coulomb friction model (“Frictional behavior,”Section 36.1.5 of the Abaqus Analysis User's Manual) are too restrictive and a more complexdefinition 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 interaction between thecontacting surfaces for direct steady-state dynamic analysis;can use and update solution-dependent state variables; andis not available for contact elements.User subroutine interfaceS U B R O U T I N E U I N T E R(S T R E S S,D D S D D R,D V I S C O U S,D S T R U C T U R A L,F L U X,D D F D D T,1D D S D D T,D D F D D R,S T A T E V,S E D,S F D,S P D,S V D,S C D,P N E W D T,R D I S P,2D R D I S P,3T E M P,D T E M P,P R E D E F,D P R E D,T I M E,D T I M E,F R E Q R,C I N A M E,S L N A M E,4M S N A M E,5P R O P S,C O O R D S,A L O C A L D I R,D R O T,A R E A,C H R L N G T H,N O D E,N D I R,N S T A T V,6N P R E D,N P R O P S,M C R D,K S T E P,K I N C,K I T,L I N P E R,L O P E N C L O S E,L S T A T E,7L S D I,L P R I N T)CI N C L U D E'A B A_P A R A M.I N C'CC H A R A C T E R*80C I N A M E,S L N A M E,M S N A M ED I ME N S I O N S T R E S S(N D I R),D D S D D R(N D I R,N D I R),F L U X(2),D D F D D T(2,2),1D D S D D T(N D I R,2),D D F D D R(2,N D I R),S T A T E V(N S T A T V),2R D I S P(N D I R),D R D I S P(N D I R),T E M P(2),D T E M P(2),P R E D E F(2,N P R E D),3D P R E D(2,N P R E D),T I M E(2),P R O P S(N P R O P S),C O O R D S(M C R D),4A L O C A L D I R(3,3),D R O T(2,2),D V I S C O U S(N D I R,N D I R),5D S T R U C T U R A L(N D I R,N D I R)user coding to define S T R E S S,D D S D D R,F L U X,D D F D D T,D D S D D T,D D F D D R,and, optionally,S T A T E V,S E D,S F D,S P D,S V D,S C D,P N E W D T,L O P E N C L O S E,L S T A T E,L S D I,D V I S C O U S,D S T R U C T U R A LR E T U R NE N DVariables to be definedS T R E S S(N D I R)This array is passed in as the stress between the slave and master surfaces at the beginning of theincrement 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 A L O C D I R). This variable must be defined for astress/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.D D S D D R(N D I R,N D I R)Interface stiffness matrix. D D S D D R(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 relativedisplacement 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 “User-defined interfacial constitutive behavior,” Section 36.1.6 of the Abaqus Analysis User'sManual), Abaqus/Standard will use only the symmetric part of D D S D D R. For a particular off-diagonal (I,J) entry, the symmetrization is done by halving the sum of (I,J) and (J,I) components. D D S D D R must be defined for a stress/displacement, a fully coupled temperature-displacement, or a coupled thermal-electrical-structural analysis to ensure proper convergence characteristics.F L U X(2)Magnitude of the heat flux flowing into the slave and master surfaces, respectively. This array is passed in as the value at the beginning of the increment and must be updated to the flux at the end of theincrement. The convention for defining the flux is that a positive flux indicates heat flowing into asurface, while a negative flux indicates heat flowing out of the surface. This variable must be defined fora heat transfer, a fully coupled temperature-displacement, or a coupled thermal-electrical-structuralanalysis. The sum of these two flux terms represents the heat generated in the interface, and thedifference in these flux terms represents the heat conducted through the interface.D D F D D T(2,2)The negative of the variation of the flux at the two surfaces with respect to their respectivetemperatures, for a fixed relative displacement. This variable must be defined for a heat transfer, a fully coupled temperature-displacement, or a coupled thermal-electrical-structural analysis to ensure proper convergence characteristics. The entries in the first row contain the negatives of the derivatives ofF L U X(1)with respect to T E M P(1)and T E M P(2), respectively. The entries in the second row containthe negatives of the corresponding derivatives of F L U X(2).D D S D D T(N D I R,2)Variation of the stress with respect to the temperatures of the two surfaces for a fixed relativedisplacement. This variable is required only for thermally coupled elements (in a fully coupledtemperature-displacement or a coupled thermal-electrical-structural analysis), in which the stress is a function of the surface temperatures. D D S D D T(N D I R,1)corresponds to the slave surface, andD D S D D T(N D I R,2)corresponds to the master surface.D D F D D R(2,N D I R)Variation of the flux with respect to the relative displacement between the two surfaces. This variable is required only for thermally coupled elements (in a fully coupled temperature-displacement or a coupled thermal-electrical-structural analysis), in which the flux is a function of the relative displacement.D D F D D R(1,N D I R)corresponds to the slave surface, and D D F D D R(2,N D I R)corresponds to the mastersurface.Variables that can be updatedD V I S C O U S(N D I R,N D I R)Interface viscous damping matrix that can be used only in direct steady-state dynamic analysis.D V I S C O U S(I,J)defines an element in the material viscous damping matrix at the current frequency.Abaqus/Standard requires that this element is defined as a damping value for each of the (I, J) entries times the current frequency value F R E Q R obtained from the argument list.Unless you invoke the unsymmetric equation solution capability in the contact property model definition (“Use with the unsymmetric equation solver in Abaqus/Standard” in “User-defined interfacialconstitutive behavior,” Section 36.1.6 of the Abaqus Analysis User's Manual), Abaqus/Standard uses only the symmetric part of D V I S C O U S. For a particular off-diagonal (I, J) entry the symmetrization is done by halving the sum of the (I, J) and (J, I) components.D S T R U C T U R A L(N D I R,N D I R)Interface structural damping matrix that can be used only in direct steady-state dynamic analysis.D S T R U C T U R A L(I,J)defines an element in the material structural damping matrix.Unless you invoke the unsymmetric equation solution capability in the contact property model definition(“Use with the unsymmetric equation solver in Abaqus/Standard” in “User-defined interfacialconstitutive behavior,” Section 36.1.6 of the Abaqus Analysis User's Manual), Abaqus/Standard uses only the symmetric part of D S T R U C T U R A L. For a particular off-diagonal (I, J) entry the symmetrization is done by halving the sum of the (I, J) and (J, I) components.S T A T E V(N S T A T V)An array containing the solution-dependent state variables. These are passed in as values at thebeginning of the increment and must be returned as values at the end of the increment. You define the number of available state variables as described in“Allocating space” in “User subroutines: overview,”Section 18.1.1 of the Abaqus Analysis User's Manual.S E DThis variable is passed in as the value of the elastic energy density at the start of the increment and should be updated to the elastic energy density at the end of the increment. This variable is used for output only and has no effect on other solution variables. It contributes to the output variable ALLSE. S F DThis variable should be defined as the incremental frictional dissipation. The units are energy per unit area. This variable is used for output only and has no effect on other solution variables. It contributes to the output variables ALLFD and SFDR (and related variables). For computing its contribution toSFDR, S F D is divided by the time increment.S P DThis variable should be defined as the incremental dissipation due to plasticity effects in the interfacial constitutive behavior. The units are energy per unit area. This variable is used for output only and has no effect on other solution variables. It contributes to the output variable ALLPD.S V DThis variable should be defined as the incremental dissipation due to viscous effects in the interfacial constitutive behavior. The units are energy per unit area. This variable is used for output only and has no effect on other solution variables. It contributes to the output variable ALLVD.S C DThis variable should be defined as the incremental dissipation due to creep effects in the interfacialconstitutive behavior. The units are energy per unit area. This variable is used for output only and has no effect on other solution variables. It contributes to the output variable ALLCD.P N E W D TRatio of suggested new time increment to the time increment currently being used (D T I M E, see below).This variable allows you to provide input to the automatic time incrementation algorithms inAbaqus/Standard (if automatic time incrementation is chosen).P N E W D T is set to a large value before each call to U I N T E R.If P N E W D T is redefined 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 theautomatic time integration algorithms is P N E W D T × D T I M E, where the P N E W D T used is the minimum value for all calls to user subroutines that allow redefinition of P N E W D T for this iteration.If P N E W D T 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. Thesuggested new time increment provided to the automatic time integration algorithms is P N E W D T ×D T I M E, where the P NE W D T 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 P N E W D T greater than1.0 will be ignored and values of P N E W D T less than 1.0 will cause the job to terminate.L O P E N C L O S EAn integer flag that is used to track the contact status in situations where user subroutine U I N T E R is used to model standard contact between two surfaces, like the default hard contact model inAbaqus/Standard. It comes in as the value at the beginning of the current iteration and should be set to the value at the end of the current iteration. It is set to –1 at the beginning of the analysis beforeU I N T E R is called. You should set it to 0 to indicate an open status and to 1 to indicate a closed status.A change in this flag from one iteration to the next will have two effects. It will result in output relatedto a change in contact status if you request a detailed contact printout in the message file (“TheAbaqus/Standard message file” in “Output,” Section 4.1.1 of the Abaqus Analysis User's Manual). In addition, it will also trigger a severe discontinuity iteration. Any time this flag is reset to a value of –1, Abaqus/Standard assumes that the flag is not being used. A change in this flag from –1 to another value or vice versa will not have any of the above effects.L S T A T EAn integer flag that should be used in non-standard contact situations where a simple open/close status is not appropriate or enough to describe the state. It comes in as the value at the beginning of thecurrent iteration and should be set to the value at the end of the current iteration. It is set to –1 at the beginning of the analysis before U I N T E R is called. It can be assigned any user-defined integer value, each corresponding to a different state. You can track changes in the value of this flag and use it to output appropriate diagnostic messages to the message file (unit 7). You may choose to outputdiagnostic messages only when a detailed contact printout is requested (“The Abaqus/Standardmessage file” in “Output,” Section 4.1.1 of the Abaqus Analysis User's Manual). In the latter case, the L P R I N T parameter is useful. In conjunction with the L S T A T E flag, you may also utilize the L S D I flag to trigger a severe discontinuity iteration any time the state changes from one iteration to the next. Any time this flag is reset to a value of –1, Abaqus/Standard assumes that the flag is not being used.L S D IThis flag is set to 0 before each call to U I N T E R and should be set to 1 if the current iteration should be treated as a severe discontinuity iteration. This would typically be done in non-standard contactsituations based on a change in the value of the L S T A T E flag from one iteration to the next. The use of this flag has no effect when the L O P E N C L O S E flag is also used. In that case, severe discontinuityiterations are determined based on changes in the value of L O P E N C L O S E alone.Variables passed in for informationR D I S P(N D I R)An array containing the current relative positions between the two surfaces at the end of the increment.The first component is the relative position of the point on the slave surface, with respect to the master surface, in the normal direction. The second and third components, if applicable, are the accumulated incremental relative tangential displacements, measured from the beginning of the analysis. For therelative position in the normal direction a negative quantity represents an open status, while a positive quantity indicates penetration into the master surface. For open points on the slave surface for which no pairing master is found, the first component is a very large negative number (–1 × 1036). The local directions in which the relative displacements are defined are stored in A L O C A L D I R.D R D I S P(N D I R)An array containing the increments in relative positions between the two surfaces.T E M P(2)Temperature at the end of the increment at a point on the slave surface and the opposing mastersurface, respectively.D TE M P(2)Increment in temperature at the point on the slave surface and the opposing master surface,respectively.P R E D E F(2,N P R E D)An array containing pairs of values of all the predefined field variables at the end of the currentincrement (initial values at the beginning of the analysis and current values during the analysis). The first value in a pair, P R E D E F(1,N P R E D), corresponds to the value at the point on the slave surface, and the second value, P F R E D E F(2,N P R E D), corresponds to the value of the field variable at the nearest point on the opposing surface.D P RE D(2,N P R E D)Array of increments in predefined field variables.T I M E(1)Value of step time at the end of the increment.T I M E(2)Value of total time at the end of the increment.D T I M ECurrent increment in time.F R E Q RCurrent frequency for direct steady-state dynamic analysis in rad/time.C I N A M EUser-specified surface interaction name, left justified.S L N A M ESlave surface name.M S N A M EMaster surface name.P R O P S(N P R O P S)User-specified array of property values to define the interfacial constitutive behavior between thecontacting surfaces.C O O RD S(M C R D)An array containing the current coordinates of this point.A L O C A L D I R(3,3)An array containing the direction cosines of the local surface coordinate system. The directions are stored in columns. For example, A L O C A L D I R(1,1), A L O C A L D I R(2,1), and A L O C A L D I R(3,1)give the (1, 2, 3) components of the normal direction. Thus, the first direction is the normal direction to the surface, and the remaining two directions are the slip directions in the plane of the surface. The local system is defined by the geometry of the master surface. The convention for the local directions is the same as the convention in situations where the model uses the built-in contact capabilities inAbaqus/Standard (described in“Contact formulations in Abaqus/Standard,” Section 37.1.1 of the Abaqus Analysis User's Manual, for the tangential directions).D R O T(2,2)Rotation increment matrix. For contact with a three-dimensional rigid surface, this matrix represents the incremental rotation of the surface directions relative to the rigid surface. It is provided so that vector-or tensor-valued state variables can be rotated appropriately in this subroutine. Relative displacement components are already rotated by this amount before U I N T E R is called. This matrix is passed in as a unit matrix for two-dimensional and axisymmetric contact problems.A R E ASurface area associated with the contact point.C H R L N G T HCharacteristic contact surface face dimension.N O D EUser-defined global slave node number (or internal node number for models defined in terms of an assembly of part instances) involved with this contact point. Corresponds to the predominant slave node of the constraint if the surface-to-surface contact formulation is used.N D I RNumber of force components at this point.N S T A T VNumber of solution-dependent state variables.N P R E DNumber of predefined field variables.N P R O P SUser-defined number of property values associated with this interfacial constitutive model (“Interfacial constants” in “User-defined interfacial constitutive behavior,” Section 36.1.6 of the Abaqus Analysis User's Manual).M C R DNumber of coordinate directions at the contact point.K S T E PStep number.K I N CIncrement number.K I TIteration number. K I T=0 for the first assembly, K I T=1 for the first recovery/second assembly,K I T=2 for the second recovery/third assembly, and so on.L I N P E RLinear perturbation flag. L I N P E R=1 if the step is a linear perturbation step. L I N P E R=0 if the step is a general step. For a linear perturbation step, the inputs to user subroutine U I N T E R represent perturbation quantities about the base state. The user-defined quantities in U I N T E R are also perturbation quantities.The Jacobian terms should be based on the base state. No change in contact status should occurduring a linear perturbation step.L P R I N TThis flag is equal to 1 if a detailed contact printout to the message file is requested and 0 otherwise (“The Abaqus/Standard message file” in “Output,” Section 4.1.1 of the Abaqus Analysis User'sManual). This flag can be used to print out diagnostic messages regarding changes in contact statusselectively only when a detailed contact printout is requested.。