24小时热门版块排行榜    

查看: 2899  |  回复: 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得到的结果也不是运算的数组的结果。请问大家有人遇到这种情况吗?

大家对数据输出是怎么处理的呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshigengen

银虫 (初入文坛)

【答案】应助回帖

*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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

htbbzzg

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-05-02 23:10:23
1  在执行 *vput 前,应当先执行一次:  /GRAPHICS, FULL,否则结果是不对的 (见帮助文件);
2  可以先用 GUI 方式执行一下,看结果如何:
       Utility Menu > Parameters > Array Operations > Put Array Data
2楼2013-05-02 09:04:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoyueriyue

金虫 (正式写手)

我试过了,GUI和命令流的方法都使用过,都弹出一样的warning
命令流如下:
*VPUT,TSV_migration_thermal(1),ELEM,,ETAB,TSV_CO_1, , ,2
3楼2013-05-02 22:20:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

htbbzzg

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★
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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见