问题标签 [finite-element-analysis]

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 投票
3 回答
393 浏览

finite-element-analysis - 有限元方法入门

一块碎石块;问题是:

  • 如何模拟从顶部到底部或从左侧到右侧的流体流动?
  • FEA (FEM,...) 是唯一实用的解决方案吗?
  • 如果是上述问题的最简单条件,即流动只能通过裂缝发生;基质和流体之间没有相互作用;等等如何使用 FEA 进行快速模拟?
  • 这个在有限元分析中具有专业知识的实用人可以在几分钟内完成吗?假设已经生成了合适的网格。
  • 如果不是,您会建议如何快速开始以解决如此简单的案例?
  • 有没有人有类似问题的经验(流建模);如果是这样,您使用了什么以及您是如何完成这项工作的?

请注意,我们知道许多 FEM 软件包的可用性,例如FEniCSOpenFoam ......

0 投票
2 回答
1626 浏览

delphi - 有限元 Delphi 库

有人可以指出我在哪里可以找到有限元 Delphi 库。

最好是开源的。

0 投票
3 回答
4779 浏览

r - 是否有实现有限元方法的 R 函数?

是否有可以使用有限元法求解偏微分方程的 R 函数(Strang 和 Fix,1973 年)?

根据有限元软件包的维基百科列表,该方法已在 Fortran、C 中实现。Fortran 和 C 都可以由 R 函数调用,但我在 CRAN 中看不到任何此类函数。


斯特朗和修复。有限元法分析。普伦蒂斯·霍尔,1973 年。

0 投票
2 回答
893 浏览

fortran - 在 FORTRAN 中有效地搜索数组

我试图以稀疏格式将刚度矩阵存储在 FORTRAN 中以节省内存,即我正在使用三个非零元素向量(irows、icols、A)。在找出这些数组的大小之后,下一步是在其中插入值。所以我使用高斯点,即对于每个高斯点,我要找出局部刚度矩阵,然后将这个局部刚度矩阵插入全局(irows,icols,A)之一。

这种插入的主要问题是,每次我们必须检查新值是否存在于全局数组中,所以如果值存在,则将新值添加到旧值中,如果不添加到末尾。即我们必须搜索整个数组以查找该值是否存在。如果这些数组(irows、icols、A)的大小很大,那么这个搜索在计算上是非常昂贵的。

任何人都可以提出一种更好的方法来为每个高斯点插入全局刚度矩阵的局部刚度矩阵。

0 投票
1 回答
982 浏览

fortran - Fortran 95 中的稀疏 Blas

我想在 Fortran95 中使用 Sparse Blas 来创建矩阵,并且我正在使用点入口构造。使用命令创建矩阵后

调用 duscr_begin(n,n,a,istat)

这里 a 是 n 乘以 n 的矩阵的句柄。在其中插入值后,如何使用其句柄 a 查看最终矩阵?由于我想将矩阵用于其他一些操作,所以我想以三个向量(稀疏)形式(row_index、Col_index、Value)查看矩阵。

关于这个 Sparse Blas 的详细信息在第 3 章中给出,可以在这里看到

http://www.netlib.org/blas/blast-forum/

0 投票
2 回答
485 浏览

python - 在 Python / Numpy / Scipy 中求解未知矩阵

我需要为未知数u4, f1, f2,f3和特定f5问题求解这个矩阵系统。我已经用我的输入生成了包含数字的矩阵,需要为这些已知数求解。f6FEA

  • 代码应如下所示:

    0 + 0 + 0 + 150*1000*u4 + 0 + 0 = −1732

所以,u4=-0.01154

  • 所以其他未知数可以找到如下:

    0 + 0 + 0 + (43:4)(−0:0115) 1000 + 0 + 0 = f1

因此f1=-500 等等....

我是初学者,熟悉 numpy 和 python OOP 的基础知识。请帮我为此设置一个代码。

待解矩阵

0 投票
2 回答
325 浏览

language-agnostic - 使用 10 节点四面体,相邻四面体之间的应变是否连续?

我正在尝试实现有限元分析算法。我求解K u = f得到位移u,然后用 计算应变u,然后计算应力。最后,我使用应力计算 Von Mises 应力,并将其可视化。从结果中我发现四面体之间的应变不连续。

我使用 10 个节点的四面体作为元素,所以位移在每个元素中都是一个二阶多项式。应该强制位移在四面体之间是连续的。并且作为位移的一阶导数的应变在每个四面体内部应该是连续的。但我不确定:四面体之间的界面是否如此?

0 投票
0 回答
105 浏览

c++ - 二元运算和简单求解器

我正在制作一个小型演示,以在我的公司推荐 Qt 和 OSG,以使与我一起工作的每个人都更容易做一些事情。但我需要尽快完成。我需要一个用于 2D 和 3D 几何图形上的 2D 和 3D 二元运算的库,它会给出一个可以在输出时在 OSG 中绘制的结果网格。我还需要一个简单的求解器和网格器,我可以使用它来定义网格内的四面体或几何内的节点上的温度,并使用 OSG 查看解决方案。我不制作求解器,我使用 UI 和一些内部例程,因此我需要这些库或者我可以制作基于 Qt 和 OSG 的简单 CAE 软件演示的东西。你能提出一些建议吗?

0 投票
0 回答
487 浏览

python - 用有限元模拟重力场

最初的问题是here,但我认为,这里可以是知道sfepy和有限元方法的人。

好吧,我想对矢量重力场进行建模,即(在弱公式中)

在此处输入图像描述

这里 G 是目标矢量场,rho 是密度值,它是给定材料的常数参数。

我的问题定义文件:

结果:

在此处输入图像描述

我预计场,统一指向砖,但得到了一些不同的东西(这不是一个大问题,我认为这只是一个标志问题)。另外,我对左下角的值增加不满意。

我必须做什么来纠正模型?

提前致谢。

0 投票
1 回答
356 浏览

raytracing - 通过扩散算法进行光线追踪

许多关于光线追踪的特定资源都讲述了:

“射出射线,找到第一个障碍物来切断它”

“射出二次射线……”

“或者,反向并近似/插值”

我没有看到任何使用扩散算法的算法。让我们假设一个点光源是一个比其他单元格密度更高的点(所有空间都被划分为单元格),照明/跟踪的每一步/迭代都使该源点使用速度场扩散到邻居中,而不是他们的邻居和继续这样。经过一些令人满意的迭代(如 30-40 次迭代)后,每个单元格的密度信息用于对该单元格中的对象进行光照。

点光和速度场:

在此处输入图像描述

但它必须是 1000x1000x1000 大小,这将花费太多时间和内存来计算。也许只是计算 10x10x10 并且在找到障碍物时,将该区域划分为 100x100x100(以动态 kd-tree 方式)可以帮助生成可接受分辨率的照明/阴影?特别是对于基于顶点的照明而不是三角形。

有没有人尝试过这种方法?

注意:这里的速度场是为了使光线主要向外扩散(不是 %100 而是 %99 以获得一些全局照明)。有限元方法可以使这个令人尴尬的并行。

编辑:任何被正密度击中的物体都将成为在其表面周围产生新速度场的障碍。所以光不能穿过那个物体,但可以镜像到另一个方向。(如果它是一个透镜物体,比光更难通过它)所以光的反射会影响具有更高迭代限制的其他物体

相同的 kd-tree 可用于对象碰撞算法 :)

只是作为一粒盐:可以训练神经网络在 30x30x30 网格中进行平流和扩散,并且可以在“gpu(opencl/cuda)--> 神经网络 ---> 有限元方法中使用 - -->阴影”的方式。