Questions tagged «finite-volume»

参见使用有限体积法离散化偏微分方程。

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就是其中一部分。

3

1
使用有限体积法时应如何应用边界条件?
从上一个问题开始,我试图将边界条件应用于该非均匀有限体积网格, 我想将Robin类型的边界条件应用于域的lhs(,这样,x=xL)x=xL)x=x_L) σL=(dux+au)∣∣∣x=xLσL=(dux+au)|x=xL \sigma_L = \left( d u_x + a u \right) \bigg|_{x=x_L} 其中是边界值; a ,d是分别在边界,对流和扩散上定义的系数;Ù X = ∂ ùσLσL\sigma_La,da,da, d,是的衍生物ü在边界评价和ü为我们所求解的变量。ux=∂u∂xux=∂u∂xu_x = \frac{\partial u}{\partial x}uuuuuu 可能的方法 我可以想到两种在上述有限体积网格上实现此边界条件的方法: 鬼细胞方法。 将写为包括虚像元的有限差。σ 大号 = ð Ü 1 - ü 0uxuxu_xσL=du1−u0h−+au(xL)σL=du1−u0h−+au(xL) \sigma_L = d \frac{u_1 - u_0}{h_{-}} + a u(x_L) A.然后对点x 0和x 1使用线性插值法求中间值u (x …

2
非结构化以单元为中心的FVM CFD代码有哪些良好的数据类型?
我对有关在非结构化基于单元格的有限体积CFD中进行单元格浏览的有效数据结构的建议感兴趣。 我遇到的一个示例(在dolfyn cfd代码中)如下(我将显示相关段) 因此,我们有一个NFaces数组,用于存储每个单元格的面数。然后,CFace数组将本地到单元的面部编号映射到全局面部编号。\begin{listing}do ip=1,Ncel ... do j=1,NFaces(ip) k = CFace(ip,j) ipp = Face(k)%cell1 inn = Face(k)%cell2 if( inn > 0 )then ! internal\end{listing}\begin{listing}do ip=1,Ncel ... do j=1,NFaces(ip) k = CFace(ip,j) ipp = Face(k)%cell1 inn = Face(k)%cell2 if( inn > 0 )then ! internal\end{listing}\begin{listing} do ip=1,Ncel ... do j=1,NFaces(ip) k …

2
有限体积代码的数据结构:数组与类
我必须为磁流体动力学(MHD)编写一个有限的体积代码。我以前写过数字代码,但没有达到这个规模。我只是想问一问,使用具有类的数据结构(面向对象的方法),或者只是针对速度,可伸缩性等对多个属性使用多个数组,这将是一个不错的选择。我打算用python编写代码,并且将fortran用于数字密集型部分。 python中的类的示例是 class Cell: def __init__(self, x, y, z, U): 数组可以简单地定义为 x[nx][ny][nz] y[nx][ny][nz] z[nx][ny][nz] U[nx][ny][nz] 等等

3
如何使用有限体积一阶迎风方案处理非恒定系数?
从守恒形式的平流方程开始。 üŤ= (a (x )u )Xut=(a(x)u)x u_t = (a(x)u)_x 其中是取决于空间的速度,而是守恒物种的浓度。u一个(x )a(x)a(x)üuu 离散通量(在网格点之间的像元边缘上定义通量)给出 u t = 1F= 一个(x )uf=a(x)uf=a(x)uüŤ= 1H(fj − 12- ˚Fj + 12)ut=1h(fj−12−fj+12) u_t = \frac{1}{h}\left( f_{j-{\frac{1}{2}}} - f_{j+{\frac{1}{2}}} \right) 使用一阶迎风,我们将通量近似为 Fj − 12= a (xj − 12)你j − 1Fj + 12= a (xj + 12)你Ĵfj−12=a(xj−12)uj−1fj+12=a(xj+12)uj f_{j-{\frac{1}{2}}} = a(x_{j-\frac{1}{2}})u_{j-1} …

3
用有限体积法将Dirichlet边界条件应用于泊松方程。
我想知道在以单元为中心的非均匀网格上使用有限体积方法时通常如何应用Dirichlet条件, 我目前的实现只是在确定第一个单元格的值时施加了边界条件, ϕ1=gD(xL)ϕ1=gD(xL) \phi_1 = g_D(x_L) 其中是可变的解决方案和克d(X 大号)是在域的LHS狄利克雷边界条件值(NB X 大号 ≡ X 1 / 2)。但是,这是不正确的,因为边界条件应固定像元面的值而不是像元本身的值。我真正应该适用的是ϕϕ\phigD(xL)gD(xL)g_D(x_L) xL≡x1/2xL≡x1/2x_L \equiv x_{1/2} ϕL=gD(xL)ϕL=gD(xL) \phi_{L} = g_D(x_L) 例如,让我们求解泊松方程, 0=(ϕx)x+ρ(x)0=(ϕx)x+ρ(x) 0 = (\phi_x)_x + \rho(x) 有初始条件和边界条件 ρ=−1gD(xL)=0gN(xR)=0ρ=−1gD(xL)=0gN(xR)=0\rho=-1\\ g_D(x_L)=0 \\ g_N(x_R)=0 (其中是右侧的Neumann边界条件)。gN(xR)gN(xR)g_N(x_R) 注意数值解法如何将单元格变量的值固定为左侧的边界条件值()。这具有向上移动整个解决方案的影响。通过使用大量的网格点可以使影响最小化,但这并不是解决问题的好方法。gD(xL)=0gD(xL)=0g_D(x_L)=0 题 使用有限体积法时,将以何种方式应用Dirichlet边界条件?我假设我需要通过使用ϕ 0(幻影点)或ϕ 2进行插值或外推来固定的值,以便经过这些点的直线在x L处具有所需的值。您是否可以提供任何指导或示例,说明如何对以单元为中心的非均匀网格进行此操作?ϕ1ϕ1\phi_1ϕ0ϕ0\phi_0ϕ2ϕ2\phi_2xLxLx_L 更新资料 这是我尝试使用您建议的幻像细胞方法,看起来合理吗? 该方程对于细胞是(其中˚F表示的磁通φ),Ω1Ω1\Omega_1FF\mathcal{F}ϕϕ\phi F3/2−FL=ρ¯F3/2−FL=ρ¯ \mathcal{F}_{3/2} - \mathcal{F}_{L} = \bar{\rho} …

2
微分形式与二阶有限体积法之间的联系
今天阅读有关微分形式理论的文章时,让我印象深刻的是它使我想起了二阶有限体积法(FVM)。 我正在努力弄清楚这种想法只是微不足道的还是存在更深层次的联系。 好吧,微分形式可以推广一些根深蒂固于二阶FVM的概念,例如通过表面的流体通量,而我们都涉及FVM中的通量。那么(斯托克斯的)积分定理是微分形式理论的中心对象之一。证明涉及在流形上整合微分形式,在流形上出现单纯形(三角形,四面体等)。实际上,歧管以我们代表平滑形状的方式进行细分,使用直边的单元格可以使流体通过。 这些只是一些类似的东西。事实是,关于微分形式的阅读使我无法停止思考FVM。 二阶有限体积法实际上代表微分形式理论的计算表现吗?

1
间断Galerkin方案中的CFL条件
我已经实施了ADER-间断Galerkin方案,用于解决以下类型的守恒律线性系统 ∂tU+A∂xU+B∂yU=0∂tU+A∂xU+B∂yU=0\partial_t U + A \partial_x U + B \partial_y U=0 并观察到CFL条件非常严格。在参考书目中,时间步长的上限Δt≤hd(2N+1)λmaxΔt≤hd(2N+1)λmax\Delta t \leq \frac{h}{d(2N+1)\lambda_{max}} 可以在哪里找到 hhh 是单元格的大小 ddd 是维数, NNN 是多项式的最大次数。 有什么办法可以避免这个问题?我一直在使用WENO-ADER有限音量方案,而CFL限制则更加宽松。例如,对于5阶方案,使用DG时必须将CFL设置为低于0.04,而CFL = 0.4仍可以在WENO-ADER FV方案中使用。 例如,为什么在计算航空气动(线性欧拉方程)或类似应用(气体动力学,浅水,磁流体动力学)中使用DG方案而不是ADER-FV?尽管时间步长低得多,但是该方案的总体计算成本是否与ADER-FV相似? 欢迎对此提出意见和建议。

2
在非均匀网格(仅一维)有限体积法上求解泊松方程时的奇异误差
最近几天,我一直在尝试调试此错误,我想知道是否有人建议如何进行操作。 我正在求解泊松方程,用于非均匀有限体积网格上的阶跃电荷分布(静电/半导体物理学中的常见问题),其中未知数定义在单元中心,并且通量在单元面上。 0 = (ϕX)X+ ρ (x )0=(ϕx)x+ρ(x) 0 = (\phi_x)_x + \rho(x) 收费资料(来源条款)由 ρ (x )=⎧⎩⎨− 1 ,1 ,0 ,如果 - 1 ≤ X ≤ 0如果 0 ≤ X ≤ 1除此以外ρ(x)={−1,if −1≤x≤01,if 0≤x≤10,otherwise \rho(x)= \begin{cases} -1,& \text{if } -1 \leq x \leq 0\\ 1,& \text{if } 0 \leq x …

1
CFD的混合空间方案:混合与转换有何缺点?
除了由于必须在某个区域内计算两个通量而导致的额外计算成本外,在有限体积方法中混合方案的混合两个通量评估是否还有任何弊端?通量评估如下所示: Fi+12=Λi+12Fci+12+(1−Λi+12)Fui+12Fi+12=Λi+12Fi+12c+(1−Λi+12)Fi+12u\mathbf{F}_{i+\frac12} = \Lambda_{i+\frac12} \mathbf{F}^c_{i+\frac12} + (1 - \Lambda_{i+\frac12}) \mathbf{F}^u_{i+\frac12} 根据您的应用,该开关基于压力和/或密度梯度传感器。是一个中心方案(McCormack,紧凑,...),是一个迎风方案,例如使用MUSCL重建的通量差分裂。如果我使用的连续函数混合两个方案,而不是简单地在值为0或1的方案之间进行切换,则在数值,保守属性方面是否存在任何问题?FcFc\mathbf{F}^cFuFu\mathbf{F}^uΛΛ\LambdaΛΛ\Lambda
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.