Questions tagged «finite-element»

一种求解常微分方程和偏微分方程的方法。问题的领域被分解成要素,并且在功能的基础上扩展了每个要素中的解决方案。有限元方法非常适合于自适应细化,不规则几何形状和良好的误差估计。

17
是否有适用于Python的高质量非线性编程求解器?
我要解决几个具有挑战性的非凸全局优化问题。目前,我使用了MATLAB的Optimization Toolbox(特别是fmincon()使用algorithm = 'sqp'),它非常有效。但是,我的大部分代码是在Python中进行的,我也想在Python中进行优化。是否存在可以与Python绑定竞争的NLP求解器fmincon()?它必须 能够处理非线性等式和不等式约束 不需要用户提供雅可比行列式。 如果不保证全局最优(fmincon()没有),也可以。我正在寻找一种即使在遇到挑战性问题时也可以收敛到局部最优的东西,即使它比慢一些fmincon()。 我尝试了OpenOpt提供的几种求解器,发现它们不如MATLAB的fmincon/sqp。 只是为了强调,我已经有了一个易于处理的公式和一个好的求解器。我的目标仅仅是更改语言,以使工作流程更加简化。 Geoff指出问题的某些特征可能是相关的。他们是: 10-400个决策变量 4-100个多项式相等约束(多项式范围从1到大约8) 有理不等式约束的数量大约等于决策变量数量的两倍 目标函数是决策变量之一 等式约束的雅可比行列是密集的,不等式约束的雅可比行列是密集的。

3
有限元法和有限体积法之间的概念区别是什么?
有限差分法与有限体积法之间存在明显的区别(从方程的点定义到单元的积分平均值)。但是我发现FEM和FVM非常相似。它们都使用整数形式并且对单元进行平均。 FVM不能执行的FEM方法是什么?我已经阅读了一些关于FEM的背景知识,我知道方程式是用弱形式编写的,这使该方法的陈述点与FVM略有不同。但是,我不从概念上理解差异是什么。FEM是否对单元内部未知物的变化做出一些假设,FVM不能做到吗? 我主要来自1D角度,所以也许FEM在多个方面都具有优势? 我在网上没有找到太多有关此主题的信息。Wikipedia上有一节介绍了FEM与有限差分法的区别,http://en.wikipedia.org/wiki/Finite_element_method#Comparison_to_the_finite_difference_method就是其中一部分。

5
在有限差分和有限元素之间选择的标准是什么
我习惯在有限的网格上将有限差分视为有限元的一种特殊情况。那么,如何在有限差分法(FDM)和有限元方法(FEM)之间进行数值选择的条件是什么? 在有限差分法(FDM)方面,可以认为它们在概念上比有限元方法(FEM)更简单,更容易实现。FEM具有非常灵活的优势,例如,网格可能非常不均匀,并且域可能具有任意形状。 我知道FDM优于FEM的唯一例子是在 Celia,Bouloutas,Zarba,那里的收益归功于FD方法使用不同的时间导数离散化,但是对于有限元方法可以固定。

9
学习有限元的现代资源
我需要开始使用有限元方法。我即将开始使用Claes Johnson 的有限元方法来阅读偏微分方程的数值解,但它的日期为1987年。 两个问题: 1)那里有关于该主题的较新的好的资源/教科书/电子书/讲义? 2)通过阅读1987年的书,我有多少想念的地方? 谢谢。

9
什么是在C ++中运行参数研究的好方法
问题 我目前正在进行有限元Navier Stokes仿真,并且我想研究各种参数的影响。在输入文件中或通过命令行选项指定了一些参数。其他参数在Makefile中作为标志提供,因此每当我更改这些选项时,都必须重新编译我的代码。我很想获得一些有关系统地探索参数空间的好方法的建议。 是否有有用的C ++ / Python库/框架可以帮助解决此类问题?例如,发现boost.Program_options很有帮助,因为可以使用命令行参数来重载输入文件选项。我还看到有人使用工作文件非常有效地描述每种情况,并且一位同事建议将参数作为注释块写入vtu文件也可以工作。 也许根本不值得花很多时间在这上面吗?只是分散注意力和时间流失,最好只是通过测试过程中的蛮力和特设肌肉吗? 一些想法 我目前主要是手工做事,遇到以下问题: 命名测试用例。我尝试将结果存储在以运行参数命名的文件夹中,并用下划线将其分隔,例如Re100_dt02_BDF1...。如果缩写太多,它们很快就会变长或难以阅读/难以理解。另外,实数参数包括.尴尬/丑陋的a。 记录运行数据。有时我希望看到结果写入终端并也保存到文本文件中。例如,来自StackOverflow的答案有些帮助,但解决方案似乎有点麻烦。 根据参数绘制数据。从各种日志文件中收集相关数据需要花费一些时间,然后我可以将其绘制到一个文件中,如果使用更好的系统,这也许会变得更容易。 记录有关数据的注释。检查结果后,我在文本文件中写了一些注释,但要使其与结果文件夹保持同步有时很困难。

3
使用零件积分来导出FEM离散化的弱形式的目的是什么?
当从PDE的强形式转换为FEM形式时,似乎总是应该首先说明变体形式来做到这一点。为此,您可以将强形式与某个(Sobolev)空间中的元素相乘,然后在您的区域中进行积分。这我可以接受。我不明白的是为什么还必须使用格林的公式(一次或多次)。 我主要从事泊松方程的研究,因此,如果我们以均质Dirichlet边界条件为例,即 −∇2uu=f,u∈Ω=0,u∈∂Ω−∇2u=f,u∈Ωu=0,u∈∂Ω \begin{align} -\nabla^2u &= f,\quad u\in\Omega \\ u &= 0, \quad u\in\partial\Omega \end{align} 然后声称形成变分形式的正确方法是 ∫Ωfvdx⃗ =−∫Ω∇2uvdx⃗ =∫Ω∇u⋅∇vdx⃗ −∫∂Ωn⃗ ⋅∇uvds⃗ =∫Ω∇u⋅∇vdx⃗ .∫Ωfvdx→=−∫Ω∇2uvdx→=∫Ω∇u⋅∇vdx→−∫∂Ωn→⋅∇uvds→=∫Ω∇u⋅∇vdx→. \begin{align} \int_\Omega fv\,\mathrm{d}\vec{x} &= -\int_\Omega\nabla^2 uv\,\mathrm{d}\vec{x} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x} - \int_{\partial\Omega}\vec{n}\cdot\nabla u v\,\mathrm{d}\vec{s} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x}. \end{align} 但是,是什么使我无法在第一行上使用表达式,这难道不是一种可以用来获取FEM形式的变体形式吗?它不是对应于双线性和线性形式和吗?这里的问题是,如果我使用线性基函数(形状函数),那么我会遇到麻烦,因为我的刚度矩阵将是空矩阵(不可逆)?但是,如果我使用非线性形状函数怎么办?我仍然需要使用格林公式吗?如果我不必:建议这样做吗?如果没有,那么我是否会有一个变式但不弱的公式?b(u,v)=(∇2u,v)b(u,v)=(∇2u,v)b(u,v)=(\nabla^2 u, v)l(v)=(f,v)l(v)=(f,v)l(v)=(f, v) 现在,假设我有一个带有高阶导数的PDE,这是否意味着有许多可能的变分形式,具体取决于我使用格林公式的方式?它们都导致(不同的)FEM近似吗?

4
如何将边界条件与Galerkin方法结合在一起?
我一直在网上阅读一些有关Galerkin方法来解决PDE的资源,但是我不清楚。以下是我对我所了解的内容的描述。 请考虑以下边值问题(BVP): L [ u (x ,y)] = 0上(x ,y)∈ Ω ,小号[ u ] = 0上(x ,y)∈ ∂&ΩL[u(x,y)]=0on(x,y)∈Ω,S[u]=0on(x,y)∈∂ΩL[u(x,y)]=0 \quad \text{on}\quad (x,y)\in\Omega, \qquad S[u]=0 \quad \text{on} \quad (x,y)\in\partial\Omega 其中是二阶线性微分算子,是BVP的域,是该域的边界,而是一阶线性微分算子。将为以下形式的近似值:Ω ⊂ - [R 2∂&Ω 小号ù (X ,ÿ )大号LLΩ ⊂ ř2Ω⊂R2\Omega\subset\mathbb{R}^2∂Ω∂Ω\partial\Omega小号SSù (X ,ÿ)u(x,y)u(x,y) u(x,y)≈∑i=1Naigi(x,y)u(x,y)≈∑i=1Naigi(x,y)u(x,y)\approx \sum_{i=1}^N a_i g_i(x,y) 其中是我们将用来近似一组函数。替代BVP:gigig_iuuu ∑iaiL[gi(x,y)]=R(a1,...,aN,x,y)∑iaiL[gi(x,y)]=R(a1,...,aN,x,y)\sum_i a_i L[g_i(x,y)]=R(a_1,...,a_N,x,y) 由于我们的近似值不精确,因此残差不完全为零。在Galerkin-Ritz-Raleigh方法中,通过要求我们将相对于逼近函数集最小化。因此[R ⟨ …

9
形状功能的基本说明
与我以前在本科课程中所做的相比,我刚刚开始以更加结构化的基础学习FEM。我这样做是因为,尽管事实上我可以在商业(和其他非商业)软件中使用“ FEM”,但我还是想真正了解支持该方法的地下技术。这就是为什么我至少要为有经验的技术用户提出这样的基本问题。 现在,我正在阅读Zienkwicz出版的一本颇受欢迎(我认为)且对工程师友好的书,名为“有限元方法-基础”。我从第一页开始就读过这本书,但是我仍然无法按照Zienkwicz解释它的方式来理解形状函数的概念。 从我所读到的内容中,我知道的是一个“刚度”矩阵,该矩阵将未知数与结果相关联( in:),其成分来自“节点之间的关系”,如果“关系”改变(即如果我们将其更改为高阶插值),则刚度矩阵也会改变,因为节点之间的关系也会改变。AAAAk=bAk=bAk=b 但是在这本书中,这个定义对我来说是很模糊的,因为在某种程度上它说您可以任意选择函数作为身份矩阵: 我发现的唯一解释是在此Blog中,但对我来说仍然不清楚。因此,有人可以简单地向我解释什么是Shape函数,以及如何将其“放入”刚度矩阵?

1
尼采法在数值分析中的总体思路是什么?
我知道Nitsche方法是一种非常吸引人的方法,因为它允许在不使用Lagrange乘数的情况下考虑Dirichlet类型的边界条件或以较弱的方式与摩擦边界条件接触。它的优点是,将实现实现与模型相关,这是将Dirichlet边界条件类似于Neumann边界条件转换为弱项的优势。 但是,这对我来说似乎太笼统了。您能给我更具体的想法吗?一个简单的例子将不胜感激。

3


3
查找哪些三角形点在
假设我有一个由非重叠三角形组成的2D网格,以及一组点。确定每个点位于哪个三角形的最佳方法是什么? { p 我} 中号我= 1 ⊂ ∪ Ñ ķ = 1 Ť ķ{ Tķ}ñk = 1{Ťķ}ķ=1个ñ\{T_k\}_{k=1}^N{ p一世}中号我= 1⋐ ∪ñk = 1Ťķ{p一世}一世=1个中号⊂∪ķ=1个ñŤķ\{p_i\}_{i=1}^M \subset \cup_{k=1}^N T_K 例如,下面的图像中,我们有,,,所以我想的函数该返回列表。p 2 ∈ Ť 4 p 3 ∈ Ť 2 ˚F ˚F (p 1,p 2,p 3)= [ 2 ,4 ,2 ]p1个∈ Ť2p1个∈Ť2p_1 \in T_2p2∈ Ť4p2∈Ť4p_2 …

1
可视化不连续的Galerkin /有限元数据
我想在ParaView中可视化使用不连续Galerkin(DG)方法获得的仿真结果。与有限体积方法类似,问题域被划分为立方体形的单元(“元素”)。与有限体积方法相反,每个像元中不仅有一个解向量,而且每个像元在多个高斯积分点处都包含解。üüu\mathbf{u}üu\mathbf{u} 我的问题是,是否有人有使用ParaView / VTK有效地可视化此类数据的经验,以及您选择了哪种方法来表示VTK中的数据。我想到了几种可能的方法,但我不知道哪种方法最有前途: (1)使用体 素每个集成点使用一个体素。 Pro:所有与标准VTK非结构化单元类型一起使用的插件将继续工作,而无需进行任何更改。 缺点:由于积分点分布不均匀,因此可能难以找到顶点的正确位置。同样,由于DG框架允许使用不连续的溶液,因此可以在细胞表面上定义两次溶液。同样,层次信息(域划分为元素,每个元素包含几个点)也会丢失。 (2)使用多 顶点每个积分点使用一个顶点。 专业:最容易实现,易于使用不同的解决方案在同一位置指定多个点。 缺点:能力来可视化数据为“细胞”丢失,加上相同的缺点如上。 (3)使用VTK正交方案 使用对正交方案的内置支持。 优点:相当简单的实现,保留了原始解决方案的所有关系和属性。 缺点:由于这是一种全新的单元格类型,因此许多(大多数)现有插件将不再起作用,可能必须重写。

1
如何导出有限元方法的偏微分方程的弱公式?
我对有限元方法进行了基本介绍,但并未强调对“弱公式”的深入理解。我了解到,通过galerkin方法,我们将(椭圆形)PDE的两边乘以一个测试函数,然后进行积分(按部分或通过散度定理)。有时,在得出适当的弱公式(基于书后的答案)之前,我需要进行两次部分积分。但是,当我尝试将相同的概念应用于其他PDE时(可以说它们仍然与时间无关),我似乎无法识别该公式何时适合离散化。是否有任何“危险信号”可以告诉我该形式可以离散为线性方程组? 此外,如何选择一组适当的基础函数?

1
与Adams-Bashforth算法相比,使用Adams-Moulton有哪些相对优势?
我正在计算两个空间维度和时间上两个耦合的PDE的系统。由于函数评估很昂贵,因此我想使用多步方法(使用Runge-Kutta 4-5初始化)。 使用五个先前的函数求值的Adams-Bashforth方法的全局误差为(在s = 5的情况下O(h5)O(h5)O(h^5)s=5s=5s=5在下面引用的Wikipedia文章下),并且每步需要一个函数求值(每个PDE)。 另一方面,Adams-Moulton方法每个步骤需要进行两次功能评估:一项用于预测步骤,另一项用于校正步骤。再一次,如果使用五个函数求值,则全局误差为。(s = 4O(h5)O(h5)O(h^5)s=4s=4s=4 Wikipedia文章中的) 那么,在Adams-Bashforth上使用Adams-Moulton的背后原因是什么?它具有相同数量级的错误,功能评估的次数是两倍。从直觉上讲,预测校正方法应该是有利的,但是有人可以对此进行定量解释吗? 参考:http : //en.wikipedia.org/wiki/Linear_multistep_method#Adams.E2.80.93Bashforth_methods

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.