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

【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

[复制链接]
发表于 2004-4-2 23:33:48 | 显示全部楼层 |阅读模式 来自 江苏南京
经过一周的努力,根据ylai提供的ug open例子,实现了参数化设计ug实体建模,然后导入icem得到所需网格,再运行cfd求解器cfx5,利用压力降最为目标,进行优化运行。
感觉真的不错!终于从手工重复cfd计算中解脱出来了。
希望大家多多交流。
(ps:上次ylai贴的外部激活ug的例子不全,还有几个小错误。)

评分

1

查看全部评分

发表于 2004-4-4 08:59:59 | 显示全部楼层 来自 清华大学

回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

Simdroid开发平台
恭喜大牛!
给大家分享一下你改正的ug例子亚,谢谢!呵呵
如果你现在的项目不保密,能share就更好啦
 楼主| 发表于 2004-4-4 11:07:22 | 显示全部楼层 来自 江苏南京

回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

其实现在还有些问题,只能说只是可以批处理方式改变几何尺寸就可以得到相关的cfd结果,但是当集成到isight时,遇到某些问题,正在准备解决。
具体问题是:
isight用的Perl5.6,而我的CFX5用的是Perl5.8,当运行时相互冲突。准备请教ylai。
 楼主| 发表于 2004-4-4 17:31:43 | 显示全部楼层 来自 江苏南京

回复: 回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

leosding wrote:
isight用的Perl5.6,而我的CFX5用的是Perl5.8,当运行时相互冲突。准备请教ylai。

  
这个小问题已经解决:通过把isight用的Perl升级到5.8。
  
做了一个小得算例,通过改变管子的直径与长度,从而得到最小的压降。计划需要1420步,花了2.5小时,迭代了48次,虽然没有结束,但是毕竟成功的实现了,软件自动化!
再次感谢ylai提供的ug open程序。
 楼主| 发表于 2004-4-4 17:37:19 | 显示全部楼层 来自 江苏南京

回复: 回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

perch88 wrote:
恭喜大牛!
给大家分享一下你改正的ug例子亚,谢谢!呵呵
如果你现在的项目不保密,能share就更好啦:)

ylai原著中的FILE文件指针应该在主函数开头定义,PrintErrorMessage函数没有定义,下面使我在其基础之上做的修改,当然程序的详细内容请参考ug的开发帮助,写的非常详细,可以根据自己具体要求进行开发:

#include "stdio.h"
#include <uf.h>
#include <uf_part.h>
#include <uf_obj.h>
#include <uf_object_types.h>
#include <uf_attr.h>
#include <uf_curve.h>
#include <uf_csys.h>
#include <uf_cfi.h>
#include <uf_modl.h>
#include <uf_error.h>
  
static void PrintErrorMessage( int errorCode );
  
// Main routine  
extern void main( char argc, char *argv[] )  
{  
  FILE *MassFile;  
//variables define by lx  
  // char StrFlag[25]="a=";  
  tag_t solbody = NULL_TAG;  
  tag_t part_tag;  
  UF_PART_load_status_t error_status;  
  int num_parts;  
     
  int response = 2;  
  int type = 1;  
  int unit = 3;  
  int accuracy = 1;  
  int count = 0;  
  int zero = 0;  
  // int i;  
  int status;  
  double acc_val[11] = {.01,0,0,0,0,0,0,0,0,0,0};  
  double density = 1.0;  
  double massprop[47];  
  double massprop_stat[13];  
     
     
    /* Initialize the API environment */  
    int errorCode = UF_initialize();  
     
    if ( 0 == errorCode )  
    {  
        /* TODO: Add your application code here */  
      
    status = UF_PART_open("aa.prt",&part_tag,&error_status);  
    if (status) PrintErrorMessage(status);  
    num_parts = error_status.n_parts;  
    UF_free_string_array(num_parts,error_status.file_names);  
      
    status = UF_MODL_import_exp ("aaexp.exp" , 0 );  
    if ( status != 0 )  
    {  
      PrintErrorMessage( status);  
    }  
    else  
    {  
      status = UF_MODL_update ( );  
      if ( status != 0 )  
      {  
        PrintErrorMessage( status);  
      }  
      else  
      {  
        status = UF_PART_save ( );  
        if ( status !=0)  
        {  
          PrintErrorMessage( status);  
        }  
           
      }  
    }  
      
    status = UF_OBJ_cycle_by_name ("DISK", &solbody);  
    /* if sheet bodies were selected */  
  /*   if ( solbody != NULL )  
    {  
      UF_MODL_ask_mass_props_3d(&solbody,  
        1, 1, 3, 1.0, 1,  
        acc_val,  
        massprop,  
        massprop_stat);  
         
         
//      FILE *MassFile;  
         
      // double radius=200; //半径为200毫米  
      // double height=1000*massprop[1]/(radius*radius*3.1415926);  
      // char str;  
      if((MassFile=fopen("volume.exp","w"))!=NULL)  
      {  
       // fprintf(MassFile,"radius=%f\n",radius);  
       // fprintf(MassFile,"height=%f\n",height);  
        fprintf(MassFile,"volume=%f\n",1000*massprop[1]);  
        //fwrite(StrFlag,sizeof( char ), 25, MassFile);  
        //printf("%d",  
        //f/write(  
        fclose( MassFile );  
      }  
    */
  
      // UF_free(&solbody);  
    }  
    else  
    {  
      PrintErrorMessage(status);  
    }  
      
    status = UF_PART_close (part_tag, 1, 1);  
    if ( status !=0)  
    {  
      PrintErrorMessage( status);  
    }  
    /* Terminate the API environment */  
    errorCode = UF_terminate();  
  }  
     
  /* Print out any error messages */  
  PrintErrorMessage( status);  
  exit(0);  
}  
/* PrintErrorMessage
**
**     Prints error messages to standard error. */
static void PrintErrorMessage( int errorCode )
{
    if ( 0 != errorCode )
    {
        /* Retrieve the associated error message */
        char message[133];
        UF_get_fail_message( errorCode, message );
  
        /* Print out the message */
  
        fprintf( stderr, "%s\n", message );
    }
}

评分

1

查看全部评分

发表于 2004-4-5 15:17:48 | 显示全部楼层 来自 北京

回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

不需要升级perl 5.8, 用重置环境变量的方法就可以搞定了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2004-4-12 20:18:48 | 显示全部楼层 来自 河北廊坊

回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

isight这个东西确实是不错,有时间了再好好研究一下.
发表于 2004-4-21 17:09:50 | 显示全部楼层 来自 北京海淀

回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计

好处是慢慢悟出来的,呵呵
发表于 2007-11-11 17:47:50 | 显示全部楼层 来自 黑龙江哈尔滨
通过把isight用的Perl升级到5.8,我想知道如何实现?拜托楼主解答。
回复 不支持

使用道具 举报

发表于 2007-11-21 12:14:39 | 显示全部楼层 来自 北京玄武
楼上可以用#6的方法试试,如果还是报错你就直接用cfx的perl文件夹覆盖isight中的perl文件夹

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-3-13 20:25:47 | 显示全部楼层 来自 上海
isight集成CFX很简单,只需要几条批处理命令就可以了
回复 不支持

使用道具 举报

发表于 2008-3-17 08:49:07 | 显示全部楼层 来自 陕西西安
amphibian能不能把isight集成CFX的经验给我说一下,我最近也在做,请问你是看啥资料学的呀?
回复 不支持

使用道具 举报

发表于 2008-3-24 22:04:36 | 显示全部楼层 来自 陕西西安
楼主,能不能把你的Isight优化流程贴出来啊?
我不明白你的三个软件是不是同时启动?还是按什么顺序前后启动的?
如果是按顺序启动的话(UG -> ICEM -> CFX),如何在isight中解析ICEM的input?
回复 不支持

使用道具 举报

发表于 2008-4-4 16:43:17 | 显示全部楼层 来自 陕西西安

回复 1# 的帖子

请问一下楼主,我现在做到集成icem这一块了,但是icem的集成在它的帮助里面没有说明,它的批处理调用的是什么文件也不知道!请楼主和各位大侠指教!已经困扰我很久了!谢谢!谢谢!谢谢!谢谢!
回复 不支持

使用道具 举报

发表于 2008-4-19 15:06:06 | 显示全部楼层 来自 陕西西安
根据ylai大哥说的方法,重置环境变量,但还是出现了perl错误。错误显示如下:
An internal error has been detected in cfx5pre

Unexpected error

  Can't locate object method "spawn" via package "job" (perhaps you forgot to load "job"?) at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/Win32/Commands.pm line 140.

while working out CFX5_HOST_ARCH

The following information may be useful to CFX support staff:

        Currently at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/CurrentConfig.pm line 203
        CFX5::CurrentConfig::getconf('CFX5_HOST_ARCH') called at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/DefaultConfig.pm line 148
        CFX5:efaultConfig::getconf_or_interr('CFX5_HOST_ARCH') called at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/DefaultConfig.pm line 906
        CFX5::DefaultConfig::CFX_SITEFILE('CFX_SITEFILE') called at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/CurrentConfig.pm line 179
        eval {...} called at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/CurrentConfig.pm line 177
        CFX5::CurrentConfig::getconf('CFX_SITEFILE') called at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/Config.pm line 108
        CFX5::Config::read_config() called at C:\Program Files\Ansys Inc\v110\CFX\bin\perllib\cfx5pre.pl line 186

An internal error has been detected in cfx5pre

Unexpected error

  Aborting due to internal error: "Unexpected error
  Can't locate object method "spawn" via package "job" (perhaps you forgot to load "job"?) at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/Win32/Commands.pm line 140.

while working out CFX5_HOST_ARCH". while working out CFX_SITEFILE

The following information may be useful to CFX support staff:

        Currently at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/CurrentConfig.pm line 203
        CFX5::CurrentConfig::getconf('CFX_SITEFILE') called at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/Config.pm line 108
        CFX5::Config::read_config() called at C:\Program Files\Ansys Inc\v110\CFX\bin\perllib\cfx5pre.pl line 186

Aborting due to internal error: "Unexpected error
  Aborting due to internal error: "Unexpected error
  Can't locate object method "spawn" via package "job" (perhaps you forgot to load "job"?) at C:\Program Files\Ansys Inc\v110\CFX\bin\/perllib/CFX5/Win32/Commands.pm line 140.
while working out CFX5_HOST_ARCH".
while working out CFX_SITEFILE".
请问ylai大哥怎样升级perl5.6到5.8,谢谢!
回复 不支持

使用道具 举报

发表于 2009-12-29 17:09:39 | 显示全部楼层 来自 北京交通大学
请问大侠,怎么集成cfx啊?用什么样的文件去集成!在pre,solve和post里的文件类型是什么?谢谢了  困绕了许久还没解决!
回复 不支持

使用道具 举报

发表于 2010-4-25 17:04:45 | 显示全部楼层 来自 黑龙江哈尔滨
我顶我顶我顶
回复 不支持

使用道具 举报

发表于 2010-5-5 17:04:45 | 显示全部楼层 来自 北京
自动优化,终极目标啊!牛!
回复 不支持

使用道具 举报

发表于 2010-5-18 23:07:43 | 显示全部楼层 来自 黑龙江哈尔滨
如何导出x_T文件
回复 不支持

使用道具 举报

发表于 2010-7-2 01:00:56 | 显示全部楼层 来自 北京
具体如何集成cfx啊,大哥?有没有例子给分享一下?
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-2 20:32 , Processed in 0.071512 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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