可以在Sage中进行有限元分析吗?如果是这样,它是静态的还是动态的?
如果没有,有人可以提出替代申请吗?我尝试过Impact,但它不符合我的需求.Matlab是一个选项,但我宁愿不必购买许可证.
我试图对由3种材料组成的复杂几何进行网格划分,如下所示:
几何从*.stp文件导入.
我在地理文件中定义了几个物理表面和3个物理域:
Physical Surface("air-case", 1) = {50, 42, 41, 40, 48};
Physical Surface("case-thermal", 2) = {32, 15, 22, 21, 25};
Physical Surface("thermal-grain", 3) = {2, 7, 6};
Physical Surface("thermal-fluid", 4) = {30, 27};
Physical Surface("burning", 5) = {3, 4, 5, 10, 13, 9, 11, 12};
Physical Surface("case-sym", 11) = {49, 51, 34, 43, 44, 47};
Physical Surface("thermal-sym", 12) = {24, 28, 14, 23, 29, 33};
Physical Surface("grain-sym", 13) = {8, 1};
Physical Volume("case", 1) = {6, 5, 7};
Physical …Run Code Online (Sandbox Code Playgroud) 我想通过让优化器对CAD文件进行更改来优化设计,然后在FEM中进行分析,并将结果反馈到优化器中,根据FEM对设计进行更改,直到解决方案收敛到最佳(质量,刚度,否则).
这就是我想象的:
我知道这存在于一个封闭的架构(例如isight)中,但我想使用一个开放式架构,其中优化器是在开放式编程语言(理想情况下是Python)中调用的.
最后,这是我的问题:
scripting optimization automation cad finite-element-analysis
假设我有一组点定义二维平面中非矩形形状的周长。
我需要一个函数来创建三角形网格划分,在其中可以修改三角形单元的数量并返回每个单元的 (x,y) 坐标。
谢谢。
我正在尝试构建一个非常简单的网格。我有一个盒子:
box_size = 50;
lb = 10.;
Point(1) = {-box_size/2, -box_size/2, -box_size/2, lb};
Point(2) = {box_size/2, -box_size/2, -box_size/2, lb};
Point(3) = {box_size/2, box_size/2, -box_size/2, lb};
Point(4) = {-box_size/2, box_size/2, -box_size/2, lb};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {1, 2, 3, 4};
Plane Surface(6) = {5};
Extrude {0, 0, box_size} {
Surface{6};
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,gmsh 很乐意对其进行 (3D) 网格划分。问题是我要确保盒子内的某些点是节点。所以我的问题是,我如何确保这些点,比如这些
lc = 10;
Point(5) = {7.150548, 1.000000, -6.990684, lc};
Point(6) = …Run Code Online (Sandbox Code Playgroud) 有哪些可能的情况可以使以下代码执行if以下代码段中的条件?就我而言,我无法将任何原因if与执行语句联系起来.
#include <stdio.h>
#include <stdlib.h>
void main(void){
int Nod = 1024 * 8; //Nod contains the number of nodes
double *MM; //MM is a square matrix it can contain very large number of data 10^10
MM = calloc(8 * Nod * 8 * Nod, sizeof(double));
if (MM == NULL)exit(0);
//then MM will then be passed to some other functions say
eigenvalue(MM);}
Run Code Online (Sandbox Code Playgroud)
我正在使用一个FEM代码,它在一个非常大的程序中间进行了这项检查.有趣的是,当我运行代码时,它会显示异常行为.有时程序会在这里停止.有时它只是工作正常.值得一提的是,当程序以粗网格运行时,即当Nod计算节点数量较少时,程序运行正常.但是当使用精细网格时,程序崩溃不幸.该程序在具有128GB Ram的迷你工作站中运行.该程序占用1GB(左右)的RAM.
我很好奇为什么 Haskell 或任何函数式语言中似乎缺乏有限元方法 (FEM) 实现。鉴于 Haskell 的纯函数性质,我期望找到大量数值方法的实现。
我在 GitHub 和 Google Scholar 上快速搜索并没有找到很多相关参考文献。我遇到了一个关于 Haskell 在处理大型矩阵中的应用的 Quora 问题,但没有一个答案提到稀疏矩阵或 FEM。Haskell 社区内是否有关于缺乏 FEM 实施的具体讨论或原因?我希望对此事有见解或参考。
haskell functional-programming numerical-methods finite-element-analysis