找回密码
 注册
Simdroid-非首页
查看: 420|回复: 10

[后处理] [原创] 如何对计算结果进行插值得到特定(x,y,z)点上的值

[复制链接]
发表于 2008-6-20 16:16:36 | 显示全部楼层 |阅读模式 来自 美国
这里简单介绍一下如何用*MOPER来对计算结果进行插值,来得到用户自定义网格节点上的值。

例如,用free mesh计算已经得到所有节点的温度值,如何得到中心点和其他任意点的温度值:

! following code define the Node coordinates in NODLOCS array
*GET,MAXNN,NODE,0,NUM,MAXD
*GET,MINNN,NODE,0,NUM,MIND
*GET,NOD_CNT,NODE,0,COUNT
*DIM,NODLOCS,ARRAY,NOD_CNT,3

! FILL NODLOCS WITH THE X,Y,Z COORDS
NCS2=1
*DO,NCS,MINNN,MAXNN,1
*IF,NSEL(NCS),EQ,1,THEN
  NODLOCS(NCS2,1)=NX(NCS)
  NODLOCS(NCS2,2)=NY(NCS)
  NODLOCS(NCS2,3)=NZ(NCS)
  NCS2=NCS2+1
*ENDIF
*ENDDO

!Get simulated temperature value at each node and save them into TDIST array
   *DIM,TDIST,ARRAY,NOD_CNT,1
   NCS2=1
   *DO,NCS,MINNN,MAXNN,1
      *IF,NSEL(NCS),EQ,1,THEN
          TDIST(NCS2)=TEMP(NCS)
          NCS2=NCS2+1
      *ENDIF
   *ENDDO

! Create TC array to save your model center position, assuming it's 3D model

*DIM,TC,ARRAY,2,3
TC(1,1)=center_x
TC(1,2)=center_y
TC(1,3)=center_z
TC(2,1)=arbitrary_x
TC(2,2)=arbitrary_y
TC(2,3)=arbitrary_z



*DIM,TINTRPC,ARRAY,2,1
! The linear interpolated temperature will be saved in TINTRPC array
  *MOPER,TINTRPC,TC,MAP,TDIST,NODLOCS,3,,1

用户可自定义TC的length来输入所求坐标点集合的x,y,z值。TINTRPC就是所对应坐标点集合上的温度值。

评分

2

查看全部评分

发表于 2008-6-20 21:57:38 | 显示全部楼层 来自 瑞典
Simdroid开发平台
感谢分享,支持原创
回复 不支持

使用道具 举报

发表于 2009-7-9 22:37:33 | 显示全部楼层 来自 湖南株洲
版主:你好,因为遇到了同样的插值问题,多谢看了版主的好资料,在此表示感谢。我试过你的这个命令流,最后一行*MOPER,TINTRPC,TC,MAP,TDIST,NODLOCS,3,,1中的3,,1在help中的解释如下:
kOut
      Outside region results; used for Oper = MAP
     If kOut = 0, use the value(s) of the nearest region point for points outside of the region.
     If kOut = 1, set results extrapolated outside of the region to zero
那么怎么插值出来的值为0。
我的例子如下:
dat.txt
   -0.227109   -0.209046    0.467072     200.0
   -0.413893   -0.168195    0.261523     400.0
   -0.574753   -0.157890    0.809014     800.0
   -0.731227   -0.152996    0.119975     1100.0
   -0.876865   -0.138102    0.130902     1350.0
   -0.101067   -0.131582    0.143611     1000.0
例子流:
nn=6
*dim,AXYZ,ARRAY,nn,4                  
*vread,AXYZ(1,1),dat,txt,,JIK,4,nn     
(4e12.6)                              

*DIM,NODLOCS,ARRAY,nn,3
*DO,j,1,3,1
*DO,i,1,nn,1
  NODLOCS(i,j)=AXYZ(i,j)
*ENDDO
*ENDDO

*DIM,TDIST,ARRAY,nn,1
*DO,NCS,1,nn,1
   TDIST(NCS)=AXYZ(NCS,4)
*ENDDO

nxyz=2
*DIM,TC,ARRAY,nxyz,3

TC(1,1)=-0.3
TC(1,2)=-0.18
TC(1,3)=0.35

TC(2,1)=-0.8
TC(2,2)=-0.145
TC(2,3)=0.125


*DIM,TINTRPC,ARRAY,nxyz,1
*MOPER,TINTRPC,TC,MAP,TDIST,NODLOCS,3,,0

*CFOPEN,temp,txt
*VWRITE,TINTRPC(1,1)
(f12.5)
*CFCLOS
回复 不支持

使用道具 举报

发表于 2009-7-9 23:01:25 | 显示全部楼层 来自 上海奉贤区
谢谢楼主的分享。我一直以为用sucr命令可以实现该功能呢(我的后处理一直没用过类似的功能)。如果还需要差值才能获取,那看来sucr命令的能力很弱了?
回复 不支持

使用道具 举报

发表于 2010-6-1 15:29:43 | 显示全部楼层 来自 陕西西安
版主真是高手!  收藏
回复 不支持

使用道具 举报

发表于 2010-7-4 14:27:19 | 显示全部楼层 来自 湖北武汉
好东西,收藏了
回复 不支持

使用道具 举报

发表于 2010-7-5 12:35:56 | 显示全部楼层 来自 江苏南京
厉害!!!!!!!!!
回复 不支持

使用道具 举报

发表于 2010-7-14 16:12:38 | 显示全部楼层 来自 河北秦皇岛
正需要,但是没看懂 ,有高手能把那个观察任意点应力的mac改成求温度的吗?
回复 不支持

使用道具 举报

发表于 2012-10-23 23:22:07 | 显示全部楼层 来自 黑龙江哈尔滨
这种插值方法如何用于后处理或者用于计算热应力?
谢谢
回复 不支持

使用道具 举报

发表于 2012-10-24 15:33:12 | 显示全部楼层 来自 上海
厉害!!!!!!!!!
回复 不支持

使用道具 举报

发表于 2012-11-3 20:27:43 | 显示全部楼层 来自 辽宁大连
感谢分享,支持原创
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-18 15:38 , Processed in 0.056262 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表