在Scheme(Fluent)中运行(do ...)内的代码与循环外的执行方式不同

2023-12-25

我的续集上一个问题 https://stackoverflow.com/q/58906949/12388640:

我正在使用 ANSYS Fluent 程序进行 CFD 模拟。该程序允许使用所谓的日志文件对模拟设置进行部分自动化,我刚刚知道该日志文件是用Scheme编写的。不幸的是我从来没有听说过Scheme,我只知道它是一种Lisp 方言(我对此也一无所知)。

我正在尝试通过使用循环自动为我的模拟设置一堆参数来自动化一些无聊的任务。如果我从 Fluent 的命令界面运行此命令(模注释):

; Select item in list
(cx-gui-do cx-set-list-selections "Boundary Conditions*Table1*List2(Zone)" '( 4))
; (Also?) select item in list
(cx-gui-do cx-activate-item "Boundary Conditions*Table1*List2(Zone)")
; Open dialog window for the selected item
(cx-gui-do cx-activate-item "Boundary Conditions*Table1*Table3*Table4*ButtonBox1*PushButton1(Edit)")
; Set the "volume fraction" parameter to 1
(cx-gui-do cx-set-expression-entry "Velocity Inlet*Frame3*Frame6(Multiphase)*Table1*Table16*ExpressionEntry1(Volume Fraction)" '("1" . 0))
; CLick OK button to close window
(cx-gui-do cx-activate-item "Velocity Inlet*PanelButtons*PushButton1(OK)")

它按预期执行:它从下拉列表中选择一个项目,打开该项目的对话窗口,将参数值从 0 更改为 1,然后关闭该窗口。如果我将上面的内容包装在一个循环中以循环列表中的项目,并替换'( 4) by (list z):

(do ((z 4 (+ 1 z)))
    ((> z 27))
  (cx-gui-do cx-set-list-selections "Boundary Conditions*Table1*List2(Zone)" (list z))
  (cx-gui-do cx-activate-item "Boundary Conditions*Table1*List2(Zone)")
  (cx-gui-do cx-activate-item "Boundary Conditions*Table1*Table3*Table4*ButtonBox1*PushButton1(Edit)")
  (cx-gui-do cx-set-expression-entry "Velocity Inlet*Frame3*Frame6(Multiphase)*Table1*Table16*ExpressionEntry1(Volume Fraction)" '("1" . 0))
  (cx-gui-do cx-activate-item "Velocity Inlet*PanelButtons*PushButton1(OK)"))

该程序从列表中选择该项目并打开对话框窗口(所以我想前三个cx-gui-do行都可以),但它不会将“体积分数”的值设置为 1,也不会关闭窗口。另外,在循环结束时,#f打印到命令窗口,我想这是计划告诉我出了问题,但我不知道是什么。

为什么当我将代码放入循环中时,代码的行为会发生变化,即使使用循环变量的部分(显然)正在工作?什么是#f打印在最后?


我正在从事一个类似的项目,这些奇怪的问题也发生在我身上。 唯一的区别是,我使用普通的 TUI 命令而不是这些 CFX 命令。

Ansys Fluent 对于Scheme 没有明确的标准,因此通常很难找到可靠的文档或解释问题。一位 Ansys 工程师告诉我,他们使用“MIT 方案 3 和 4 的混合”。

我必须给你一些建议,这有时对我有帮助。

首先尝试将您的命令包装在(begin .....)陈述。

(do ((z 4 (+ 1 z)))
    ((> z 27))
     (begin
      (cx-gui-do cx-set-list-selections "Boundary Conditions*Table1*List2(Zone)" (list z))
      (cx-gui-do cx-activate-item "Boundary Conditions*Table1*List2(Zone)")
      (cx-gui-do cx-activate-item "Boundary Conditions*Table1*Table3*Table4*ButtonBox1*PushButton1(Edit)")
      (cx-gui-do cx-set-expression-entry "Velocity Inlet*Frame3*Frame6(Multiphase)*Table1*Table16*ExpressionEntry1(Volume Fraction)" '("1" . 0))
      (cx-gui-do cx-activate-item "Velocity Inlet*PanelButtons*PushButton1(OK)")
     )
)

这经常为我解决此类问题。

其次,再次单独执行这些命令,并特别注意您在菜单中的位置。您可能会陷入某种“子菜单”,在执行其他操作之前必须退出该菜单。 我希望您从下面的示例中明白我的观点,该示例无需“退出”即可工作

/显示对象创建网格汽车表面列表(car) quit

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Scheme(Fluent)中运行(do ...)内的代码与循环外的执行方式不同 的相关文章

  • 方案单词列表 eq?

    我有一个问题 我需要查找列表是否等于第二个列表 例如 set eq 1 2 3 1 2 3 gt t set eq 1 2 3 2 3 4 gt f 这些例子在我的程序中是正确的 但这个例子不是 set eq quote quote one
  • 方案中的延续传递风格?

    我遇到了这段代码在维基百科上 http en wikipedia org wiki Continuation passing style define pyth x y k x x lambda x2 y y lambda y2 x2 y2
  • 删除重复项并对列表进行排序

    我正在尝试编写一个过程 该过程采用一个可能包含或不包含重复项的列表 然后按排序顺序返回没有重复项的列表 到目前为止我想到的是 define remove duplicated list if null list if car list ca
  • C++ 绘图包 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个关于 c 绘图包的问题 过去几年我一直在使用 python 和 matplotlib 现在我使用
  • 深层类继承层次结构——坏主意?

    希望高手能指点迷津 非常高的概述是 我不是编码初学者 但对 OOP 仍然是新手 这组消息类是我们正在编写的大型模拟应用程序的核心 我不想愚蠢地这样做 这个接口将应用程序从定序器到执行器切成两半 反之亦然 我的问题是 拥有这么深的继承层次结构
  • 经验丰富的计划者的 get-first、get-next 和 waddle 函数

    define get first lambda l call with current continuation lambda here set leave here waddle l leave quote define get firs
  • 将列表传播到父代 sexp 中

    在任何 lisp 中是否有一种形式可以在父 sexp 中 传播 列表 喜欢 spread 1 2 3 gt 1 2 3 有两种方法可以做到这一点 哪个更好取决于您最终想要什么 一般来说 您可以使用 inside 反引号 表格如下 被评估以生
  • 不知道如何解决 SICP 练习 1.11

    练习1 11 http mitpress mit edu sicp full text book book Z H 11 html thm 1 11 一个功能f由以下规则定义f n n if n lt 3 and f n f n 1 2f
  • 如何在方案中向后打印字符串?

    我知道如果我按照以下方式编写方案代码并输入 单词 a b c 它将以相同的顺序输出列表 您能告诉我是否有一种方法可以以相反的顺序打印出来 例如 列出 c b a 它需要是我以相反顺序打印出来的用户输入 所以 我不能称之为 反向 a b c
  • 如何解释方案表达式 '(a 'b)

    a b 给出答案 a b 当 a 没有绑定 未加引号 时 这是如何工作的 这就是我们计算表达式时发生的情况 a b gt a b The quote 是简写quote http docs racket lang org guide quot
  • 如何获取 SICP、Scheme、练习 2.78 等中的 put 和 get 函数

    我正在尝试在 SICP 中做练习 2 78 但 put 和 get 函数未知 我尝试过多种语言 比如相当大 racket r5rs mit scheme mzscheme等 我什至下载了SICP支持 http www neilvandyke
  • 大括号 {} 替换 Racket 中的“开始”

    是否可以有一个宏 使用大括号 来表示一个语句块 从而替换 begin 关键字 因此 代替 if condition begin statement1 statement2 statement3 statement4 else stateme
  • 方案语言:合并两个数字

    如何将列表中的两个整数合并为一个 方案中 例子 11 223 gt 11223 假设列表恰好有两个元素 并且都是数字 define merge numbers lst let 1st number gt string first lst 2
  • Letrec 和可重入延续

    有人告诉我 以下表达式的计算结果为 0 但许多方案的实现将其计算为 1 let cont f letrec x call with current continuation lambda c set cont c 0 y call with
  • 这个洗牌算法有什么问题吗?

    我一直在做一些休闲假期计算 我的迷你项目是模拟意大利游戏 tomboli 一个关键的组成部分是对以下过程的模拟 游戏由一名男子控制 他拿着一袋 90 个弹珠 编号为 1 到 90 他从袋中随机取出一颗弹珠 每次向玩家喊出弹珠编号 经过一番思
  • 使用Lisp或Scheme进行Java程序的运行时配置

    我现在看到几个项目在实际配置取决于仅在运行时可用的东西时结束 配置 Java 程序的典型方法是根据某些应用程序特定规则读取一个或多个属性文件 然后根据它们的值采取操作 在某一时刻 这种情况会崩溃 您需要在配置中使用实际的程序逻辑 然后可以用
  • Scheme 和 Common Lisp 之间的实际区别是什么? (或任何其他两种 Lisp 方言)

    注意 我并不是在问学哪个 哪个更好或者诸如此类的问题 我选择了 SICP 的免费版本 因为我觉得它读起来很好 我听说过有关它的好东西 并且我对编程的这一方面很感兴趣 我知道Scheme 是Lisp 的一种方言 我想知道 Scheme 和Co
  • 仿真输出全为零

    我的设计模块和测试平台代码已编译 但是 当我模拟时 我没有得到正确的输出 谁能告诉我我的代码哪里出了问题 这是测试平台的代码 module testbench reg 511 0 FROM LS reg CLK reg 63 0 TO IF
  • iPhone Simulator - 模拟慢速连接?

    有没有办法减慢 iPhone 模拟器的互联网连接速度 以便模拟当您处于蜂窝网络速度较慢的位置时应用程序的反应 如何安装 Apple 的网络链接调节器 这些说明截至 2019 年 10 月有效 警告 如果您刚刚升级到新版本的 macOS 确保
  • 如何在 Lilypond 中缩写“相同音符高八度的音符,带括号”?

    目前我写lilypond questions tagged lilypond代码如下所示 version 2 14 2 P parenthesize relative c clef bass

随机推荐

  • 如何从嵌入式 HTML 与 Swift 进行通信以更改 bool

    您好 我想在执行 html 中的 onReady 块后更改绑定变量 click 的值 我可以使用评估java脚本从swift到html进行通信 但是我如何从 html 中的 onReady 与 swift 进行通信以更改 bools val
  • Chrome 扩展中的跨源 XMLHttpRequest

    根据 chrome 扩展 API 如果设置了权限 则应允许使用 XMLHttpRequest 对象进行跨源调用 只要扩展程序首先请求跨源权限 就可以与其源之外的远程服务器进行通信 我正在密切关注谷歌教程 http code google c
  • 如何 dplyr 按列索引重命名列?

    以下代码重命名数据集中的第一列 require dplyr mtcars gt setNames c RenamedColumn names 2 length names 期望的结果 RenamedColumn cyl disp hp dr
  • jsPlumb:如何选择特定连接器

    我似乎不知道如何选择特定的 jsPlumb 连接器 我知道我可以选择与源或目标相关的所有连接器 但通常我会在同一源和目标之间有多个连接器 因此在这种情况下我看不到能够选择特定连接器的方法 我的具体用例如下 如果用户单击连接器 则会出现一个对
  • 无法重新启动 Spring 批处理作业

    我有一个 Spring Batch 作业 用于读取 转换和写入 Oracle 数据库 我通过 CommandLineJobRunner 实用程序运行该作业 使用 fat jar 使用 Maven Shade 插件生成的依赖项 该作业随后由于
  • 有没有办法在 JavaScript 中清除对象?

    有没有办法清除 Javascript 中的对象 具体来说 如果一个对象有多个成员变量 是否有一种简单的方法来重置每个值 function exampleObject this valueA A this valueB B this myAr
  • SQL——在 select 语句中分配位变量

    例如 declare bitHaveRows bit select bitHaveRows count from table where predicate 我可以在这一行调用任何函数吗 select bitHaveRows count 如
  • 如何在请求写入代理 Netty 服务器中的 outboundChannel 时在同一处理程序中获取响应 byteBuf

    我正在实现 netty 代理服务器 如下所示 一个http请求进来 如果本地缓存有数据 则写入channel并flush 如果没有 则从远程服务器获取数据 将其添加到缓存并刷新 我在与写入客户端的处理程序相同的处理程序中从响应中提取 byt
  • 如何查找Javascript语法错误? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在编写一段 JavaScript 代码 并在语法中犯了很多愚蠢的错误 但是找到错误所在行的唯一方法是开始注释掉我刚刚编写的代码部分
  • 搜索 R-Studio 中所有打开的文件

    R Studio 中的普通搜索功能 ctrl f 仅搜索当前选定的文件 有没有办法搜索所有打开的文件 Tom 查看以下文档 http www rstudio com ide docs using navigation http www rs
  • 我需要在共享内存对象上使用 shm_unlink 吗?

    我编写了一个连续运行的服务器 GNU C Linux 偶尔执行小型独立程序来完成工作 为了有效地将数据获取到工作程序 服务器创建并映射一个共享内存对象 为了清楚起见 缩写了代码 int fd shm open shm file O CREA
  • 如何在MaterialDesignInXamlToolkit中添加个人图标?

    Material Design Icons 项目包含大量图标 但对于非英语国家来说还不够 那么如何在不修改源代码的情况下在个人项目中添加另一个包图标呢 正如 mm8所说 是的 这只是一条路径 但是 是的 您可以构建自己的 PackIcon
  • Android Afreechart - 更改点形状、线条粗细和颜色

    我正在尝试在我的应用程序中更改折线图点的形状 我在用afreechart s TimeSeriesChart 我想让这条线在粗细 颜色和点形状方面变得更漂亮 哪里可以改代码 将使用哪种方法 我现在拥有的 source googlecode
  • 通过 ckeditor 上传的 django+heroku+S3 图片在创建帖子一段时间后被删除

    我已经在heroku中部署了我的django应用程序 postgresql作为数据库并用于存储我使用亚马逊S3存储的图像 我面临的问题是 用于创建我使用过的博客文章 ckeditor 因此用户可以输入图像以及内容文本来创建帖子 创建帖子后
  • 由于“找不到符号类 X”错误,无法在 Intellij Idea 中编译 java 类

    我在项目中从头开始创建了新的 Java 模块 在模块创建向导中选择了 创建 src 文件夹 源文件夹中有一个 com 包 其中包含两个公共类 例如 A 和 B A类实例化B类 IDE 不显示错误 并且当光标位于 A 类源内的类名上时 按 c
  • 模拟在默认系统相机应用程序中拍照

    我正在制作 Android 语音助手应用程序 在后台运行服务以识别语音命令 当用户说 自拍 这个词时 我想在默认系统相机应用程序中拍照 我已经知道如何使用语音命令 但问题是我无法让相机应用程序拍照 我尝试了一些方法但没有帮助 第一次我尝试模
  • 如何在页面刷新后保持登录状态?

    我正在使用 React 和 Node 开发一个全栈应用程序 以下是主屏幕 用户登录后 用户名会显示在导航栏中 服务器的响应 包括 JWT 会保存在本地存储中 如下图所示 现在 当我刷新页面时 用户已注销 这种情况不应该发生 因为我使用 ax
  • 如何在java和xml中传递自定义组件参数

    在 android 中创建自定义组件时 经常会被问到如何创建 attrs 属性并将其传递给构造函数 通常建议在 java 中创建组件时只需使用默认构造函数 即 new MyComponent context 而不是尝试创建一个 attrs
  • Font Awesome 5 Whatsapp 图标 CSS 样式

    我尝试使用下面的代码使用 font Awesome 5 呈现 Whatsapp 图标 i style background color 25d366 color white class fab fa whatsapp i 但它看起来像这样
  • 在Scheme(Fluent)中运行(do ...)内的代码与循环外的执行方式不同

    我的续集上一个问题 https stackoverflow com q 58906949 12388640 我正在使用 ANSYS Fluent 程序进行 CFD 模拟 该程序允许使用所谓的日志文件对模拟设置进行部分自动化 我刚刚知道该日志