问题标签 [abaqus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2228 浏览

c++ - Win32 DLL 导入问题 (DllMain)

我有一个本机 DLL,它是另一个应用程序的插件(我对它的控制基本上为零)。一切都很好,直到我链接了一个额外的 .lib 文件(将我的 DLL 链接到另一个名为 的 DLL ABQSMABasCoreUtils.dll)。此文件包含我想使用的父应用程序的一些附加 API。我什至没有编写任何代码来使用任何导出的函数,但只是在这个新的 DLL 中链接会导致问题。具体来说,当我尝试运行程序时出现以下错误:

应用程序未能正确初始化 (0xc0000025)。单击确定以终止应用程序。

我相信我在某处读到这通常是由于 DllMain 函数返回 FALSE。此外,以下消息将写入标准输出:

错误:在组件初始化之前尝试分配内存

我几乎 100% 确定此错误消息来自应用程序,而不是某种类型的 Windows 错误。

再看看这个(又名四处乱窜并翻转我知道的每个开关)我打开 /MAP 链接并在生成的 .map 文件中找到了这个:

如果我使用“undname”取消装饰这些名称,它们会给出以下(相同的顺序):

ABQSMABasCoreUtils.dll如果我没有任何引用此 DLL 的代码,我不确定我是否了解此 .map 文件中如何存在任何内容,或者为什么我的 DLL 甚至试图加载 ABQSMABasCoreUtils.dll。谁能帮我把这些信息放在一起,找出为什么这不起作用?对于它的价值,我已经通过“dumpbin”确认父应用程序导入ABQSMABasCoreUtils.dll,所以无论如何它都会被加载。我也尝试过在我的 DLL 中延迟加载这个 DLL,但这并没有改变结果。

编辑

我已经仔细检查过,所有涉及的文件都是 64 位的。

0 投票
7 回答
32708 浏览

python - 提交作业,等待其完成,然后提交另一个作业

我需要多次运行同一个 abaqus .inp 文件(在运行中略有更改),每次运行结束后,我需要提交一个 abaqus python 脚本来读取结果。

我做了以下事情:

但是,主程序在第一行开始的程序结束之前执行第二行。结果我得到一个错误。我该如何解决这个问题?

0 投票
3 回答
2426 浏览

batch-file - 以编程方式回答 abaqus 覆盖提示

当我跑

可能会发生两件事:

  1. 如果这是我第一次运行该作业,则不会进行任何查询。

  2. 但是,如果该工作存在,我会收到以下消息:

我希望我的脚本始终响应

我努力了

没有运气。

0 投票
2 回答
1244 浏览

python - 使用 abaqus python 2.6.2 将变量传递给 python 脚本文件

我正在尝试abaqus通过命令行将变量传递给脚本文件(.psf)。每次执行另一个脚本时都会进行命令行调用,并且每次调用中的变量都有不同的值。我可以在这方面对要使用的命令语法有帮助吗?我试过os.systemand subprocess.Popen,两者都给出了某种错误。

在我的主脚本(.py 文件)中,它调用 .psf

在 .psf 中

它接受这种格式的变量..

任何人都可以在这方面给出指示吗?

0 投票
2 回答
4698 浏览

python - 如何将 Abaqus python 库集成到 PyCharm 中托管的项目中

关于将 Abaqus 特定的 python 库集成到托管PyDev/Eclipse. 但不幸的是,答案与我手头的问题不兼容。

我正在使用ABAQUS版本 6.11-2 和PyCharm 3.1.3. Abaqus python 解释器位于我的 windows7(64) 机器上的以下位置:

我需要 PyCharm 来解决的库,以便让它发挥代码完成的魔力——至少我认为它们是这样的。

这是我正在尝试处理的脚本的第一行代码。

PyCharm 用红色下划线标记 abaqus 和 abaqusConstants 导入。显示:

有人可以向我解释如何在 PyCharm 中配置项目,以便 PyCharm 可以解析这些导入吗?

在设置对话框中添加提到的 Python.exe 作为项目解释器将导致以下错误消息框显示“无法在 ~path~ 设置 python SDK。SDK 似乎无效'。

屏幕截图 - 设置对话框

屏幕截图 - ErrorMessageBox

问候

0 投票
0 回答
108 浏览

python - 如何访问在另一个函数中定义的变量?

我试图从另一个函数中调用一个函数中的变量Python

我尝试返回所需的变量,然后将它们作为输入放在第二个函数中,但它告诉我它们没有定义。我不知道它为什么这样做。

基本上,我想从函数内部使用Steps列表,而不必再次请求用户输入来询问哪个测试,因为这会给用户带来不便。Create_Array()Edit_PPress()

这会产生此错误:

我在 Abaqus 中使用它,所以当我运行 Edit_PPress 时,它就像Edit_PPress(Steps)进入命令提示符一样。我无法创建类,因为 Abaqus 不会在其宏管理器中读取类内部的函数。

我试图将在函数中Steps作为 a 生成的变量调用到第二个函数中。我会将我的评论添加为评论,但我的浏览器上的格式混乱,不允许我添加评论。我只能编辑我原来的问题。另外...我确实阅读了有关如何提出好问题的常见问题解答。我缺少什么信息?listCreate_Array()Edit_PPress()

我想要完成的事情:在第二个函数中使用第一个函数中定义的 Steps 变量。

问题:告诉我当我尝试在第一个函数之后运行第二个函数时未定义 Steps 变量。

0 投票
1 回答
1673 浏览

abaqus - 为 Abaqus 子例程定义解因变量

我是编写 Abaqus 用户子例程的新手。我试图弄清楚是否有办法在 Abaqus 用户子例程中定义解因变量。我正在尝试将粘性元素的泄漏实现为时间相关参数。我打算使用 UFLUIDLEAKOFF 子程序来实现这个功能。泄漏模型如下图所示。

Leakoff=C*f(t,τ) where,C=constant t=current time τ=time at which the cohesive element was damaged

τ 是一个依赖于解的参数,如果粘性元素没有损坏,即 SDEG = 0,则未定义该参数。因此,τ 对于每个元素都是不同的,并且必须针对在此步骤中损坏的元素进行更新,对于未损坏的元素保持不变在此步骤之前已损坏,不应为仍然完好的元素定义。子程序中的泄漏将通过以下方式计算:

如果 τ 没有定义,那么我们有一个用户定义的常数泄漏 如果定义了 τ,那么我们从函数 f(t,τ) 计算泄漏值。

我相信我们可以定义一个与粘性元素相关联的状态变量,然后以某种方式在用户子程序中读取它并根据它选择泄漏值。

我将不胜感激在这件事上的任何帮助。谢谢。

0 投票
2 回答
634 浏览

python - 使用 itertools 和随附列表跳过元素模式

我有一些很慢的代码(最后一次计算为 30-60 分钟),我需要对其进行优化,它是用于结构工程模型的 Abaqus 数据提取脚本。脚本最糟糕的部分是循环,它首先逐帧(即模拟时间历史中的时间)遍历对象模型数据库,并嵌套在此循环下,它通过每个节点进行迭代。愚蠢的是,有大约 10 万个“节点”,但只有大约 2 万个有用节点。但幸运的是,节点总是以相同的顺序排列,这意味着我不需要查找节点的 uniqueLabel,我可以在单独的循环中执行一次,然后过滤最后得到的内容。这就是为什么我将所有内容都转储到一个列表中,然后删除所有重复的节点。但是从代码中可以看出:

它仍然需要进行value.data不必要的调用,大约 8 万次。如果有人熟悉 Abaqus odb(对象数据库)对象,那么它们在 python 下非常慢。雪上加霜的是,它们只在一个线程中运行,在 Abaqus 下,它有自己的 python 版本(2.6.x)和包(例如,numpy 可用,pandas 不可用)。另一件可能令人讨厌的事情是,您可以按位置寻址对象,例如frames[-1]给您最后一帧,但您不能切片,所以例如您不能这样做for frame in frames[0:10]: # iterate first 10 elements

我对 itertools 没有任何经验,但我想为它提供一个 nodeID 列表(或 True/False 列表)以映射到 setValues。对于 760 帧中的每一帧,要跳过的 setValues 的长度和模式始终相同。也许是这样的:

任何其他提示也很感激,在此之后我确实想通过.append()从循环中删除“避免点”,然后将整个事情放在一个函数中,看看它是否有帮助。整个脚本已经运行了不到 1.5 小时(从 6 小时缩短到 21 小时),但是一旦开始优化,就无法停止。

内存方面的考虑也值得赞赏,我在集群上运行这些,我相信我曾经用 80 GB 的 RAM 侥幸逃脱。脚本绝对可以在 160 GB 上运行,问题是分配给我的资源。

我已经四处寻找解决方案,但也许我使用了错误的关键字,我确信这在循环中不是一个不常见的问题。

编辑 1

这是我最终使用的:

最大的改进来自使用该compress(values, selectors)方法(整个脚本,包括 odb 部分从约 1:30 小时缩短到 25 分钟。从append = peeqValues.append以及将所有内容包含在def iterateOdb(frames, selectors):.

我使用了以下提示:https ://wiki.python.org/moin/PythonSpeed/PerformanceTips

感谢大家的回答和帮助!

0 投票
1 回答
313 浏览

python - 如何克服与 Abaqus 和 Numpy(Python 的库)的版本不兼容问题?

我想NLopt通过 python 运行在 Abaqus 中调用的外部 python 库。问题是我发现的 NLopt 是针对最新版本的 Numpy 编译的,即 1.9,而 Abaqus 6.13-2 是针对 Numpy 1.4 编译的。我尝试将 Abaqus 安装文件夹下 site-packages 下的 Numpy 文件夹替换为我通过 Python 2.6(Abaqus 使用的版本)安装 Numpy 1.9 在外部创建的相应版本 1.9。

Abaqus 甚至无法启动,所以我猜这种方法是不正确的。

有没有关于如何克服这个问题的建议?

多谢你们

0 投票
4 回答
11290 浏览

abaqus - Abaqus中积分点的定义

我需要知道abaqus子程序中“积分点”的定义。我是 abaqus 软件的新手,我正在等待您的帮助