在UMAT子程序k">ABAQUS中使用UMAT子程序时有时会使用到最大主应力进行计算。通过查阅帮助文档,ABAQUS实用子程序SPRINC可以在UMAT中计算最大主应力和最大主应变,SPRIND可以计算最大主应力和最大主应变的方向。
下面是ABAQUS帮助文档关于实用子程序SPRINC的介绍:
SPRINC (calculate principal values)
Interface
CALL SPRINC(S,PS,LSTR,NDI,NSHR)
Variables to be provided to the utility routine
S
Stress or strain tensor.
LSTR
An identifier. LSTR=1 indicates that S contains stresses; LSTR=2 indicates that S contains strains.
NDI
Number of direct components.
NSHR
Number of shear components.
Variables returned from the utility routine
PS(I), I=1,2,3
The three principal values.
调用的时候直接在UMAT子程序中输入:CALL SPRINC(S,PS,LSTR,NDI,NSHR)
需要提供给该实用子程序的变量包括:
实用子程序返回UMAT的变量
实例:
CALL SPRINC(S,PS,LSTR,NDI,NSHR) 可以直接写成
CALL SPRINC(STRESS,PS,1,3,3)或CALL SPRINC(STRESS,PS,1, NDI,NSHR)
这行代码的意思是将UMAT中的应力分量数组STRESS提供给实用子程序SPRINC计算;1表示LSTR=1,表明提供给实用子程序SPRINC的为应力分量数组;后面的两个“3”分别表示正应力分量个数为3和切应力分量个数为3,也可以不用改变直接使用NDI和NSHR,因为在三维模型的UMAT中NDI和NSHR已经被赋予了值为3。PS数组储存返回的计算得到的主应力,这个需要自己在umat程序中定义数组PS.
下面是关于返回主应力顺序的验证:
CALL SPRINC(STRESS,PS,1,3,3)
STATEV(4)=PS(1)
STATEV(5)=PS(2)
STATEV(6)=PS(3)




需要注意以下点:
1.PS数组一般需要在程序中自定义数组变量;
2.S数组一般也需要自定义数组变量,且需要为S数组赋予应力分量或应变分量的值;
3.如果SPRINC或SPRIND返回的主应力为零,检查输入的变量或数组是否未定义或者未赋值,其次检查输出数组是否未定义。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...