| 查看: 2904 | 回复: 6 | ||
xiaoyueriyue金虫 (正式写手)
|
[求助]
ANSYS后处理*vput的使用 已有1人参与
|
|
Sample Text 各位在ANSYS有限元模拟后处理时候有用到*vput命令吗? 我的问题是这样的,一个热模拟结束之后,我建立了温度的单元表,使用etable命令,然后建立一个数组,维数跟单元表的单元数目相同,使用*get命令把单元表中的数据转入到数组中,然后对数组进行数值运算,想把运算结果显示出来,按照ANSYS的帮助文档,应该使用*vput命令流,但是弹出以下提示信息: Data record dose not exist for *vput of some Elem entities requested。用Pletab得到的结果也不是运算的数组的结果。请问大家有人遇到这种情况吗? 大家对数据输出是怎么处理的呢? |
» 猜你喜欢
职称评审没过,求安慰
已经有41人回复
回收溶剂求助
已经有7人回复
硝基苯如何除去
已经有3人回复
A期刊撤稿
已经有4人回复
垃圾破二本职称评审标准
已经有17人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
ANSYS计算完成求解后能不能回到前处理器
已经有7人回复
为什么ANSYS后处理list节点应力,节点不全
已经有13人回复
ANSYS 时间历程后处理器查看温度循环后应力变化,只看到最后一个循环的应力变化
已经有6人回复
ANSYS 经过时间历程后处理器后就选择不了面,这是为什么
已经有3人回复
Ansysfluent14.0 在win7上进行前、后处理,在linux上运算
已经有3人回复
ansys后处理中结果坐标系的转换问题,求教各位
已经有14人回复
【教程】Ansys初级培训教程&几何处理
已经有56人回复
【求助】ANSYS怎么处理移动边界、动网格的问题?
已经有4人回复
【求助】ansys进行淬火过程模拟残余应力时比容变化的处理
已经有6人回复
2楼2013-05-02 09:04:11
xiaoyueriyue
金虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 964.4
- 散金: 1051
- 红花: 6
- 帖子: 381
- 在线: 128小时
- 虫号: 1966386
- 注册: 2012-08-31
- 性别: GG
- 专业: 微/纳机械系统
3楼2013-05-02 22:20:11
【答案】应助回帖
★ ★ ★
xiegangmai: 金币+3, 谢谢参与! 2013-05-03 23:38:43
xiegangmai: 金币+3, 谢谢参与! 2013-05-03 23:38:43
|
你没有给出该语句之前的操作情况,只能比较一下 *vput 语句的格式以及你所用的语句, *VPUT, ParR, Entity, ENTNUM, Item1, IT1NUM, Item2, IT2NUM, KLOOP *VPUT,TSV_migration_thermal(1), ELEM, , ETAB ,TSV_CO_1, , , 2 你的语句中没有给 ENTNUM 赋值 (对于你的情况,应该是单元表中的单元个数),但是 KLOOP 为 2,表示是按 ENTNUM 进行循环,是否此处有问题? 也可能是你定义的单元表有问题,或者没有给单元表赋值。 |
4楼2013-05-03 08:28:32
xiaoyueriyue
金虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 964.4
- 散金: 1051
- 红花: 6
- 帖子: 381
- 在线: 128小时
- 虫号: 1966386
- 注册: 2012-08-31
- 性别: GG
- 专业: 微/纳机械系统
|
试过了,命令流改成 *VPUT,TSV_migration_thermal(1), ELEM, elenum , ETAB ,TSV_CO_1, , , 2 (elenum 是所有单元的总数)也没有得到应该要的结果 之前先定义了一个单元表 TSV_co_1,是用来做备份的,在数组计算后就把数组中的数据存入这个单元表中,想法是覆盖以前定义的单元表TSV_co_1,然后就这个单元表显示出来就得到了运算后数组的输出结果。 具体的命令流如下: !*************table of temperature distribution****** etable,TSV_temp,temp !*************备份一个单元表,以备此后的*vput使用******* etable,TSV_co_1,temp !*************table of temperature gradient distribution****** etable,TSV_tg,TG,SUM !*************table of current density distribution********* etable,TSV_js,JS,SUM !******define some arrays********** !******define the array of temperature******** *dim,temp_TSV,array,elenum !******define the array dot of current density and temperature gradient****** *dim,js_tg_TSV,array,elenum !******define the square of current density******* *dim,js2_TSV,array,elenum !******put the element table into the array defined****** *do,i,1,elenum,1 *get,temp_TSV(i),elem,i,etab,TSV_temp *get,js_tg_TSV(i),elem,i,etab,TSV_jt *enddo !*******calculation of the div(Jm))********** *voper,TSV_temp_daoshu,1,div,temp_TSV, *voper,TSV_temp_1,TSV_temp_daoshu,mult,TSV_temp_daoshu *voper,TSV_temp_2,TSV_temp_1,mult,Ea 。。。。。。 *voper,TSV_migration_electronic,TSV_temp_14,mult,TSV_temp_10 *VPUT,TSV_migration_thermal(1),ELEM,elenum,ETAB,TSV_CO_1, , ,2 !******finish of the calculation of electromigration due to EWN******* pletab,TSV_co_1,noav |
5楼2013-05-03 09:59:14
【答案】应助回帖
|
*V系列的命令 k循环项的控制 是从指定的编号开始 以1为单位递增 通常取出来的某一部分单元 编号并不是连续的 有种说法是把想取结果的部分先画网格以图编号连续 但我觉这是治标不治本 我曾经以为 这一限制 使得*v命令的过程 只能通过do循环+*get来解决 而*get所需要的单元编号 可以选完单元之后定义一个单元编号数组 这个数组纬度是所选择的全部单元数目(比如100,但并不代表所选单元编号也是1~100) 直到在网上看到了*vmask这个命令 它的作用是定义一个标识数组 里面标识出对于编号为1~n的单元 哪些被选上了 哪些没被选 这样后面的*vput、*vget命令 即可从最小编号开始做 没被选上的会跳过(实际不是跳过去 而是赋0值) 这样的话 可以任何数组读入到单元表里 与单元表结果做各种运算 或者更灵活的 是将单元表结果取出 外处理后再读进去 dnsol、desol也可以改节点结果、单元结果,但无奈都是直接结果或导出结果 并不如单元表结果那样完整 分享一个网址 单元表与数组交互信息在tips64 http://home.cogeco.ca/~pbudgell/ANSYS_tips.html#T62 ps.借此提个问题:单元表如果list的话 会看到是按所选单元编号由小到大顺序排序的 假设b列是我定义的结果列 可用esort对该列排序 我的问题是 排好序之后 第一个数据就是最大或最小值了 怎么在程序里把这个数取出来?因为*get和*vget都需要告诉命令单元号 但排序结束后的单元号是不知道的 我目前的方法是不用esort 直接把编号列和b列导出数组 用循环和判断来排序 但既然有esort了 再写程序就可臃肿了 |
6楼2014-07-17 11:14:59
田七525
铁杆木虫 (小有名气)
Ph. D
- 应助: 13 (小学生)
- 金币: 5442.2
- 散金: 6
- 红花: 3
- 帖子: 216
- 在线: 88小时
- 虫号: 3074182
- 注册: 2014-03-20
- 性别: GG
- 专业: 微/纳机械系统

7楼2017-03-31 14:18:51













回复此楼