Vuamp子程序用于显示动力学分析中,目前经常用于金属轧制成型。

Vuamp基本功能:

(1)可以通过vuamp定义当前幅值函数的值;

(2)可以用于模型的逻辑控制,一般通过设置的传感器的值;

(3)可以预定义状态变量;

(4)可以计算幅值函数的倒数和积分。

Vuamp基本格式如下:

SUBROUTINE VUAMP(

* ampName, time, ampValueOld, dt, nprops, props,

nSvars,

* svars, lFlagsInfo, nSensor, sensorValues,

sensorNames,

*

jSensorLookUpTable,

* AmpValueNew,

* lFlagsDefine,

* AmpDerivative, AmpSecDerivative, AmpIncIntegral)

INCLUDE 'VABA_PARAM.INC'

C time indices

parameter

(iStepTime = 1,

* iTotalTime = 2,

* nTime = 2)

C flags passed in for information

parameter (iInitialization =

1,

* iRegularInc = 2,

* ikStep = 3,

* nFlagsInfo = 3)

C optional flags to be defined

parameter

(iComputeDeriv = 1,

* iComputeSecDeriv = 2,

* iComputeInteg = 3,

* iStopAnalysis = 4,

* iConcludeStep = 5,

* nFlagsDefine = 5)

dimension time(nTime), lFlagsInfo(nFlagsInfo),

* lFlagsDefine(nFlagsDefine),

* sensorValues(nSensor),

* props(nprops),

* sVars(nSvars)

character*80 sensorNames(nSensor)

character*80 ampName

dimension jSensorLookUpTable(*)

user coding to define

AmpValueNew, and

optionally lFlagsDefine, AmpDerivative,

AmpSecDerivative,

AmpIncIntegral

RETURN

END

前面是变量定义,后面需要根据需要定义AmpValueNew等变量的值。

下面对变量进行解释。

需要定义的变量值:

AmpValueNew:当前幅值的值。

可以更新的变量:

lFlagsDefine(iComputeDeriv):默认条件下为0, Abaqus将自动计算幅值对时间的一阶导数, 如果设置为1, 则需要设置幅值对时间的一阶导数。

lFlagsDefine(iComputeSecDeriv):默认条件下为0, Abaqus将自动计算幅值对时间的二阶导数, 如果设置为1, 则需要设置幅值对时间的二阶导数。

lFlagsDefine(iComputeInteg):默认条件下为0, Abaqus将自动计算幅值的积分, 如果设置为1, 则需要设置幅值的增量积分。

lFlagsDefine(iStopAnalysis):默认条件下为0, Abaqus在出现错误信息时,将继续进行计算;若设置为1, 在出现错误信息后, 将停止计算。

lFlagsDefine(iConcludeStep):默认条件下为0, 在运算结束后自动停止计算;设置为1, 如果还有下一步命令, 将继续进行下一步计算。

Svars:一组随着幅值变化而改变的阵列, 这个阵列的变量值数量就是nsvars,这个数组需要用户自己定义。在vuamp程序调用过程中, 阵列的信息传递给包含当前增量起始值的子程序中, 大多数时候, 用户需要自己更新增量的最后一组数据。

AmpDerivative:当前幅值的一阶导数。

AmpSecDerivative:当前幅值的二阶导数。

AmpIncIntegral:当前幅值的增量积分。

用于子程序和主程序之间传递信息的变量:

ampName:用户自定义的幅值名。

time(iStepTime):当前步数的时间。

time(iTotalTime):截止当前的总时间。

ampValueOld:前一幅值时间。

Dt:当前时间增量。

Nprops:相关的属性数量。

props(nprops):用户定义的幅值属性。

nSvars:用户自定义的状态变量数目。

lFlagsInfo:和vuamp子函数相关的整数矩阵。

lFlagsInfo(iInitialization):如果子函数调用从初始第一步开始, 其值为1, 否则为0.

lFlagsInfo(iRegularInc):子函数时间增量为常数, 其值为1, 否则为0。

nSensor:模型中总的传感器数量。

sensorValues:当前的前一时间, 传感器的矩阵数值。每一个传感器矩阵数值对应一个历史输出历史输出数据库需要自定一个传感器。

sensorNames:用户自定义数组的传感器名。每一个传感器名对应一个数值, 这个数值提供输出请求, 如果系统中有小写格式或者大写、小写混合格式,则要求每个传感器名必须转化成大写格式。

jSensorLookUpTable:传递给功能函数IVGETSENSORID和VGETSENSORVALUE的值。

功能函数释义:

(1)IVGETSENSORID:获取传感器sensor的ID,返回值是该传感器的ID。格式:

IVGETSENSORID(mySensorName, jSensorLookUpTable

)

(2)VGETSENSORVALUE:获取传感器sensor的值,返回值是该传感器的数值。格式:

VGETSENSORVALUE(mySensorName, jSensorLookUpTable, sensorValues )

其中变量:

mySensorName:大写,用户定义的字符,传感器名称。

jSensorLookUpTable:指针。

下面是Abaqus帮助文档上的一个例子。

后面的逻辑代码主要是用来定义新的幅值的值,也即是变量ampValueNew的值,在这个过程中也利用状态变量svar来帮助更新。

abaqus子程序 c语言,Abaqus的Vuamp子程序基本概念相关推荐

  1. 中断服务子程序c语言格式,中断服务子程序是如何被执行的 ?

    前言 笔者在 <程序是如何在 CPU 中运行的(二)>中从 PC 指针寄存器的角度分析了一级函数调用和二级函数调用执行的过程,那么中断服务子程序又是如何被执行的呢?两者的相同点和不同点是什 ...

  2. python做abaqus后处理_python进行abaqus后处理的二次开发,我想提取odb文件中的nodeSet,结果总提示Keyerror,请各位大神指教。...

    运行: Cmd中运行:abaqus scrip=plot.py 之所以用python因为abaqus的界面是基于python的,用它来进行批处理或者后处理是比较不错的,希望能和大家分享abaqus的更 ...

  3. ExcelVBA之传递参数给一子程序以及如何将值从子程序传递回给主调过程

    当你大VBA程序得越来越大,要很好地维护这么多的代码行是很困难的.要让你的程序容易编写.理解和改变,你就应该使用井井有条的结构化程序.你只要简单地将大问题分成一些可以同时执行的小问题就行.在VBA中, ...

  4. 【ABAQUS】搞定ABAQUS与SolidWorks2无缝集成

    1.软件准备 在开始神奇旅程之前呢,大家需要准备下相关软件,具体如下: DS.SIMULIA.ABAQUS.2016.0: SolidWorks 2012 x64 Edition: SolidWork ...

  5. C语言必知的几个概念

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104995566 C ...

  6. C语言中易混淆的标识符,C语言指针中易混淆的概念

    C语言指针中易混淆的概念 一.数组指针与指针数组的区别 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性.换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位置表示他的种类. ...

  7. Abaqus内置LaRC05失效准则子程序(附cohesive单元umat子程序开发教程)

    LaRC05准则是NASA兰利研究中心关于复合材料强度计算的理论.其吸收了Puck准则中关于基体失效的预测方法,并提出Kinking模型来描述纤维压缩失效的起始.还考虑了就位强度.材料非线性等复杂问题 ...

  8. 基于Abaqus的修正剑桥模型的vumat子程序开发

    岩土工程中广泛采用的莫尔–库仑准则,能较好地描述岩土材料的强度特性和破坏行为,而涉及变形和固结分析问题时该模型从理论和实践中均有一定的不足,基于等向加载试验建立起来的剑桥模型则能较好地描述黏土的弹塑性 ...

  9. 编写10ms延时的子程序c语言,求解!!!用汇编语言编写延时程序问题!!!!...

    软件延时:(asm) 晶振 12MHZ, 延时 1 秒 程序如下: DELAY:MOV 72H,#100 LOOP3:MOV 71H,#100 LOOP1:MOV 70H,#47 LOOP0:DJNZ ...

最新文章

  1. c语言程序设计实验教学,C语言程序设计实验教学改革研究
  2. ofstream、ifstream、fstream
  3. CentOS crontab定时任务不执行的解决
  4. 回溯法(深度优先)剪枝和分支限界法(宽度优先)剪枝对比:01背包问题
  5. springboot(七) 配置嵌入式Servlet容器
  6. HTML5火焰文字特效DEMO演示---转载
  7. php 判断字数,PHP实时统计中文字数和区别
  8. 解决拼音汉字混合搜索,由于同音字导致搜出不相干的内容
  9. c语言 word转pdf,超简单的Word转换成PDF技巧,可惜很多人还不会
  10. 内存为程序分配空间的四种分配方式
  11. 【Apollo】【driver】【gnss】适配新的gps设备的方式与经验总结
  12. 基于JAVA小区生活服务平台的设计与实现计算机毕业设计源码+系统+lw文档+部署
  13. Java 算法之三色旗
  14. 关于 Kubernetes中NetworkPolicy(网络策略)方面的一些笔记
  15. cad角度命令怎么输入_CAD制图软件中怎么输入相对坐标和绝对坐标?
  16. daimayuan每日一题#810 最短路计数
  17. 一篇博客让你横扫数电常考所有集成电路芯片(已更新50%持续更新)
  18. python写的点名器(内附源码)
  19. 时间戳转换为北京时间
  20. Linux Log文件常用命令

热门文章

  1. jsoup爬虫工具介绍
  2. 【Java项目推荐】值得写到简历上的项目--黑马点评
  3. Facebook网络模拟测试工具ATC使用
  4. 单片机---12---DMX512
  5. Win10各版本介绍及区别:
  6. 数据分析求职之费米估算解析
  7. windows驱动开发——环境搭建
  8. VS code修改字体为电脑自带字体
  9. VC 操作excel
  10. VS(Visual studio)各版本密钥汇总