CFD评论  
搜索:  
Serving the CFD Community with News, Articles, and Discussion
 
CFD评论

用户偏好
网站赞助
标题饲料
移动版本
隐私政策
服务条款
推特

提交差价合约故事

网站赞助商
CFD啮合选择
CFD评论

告诉一个朋友
帮助这个网站通过发送朋友来增长 邀请 to visit this site.

通过电子邮件的差价合约新闻
您是否知道您可以获得今天的CFD评论头条新闻邮寄到您的收件箱? 只需登录并选择 每晚电子邮件头条新闻 在你的 用户偏好 page.

 
通过脚本自动化CFD型号
发表于2014年2月25日@ 12:12PM
打印版本 电子邮件故事 推特故事
Grid Generation John Rhoads,
PointWise,Inc。

预处理世界的圣杯是能够在眨眼之间产生一个网格,符合任何任意几何形状的每个网格质量标准。实际上,将对象周围的音量分开可以呈现许多挑战,特别是当您在元素的形状和方向上放置限制时。这些挑战最终要求用户在自动啮合解决方案或手动网格生成之间进行选择。


赞助人CFD评论

自动啮型镜板通常通过最终网格牺牲微量控制,以最大限度地减少用户交互。对于某些应用程序,这种方法足够,但对于许多应用程序,研究人员希望拥有能够和工具来创建最高质量的网格。不幸的是,这意味着网格生成将涉及一些用户交互。

是专门为需要实现最高质量网格的工程师和科学家创造的。令人透点的工具将用户前所未有地控制到最终网格,下降到网格中各个点的位置。但是,这种控制的成本是有时繁琐的过程手动创建网格部分。幸运的是,脚本可以用来减少或消除这些繁琐的任务中的一些。

脚本的好处
顾名思义,脚本简单地涉及为程序编写一系列命令来执行,从而自动化网格处理的一部分。脚本工具可以直接从点菜单栏访问,如图1所示。可以很快地拾取脚本,克服非程序员的异议,脚本困难,无法学习或根本不值得学习。点击脚本在自动和自动网格生成之间提供了良好的折衷。

脚本菜单
图1.可以从点菜单栏中的“脚本”菜单中引用脚本命令。


脚本是当您发现自己经常重复任务时使用的理想工具。如果您遇到了繁琐的流程,您想要简化或加快,那么创建脚本的时间投资可能会提供出色的回报。有许多可自由的脚本可以从我们的脚本下载 雕文脚本交换 (托管在GitHub上),作为脚本如何以何时且甚至扩展其功能的实例。

  • 存储库中的ButterflyMaker脚本自动执行从简单的H-Bock创建OH拓扑的过程。
  • Shapewizard也非常方便,这允许您快速创建棱镜,球形或锥体等常见形状。这对于在几何形状周围创建Farfield边界特别有用。

要公平,并非所有的过程都在尖端赋予脚本。例如,调整曲线上的控制点以提高正交性更适合在逐案的情况下与GUI进行交互式工作。可以通过脚本调整控制点的位置,但这种类型的操作可以从可视化和交互式工具中均匀地受益。

模板
此外,如果您发现自己重复地啮合相同的几何形状,则可以使用模板脚本整个网格处理。

  • 模板允许您快速筛选基线几何形状的轻微变化,如图所示 网络研讨会记录 来自AIAA阻力预测研讨会的飞机几何。
  • 这个 连接器 article 描述用于自动化喷射喷嘴周围的啮合过程的字形脚本。
  • 可以在的另一个模板示例 airfoilmesh脚本 在字形脚本交换中。此脚本将创建Naca 4系列2D翼型,并在几何点击中生成周围的几何图形中的边界层网。

虽然可以从开始完成脚本项目,但是一些最有用的脚本只是执行一部分网格过程并自动化多个步骤,大大减少了生成网格的时间。此外,脚本可以直接访问存储在网格中的信息(例如节点坐标),可以通过GUI访问,但不容易使用。

脚本,字形和TCL
点击脚本语言在侧向称为字形,该字形是基于TCL / TK框架构建的。 TCL是一种提供跨平台支持的开源编程语言。语法与Bash或Python等其他脚本语言不同,但整体方法非常相似。可以在TCL中找到优秀的教程 www.tcl.tk..

一旦您熟悉TCL的基础知识,您就可以在几分钟内写入一个字形脚本以供以省份的方式。通过字形可以访问来自PERTWISE GUI的每个命令,并且有几种方法可以在脚本中找到包含的正确语法。即便如此,有时候很难知道在哪里开始。开发脚本可以被认为是涉及五个步骤的过程:

  1. 确定脚本的候选人。
  2. Develop workflow.
  3. 识别脚本中使用的命令。
  4. Test, test, test.
  5. Tweak.
让我们浏览这五个步骤的特定脚本:用于在投影后保留连接器的网格点分布属性的宏。

1.确定脚本的候选人
创建脚本的第一步是找到一系列可以合并和处理最小用户交互的任务。任何时候您发现自己在单个实体上重复一系列命令,机会都是脚本可能非常有用。

例如,假设您希望在保留初始分发属性的同时将连接器投影到底层数据库上。默认情况下,沿连接器单独投影到数据库中的每个点,导致投影后的一般分布。这产生了最接近初始分布的近似值,但是失去描述每个点位置的数学关系。结果,对连接器的任一端应用间距约束将不再对点的分布具有相同的效果。

在点钟内,可以在投影后手动重置分发,分发,选择“函数”选项卡,选择Tanh(双曲线切线,默认分发功能),然后单击“确定”。但是,这是一个完美的例子,脚本可以通过将投影和重新分配组合到一步中来提高生产率。

2.开发工作流程
编写功能脚本的下一步是逐步通过操作来建立脚本的工作流程。具有清晰的概述涉及的步骤以及要参数化的变量对于开发强大的脚本至关重要。在此过程的早期识别用户可调参数可以扩展脚本的适用性,使其既有更有用,也可以更容易地适应未来的应用程序。这也是仔细预见的重点可以提供内置的错误处理,而不是需要进一步扩展。

关键是减少您希望脚本进入一步一步的命令的操作,就像你会通过电话给某人。在某些情况下,这甚至可以通过简要的步骤思考来从计算机远离计算机。通常,脚本的工作流程将与该脚本相同。

对于投影示例,工作流程如下:

  1. 选择要投影的连接器。
  2. 保存连接器的初始分发功能和间距约束以在投影后重新删除。
  3. 将连接器投影到数据库上。
  4. 将投影连接器的分布重置为原始功能分布,而不是投影产生的一般分布。
  5. 重新应用初始间隔约束。

3.识别在脚本中使用的命令
稍微使得可以轻松找到程序中的功能的字形语法。毫无疑问,这一步骤可以是对脚本新的最大障碍。找到大多数脚本语言的命令和语法可以是Web搜索的繁琐组合和频繁访问手动页面。也就是说,如果您对所需的命令一般概念,那么在线的传统手册页可能是一种快速的方式来找到它。

手动页面
图2.可以在www.pointwise.com/glyph2上在线找到字形的手动页面。

例如,如果我们希望选择要投影的连接器,我们可以在“选择”下搜索“选择”,函数链接(在字母“s”下)并找到“选择性”命令。您会注意到此命令需要选择蒙版作为参数。如果向下滚动,您可以看到Next命令是CreateSelectionMask,该命令介绍了如何设置蒙版以用于选择性命令。

字形有很好的记录,每个命令都可以在手动页面中找到。命令的名称非常直观。例如,如果您希望从连接器获取分发,您可以在网格实体类型中查看手动页面---连接器,getStribution(或关于,函数,“g”,getScribution),它返回分发的指定的连接器。然后可以分别使用GetBegInspacing和GetEndspacing找到开始和结束间隔。此外,如果您希望概述缩放脚本脚本脚本,则每个尖端安装都包含字形参考手册,可以通过帮助菜单直接访问。

如果您难以在引用中定位命令时,请点击实际接口其通过字形与其网格化内核接口,这意味着更改网格或数据库的GUI中的每次操作都会创建字形脚本的片段。如果您知道如何以交互式地执行动作,则有两种提取相关代码的其他方法:

  • Journaling
  • Echoing
日记记录在文件中发送到内核的每个字形命令,可用于重新播放通过GUI调用的确切命令。要记录日记,只需选择脚本,开始日记。完成操作后,选择脚本,结束日记。虽然在技术上是技术上,但理论上可以理解地适应处理繁琐的任务,但建议不要以这样的方式使用日记文件。有许多的原因。首先,软件自动生成期刊,并包含脚本不需要临时变量和中间步骤,这使得当用户想要解析脚本并修改其行为时,这使得它们难以破译。此外,字形中的命令和/或语法可以定期更改,可以使期刊脆弱。据说,期刊可以是识别字形命令的重要参考。

在编写脚本以何时使用时,建议您从干净的表格开始,而不是日志。要找到未编写完整日记文件的命令,可以激活回音。回声与日记相同,但在调用它们而不是将它们写入文件时,将字形命令显示到消息窗口中。可以通过右键单击“消息”窗口,选择首选项和激活“期刊”来更改此选项。

消息窗口
图3.可以通过右键单击和检查日记选项来启用消息窗口中的回声。

回声是快速识别要执行的操作的字形语法的重要方法。例如,通过选择连接器并执行最接近的点投影,包括所有点,将读取消息窗口:

命令
图4.可以从日记帐文件中提取有用的脚本的命令或消息窗口中的回音命令。

超出以下划线开头的密码变量名称(其也将杂乱日志文件),临界行在图4中突出显示,该命令显示投影连接器的命令。

4.测试,测试,测试
没有人希望脚本完美地在第一次执行时完美地工作,特别是如果它是合理复杂的。但是,您可以自己做一个巨大的青睐并在被写入时测试脚本。一个有用的提示:使用puts tcl命令(类似于在python中的回声或python中的回声),以便在您继续时打印出变量和命令的值,以确保代码正在执行您所期望的内容。

例如,在我们的投影示例中,假设您已发现要选择连接器的命令,并且您想要测试用于获取开始和结束间距值的语法。您的代码会类似:

## Header, required to load Glyph commands
package require PWI_Glyph 2

## Create selection mask to select only connectors
set mask [pw::Display createSelectionMask -requireConnector {}]

## Prompt user to select the connector to project
set pickedCon [pw::Display selectEntities -description "Select connector" -selectionmask $mask curSelection]

## Set variable $con to the current selection of Connectors
## Note: No error handling, code will break if multiple connectors are selected
set con $curSelection(Connectors)

然后,您会添加该行,

set conDistribution [$con getDistribution 1]

which you expect to return the distribution of the connector. If you then use the puts command, you can see that conDistribution contains the distribution attributes, but additional commands are required to extract the end spacing values. That is, if you add the line

puts $conDistribution

代码将输出PW :: AdditionTanh_1。因此,您知道要为间距获得数值,您需要添加额外的代码,即

set beginValue [$spaceBegin getValue]
set endValue [$spaceEnd getValue]

which will return the numerical value you need. Again, this can be tested by using puts to out the values stored in $beginValue and $endValue.

Once that works, you can add the project command to the script to see if the projection is successful. Next, use the replaceDistribution command (found via echoing) to reset the distribution, and finally reset the beginning and end spacing constraints.

通过操作脚本,您可以减少正在测试的代码的复杂性并在已知的工作状态下构建,从而更容易诊断错误。最终,代码可以变得非常复杂,而是通过在简单的段中接近它,您可以避免花时间调试匆忙写入,复杂的代码。

5.调整
脚本不一定是静态的事情。在您在工作中使用脚本时,您可能希望添加一些错误处理或其他功能。例如,也许您希望将多个连接器投影在一起,在这种情况下,您可以将现有代码包装在循环中。

如果您想消除脚本中使用的硬编码参数,您也可以包含GUI。为字体脚本创建GUI是通过TK包完成的,可以提示用户用于在脚本中使用的输入。

作为示例,假设您希望扩展投影脚本的功能,以便能够任意指定投影连接器的维度。可以创建一个GUI,这些GUI每次执行脚本时都有一个用于输入新维度的文本框,而不是在脚本本身中指定固定值。这将允许您在投影时非常快速地重新维护每个连接器,而无需在每次执行之间编辑脚本。

分发点
图5.通过写入短脚本,可以保留投影前后点的分布。

附加信息
如果您希望在如何点击如何创建脚本的有关如何创建脚本的指示,我们提供了一个专注于字形的培训课程。该课程从TCL介绍开始,然后通过许多常用的命令。此外,在教程工作簿中找到的教程12(从点帮助菜单访问)通过中等复杂的脚本,用于创建具有字形脚本的整个网格。通过尖端的帮助菜单可提供字形参考手册,提供了良好的字体脚本脚本概述。

您还可以从PERTWED GITHUB存储库下载和使用脚本。这些脚本在自己的权利中很有用,但它们也很方便下载和学习,以获得用于开发自己的脚本的想法。

脚本向您提供强大的工具来帮助您的网格生成需求。使用较小的时间投资前线,可以开发脚本,从而显着减少执行繁琐,冗余任务所需的时间,或者甚至可以自动化整个啮合过程进行优化例程。通过遵循上面松散概述的五个步骤,您可以开始使用自己的脚本实现优势。

如果您有兴趣尝试为自己的脚本的脚本能力,只需单击下面的按钮即可要求提供免费评估。

[ 发表评论 ]

CRADLE CFD软件在线培训网络研讨会 | 高保真零件的铸造和制造模拟  >

 

 
CFD审查登录
用户名:

密码:

创建一个帐户

相关链接
  • 连接器 article
  • airfoilmesh脚本
  • 雕文脚本交换
  • PointWise,Inc。
  • 网络研讨会记录
  • www.tcl.tk.
  • 更多关于网格生成
  • 本次讨论已被封存。 没有新的评论可以发布。

    你的飞行可能是开放的(但是现在不要检查它)。 所有内容除了评论
    ©2020, 可行的计算.

    [ 首页 | 提交故事 | 搜索 | 民意调查 | 常问问题 | 偏好 | 隐私 | 服务条款 | rss.   ]