用户登录

你在这里

EFG Matlab例程

这些文件以前是存放在西北大学的,但不久前被删除了。无单元伽辽金法的原始1d和2d Matlab例程现在位于

http://www.duke.edu/~jdolbow/EFG/programs.html

本文对这些例程进行了详细的描述

J. Dolbow和T. Belytschko(1998),“无网格单元无伽辽金方法编程介绍”,《工程计算方法档案》,第5卷,第5期。3,第207—242页。

目前,上面的页面是原始页面的一个可怜的副本,但至少例程在那里。当我有时间的时候我会添加更多。

评论

你的节目很有趣。它们对我很有用。

你有J. Dolbow and T. Belytschko(1998),“An Introduction to Programming of no mesh - Element Free Galerkin Method”的论文吗,《工程计算方法档案》,第5卷,第5期。3”?

你介意寄给我吗?

我的邮箱:longvanbckt85@yahoo.com.vn

谢谢你!祝你今天愉快!

我不确定我是否有可以贴在这里的预印本或者电子版的论文可以寄给你。如果你给我你的常规邮件地址(请通过电子邮件),我将很乐意给你发送一个标准的重印。

否则,文章可以在网上购买这个位置

bqtinh的照片

亲爱的Dolbow教授

在你的代码中,当你使用(48x24)时,出现了一个“normm”错误:

设置节点坐标
ndivw = 24;

结果:

enorm =

1.930300645046296 e + 004

你觉得呢?我认为这是错误的。

最好的问候!

河静

谢谢你指出这一点。我相当确定代码中有一个bug,可能是在我从一些旧文件转移它时引入的(并且不得不重新输入许多部分)。

我会调查的。

bqtinh的照片

亲爱的Dolbow教授

你在你的代码中发现任何bug了吗?我期待很快收到你的来信,祝福你

河静

如果我们将这条线改为“ndivl = 48;ndivw = 24;”,这意味着我们设置了更多的节点,所以我们也应该设置更多的高斯点,我们改变这条线:

将“ndivlq = 20;ndivwq = 8;”设置为“ndivlq = 10;ndivwq = 4;”,则矩阵m不为单数。

我是一名研究生,来自中国江苏省。我的课题是基于无网格法的连续体结构拓扑优化。希望与大家交流。谢谢!

我的MSN和邮箱都是:lszab@163.com

bqtinh的照片

亲爱的Dolbow教授

当你做的情况47x23如下:

设置节点坐标
ndivw = 23;

运行时出现错误:

? ?对已清除的变量nt的引用。

==> efg2d在76处出错
LTHT = length(nt);

这是什么?真奇怪!

最好的问候!

河静

嗨见到

您认为无网格方法是否适用于钢材料(弹塑性垫)的断裂力学?

谢谢

农德孟

if(x(1,j)==Lb)修改为"if(x(1,j)==((Lb/ndivl)*ndivl))"

那么好吧!

亲爱的Dolbow教授:

我是亚当·奥斯曼,布里斯托尔大学机械工程专业的三年级学生。目前,我正在做EFG的研究项目,需要为一个线性弹性二维问题生成代码。我读了你的论文《无网格单元无伽辽金法编程导论》,并运行了代码。你介意帮我深入了解一下密码吗?

问候,

亚当奥斯玛

我很乐意这么做,亚当。也许我们会在这个过程中发现代码中的bug。

亲爱的多尔博教授:

在编码中,连通性数组的用途是什么?我已经运行了程序,并在运行后查看了数组。这些值并不是递增或递减的模式。

还有一件事,为什么numq2=numcell*quado^2?每个单元格有16个交点吗?但是,从编码中的注释来看,每个单元格中有4个正交点。

亚当

亚当,

连接阵列用于定义背景集成单元。每一列是四边形单元格的节点编号列表。

正交规则是基于两个一维规则的二维高斯规则。所以4点规则产生4x4 = 16高斯正交点。

亲爱的多尔博教授:

谢谢你的回答。他们真的帮助我理解你的代码。关于上述主题,牵引力的定义究竟是什么?一开始我认为它是一个力,这意味着它有牛顿单位。在你的编码中,你使用牵引力作为剪切应力

泰= - (P / (2 * Imo)) * ((D ^ 2) / 4-gpos (2, 1) ^ 2);

它的单位是N/m。你能解释一下它是怎么工作的吗?因为我在考虑在矩形杆的中间施加点荷载而不是单位长度的荷载。

谢谢。

问候,

亚当

亚当,

牵引力的单位是单位面积上的力。在这个例子中,P的单位是力,I(面积转动惯量)的单位是长度^4,D的单位是长度。所以,如果你把所有的东西都放到方程的右边,你会发现单位是F / L^2。

我也只是想纠正你的说法:牵引力不被用作剪切应力。它们被用作边界条件。

如果你想应用点加载,这在无网格方法中有点棘手。每个节点y方向上的力f_{iy}是从边界\Gamma上的积分得到的

f_{iy} = \int_\Gamma t_y \phi_i

其中\phi_i为节点形状函数。如果我们考虑边界上某点y_p处的点载荷P,用狄拉克函数的分布表示,我们得到

f_{iy} = P \phi_i(y_p)

所以,在你想施加载荷的那一点,你必须首先找到所有在那一点非零的形状函数。然后把这些都乘以点载荷的大小P。

亲爱的约翰教授!

我叫范。我是very interested about your program.

我有一个矩形板的问题如下:

+右边缘应用分布负载f_x

+顶部边缘应用分布负载f_y

+左边缘固定为BC: u_x = 0

+底部边缘固定为BC: u_y = 0

能帮我解一下这个问题的边界条件吗?

在你的程序中,f和q向量沿一条边积分。但在我的问题中,我必须在两条边上对它们积分。

如何对f和q向量积分?

谢谢

CanhLe的照片

亲爱的Dolbow教授:

我正在研究无网格方法,并尝试将其应用于塑性问题。为了理解无网格方法,我实现了弹性梁的EFG,但是存在一个支持域的问题。通过取支持域的半径dm = dmax*节点间距,当节点数(nno)不多时,我得到了很好的结果。对于长度为10米的光束,当nno大于400时,得到的结果很差。令人惊讶的是,对于不同的nno(包括nno = 801的情况),我保持dm恒定(dm = 5),解稳定收敛。

你对这种情况怎么看?dm有下界吗?

回到你的1D代码,我发现当取nno=100 (x = [0.0:.01:1.0];当然gg = - 0.05:.01:0.95;gg(1) = 0.0;),出现奇异问题(警告:Matlab中的矩阵对工作精度是奇异的)。

我怎样才能克服这个问题呢?

我期待你和机械师的回复。万博体育平台

最好的祝愿,

姜文乐,博士生
土木与结构工程系
谢菲尔德大学
Mappin街,
谢菲尔德,S1 3JD,英国。
电话:GB +44 1142225724
http://www.cladu.shef.ac.uk/new

CahnLe,

首先,我为延迟回复这篇文章而道歉。我之前因为某种原因错过了。

假设一切都做得很好,人们不应该在EFG中看到您描述的支持大小的问题类型。您可以检查以确保形状函数是线性精确的。换句话说,它们在每一点的和应该是1.0,它们应该准确地表示x和y方向上的线性场。

关于1D代码,你对gg的修改是不正确的。使用

Gg = - 0.005:.01:0.995

Vivek varshney的照片

嗨,先生

我的研究方向是土壤结构相互作用问题。我可以使用无混乱的方法,如FEM。请告诉我EFG适用于什么类型的问题。

问候

vivek varshney

Vivek,

当然,任何能用有限元法解决的问题,也能用EFG法解决。问题是使用脑电图是否有显著的优势。

如果你感兴趣的问题涉及到大的变形,那么使用像EFG这样的无网格方法可能会有好处。

Vivek varshney的照片

非常感谢您的回复。

亲爱的Dolbow教授:

我叫明。

在EFG程序中,q是沿本质边界积分得到的向量。同样在EFG项目中,你用了精确位移,从解析解中得到的,来积分。

然而,如果不知道确切的解,我如何计算向量q?

例如,本质边界沿x方向的位移受到限制,即本质边界u_x = 0, u_y != 0(不等于0)。

使用FEM,我可以沿着基本边界输入u_x = 0,而不必担心u_y。但是在EFG中,如果我不知道位移的解析解,我怎么计算向量q呢?

问候

N.Minh阮

明,

向量q来自拉格朗日乘子施加的约束(请阅读描述代码的论文第5节)。它假设您希望沿域的左边缘固定位移场的u_x和u_y分量。

如果你想让这两个分量都为零,那么改变很简单:q向量就是零向量。

但是,如果您只想修复位移字段的一个组件,则必须对代码进行大量修改。这是因为不仅需要改变q向量,还需要改变G矩阵和离散拉格朗日乘子的数量。

代码根本不是为了研究而设计的:它太具体了。我们必须把它写得很短,这样才能写进纸里。它只是为了帮助人们理解这个方法。

亲爱的Dolbow教授:

我一直在考虑修改你的EFG代码。

离散方程:

[K G;[0] * [u];Lambda] = [f;问)

如果u_x是固定的,而u_y是自由的,这意味着u_y应该被视为未知变量。因此,q(向量),lambda(向量)和G(矩阵)需要修改。

我的想法:

Q现在被q_x取代,q_x是一个零向量(因为u_x是固定的)

减小了q、lambda和G的大小(因为没有考虑u_y)

这个想法正确吗?这似乎很容易。然而,当我用这个想法修改代码时,我遇到了一些关于矩阵维度的问题

问候,

明,

你的建议是合理的。代码中可能有许多地方需要进行更改,您可能只是错过了一个地方。

我还想评论一下,你需要在某个地方固定一个额外的自由度。仅仅沿一条边约束位移的x分量不足以防止刚体平移。

谢谢Dolbow教授!

我将再次检查我的代码。实际上,我的问题需要沿一条边固定u_x,沿另一条边固定u_y。但我认为,我应该先在一条边成功地固定u_x,然后u_y也会相似。

当我完成这个修改或者出现其他问题时,我会回来的。

问候

Vivek varshney的照片

我想知道

1)二维问题的公式对于任何问题都是一样的。这不是取决于问题的类型吗?

2)采用EFG法对土体材料进行弹塑性模型分析。我该如何处理这个问题?

3)在我的问题有4个接口。我将如何照顾接口。我的意思是说在接口上我应该如何取节点。我该如何组合矩阵呢?我该如何表述我的问题?

4)对于土的弹塑性模型分析是否有免费的软件包?

请消除我的疑虑

问候

vivek

Vivek,

如果您正在寻求修改EFG Matlab例程来解决您的问题,我认为这不是一个好主意。正如我之前提到的,代码不是用于研究的。它是为一个非常具体的问题而设计的,同时又足够清晰,使人们能够学习该方法。

当然,公式取决于你要解决的问题和控制方程的类型。这是任何数值方法的情况。

弹塑性的EFG与弹塑性的FEM并没有什么不同。

你的第三个问题很笼统,我不确定这个论坛是回答这个问题的最佳场所。你最好和你的导师坐下来解决这些问题。

我不知道任何免费可用的网格包包含土壤模型。

Anand V Kulkarni的照片

Dolbow教授

非常感谢。我有还有一些疑问。

在点2的DOI中,点1处形状函数的值等于在点1的DOI中,形状函数在点2处的值

EFG方法在非线性问题的求解中表现如何?

谢谢。

阿南德

Anand,

我不认为你问的形状函数是对称的。它可能发生在一些非常特殊的情况下(统一网格和支持乘数),但一般来说,它不是强制执行的,我不明白为什么人们应该期待它。

EFG是一种伽辽金方法(因此名称中的“G”)。它可以像有限元法一样应用于非线性问题。它可以处理比FEM更大的变形,但这需要更大的计算成本。

Vivek varshney的照片

dolbow教授

对于我先前所问的问题,请给我一些建议

谢谢

vivek varshney

Vivek varshney的照片

谢谢你的回复

亲爱的多博教授!

我用EFG来解决弹塑性问题。我有个问题:

当我用牛顿-拉夫森法计算EFG时,我有方程

[K G;G' 0]*{{u}}={f_ext - f_int;Q_ext - q_int}。

对吗?我怎么能得到“f_int”和“q_int”?它们和你程序中f和q的过程相似吗?

的问候!

长范

Vivek varshney的照片

我想知道在EFG中如何处理梁上的点荷载。之前你已经解释过了。但我找不到你。请解释

您需要在施加点载荷的位置找到所有活动(即非零)的EFG形状函数。为了便于讨论,我们假设在所讨论的点上有五个非零形状函数,它们的值为[0.1 0.2 0.4 0.2 0.1]。然后将点载荷的大小乘以每个形状函数的大小,从而得到向量F*[0.1 0.2 0.4 0.2 0.1]。然后需要将此矢量的条目放置在全局力矢量的适当槽中。

Vivek varshney的照片

非常感谢您的回复

vivek

亲爱的Prof.Dolbow

我有一些关于G矩阵,qk和f向量的问题。

1 /。为了在程序中形成f向量,我们必须对牵引边界上的高斯点进行循环。结果为牵引边界节点处的fx、fy值。但是我认为由于高斯点的DOI所以在f向量的牵引边界上的节点上有一些值fx,fy。与FEM相比,只有牵引上的节点fx、fy等为零。

2 /。程序中的G矩阵和qk向量是在1个位移边界上循环形成的。如果有2或3个边界不是连续的,我该怎么办?我如何在不循环高斯点的情况下直接处理节点?

3 /。如果基本bc是非线性的或一般的,离散方程是否仍然成立?

请给我解释一下这些事情!

的问候!

亲爱的同事们,


我叫Metsis Panagiotis,是希腊雅典国立技术大学土木工程学院的一名博士生。我试图充分理解一些无网格技术,特别是无单元伽辽金方法。出于这个原因,我正在开发一个计算机代码(现在是2D),试图解决一些简单的(暂时)问题。我想知道是否有人能回答(一些)我的问题:


1)纳入节点约束。当我试图解决一个具有节点约束的模型时,我提出了一个非常稀疏的G矩阵(大多数元素为零),这是有问题的(作为m矩阵的一部分)。最后我得到了一个解,但误差很大(首先是位移场)。总体方法应该是什么?


2)背景网格。除了构建结构化细胞的背景网格外,还有其他的EFG整合方法吗?


3)剪切锁定。在特定的模型中,我遇到了类似于剪切锁定现象的东西。这是事实吗?还是我应该再次检查我的代码?


4)在变量(如背景单元格或节点)变化很小的情况下,我得到了很多不同的结果。这种方法是正确的吗?


5)我未来的目标是使用无网格方法的一般模式来模拟一些断裂现象。你认为现有的无网格方法中哪一种是最合适的?

非常感谢您的宝贵时间。

Metsis Panagiotis


土木工程师理学硕士


博士生


土木工程学院


雅典国立技术大学


希腊

亚历杭德罗·奥尔蒂斯-伯纳丁的照片

亲爱的Panagoitis,

对于你的稀疏矩阵,试试TAUCS。我有
成功地使用它来管理大型稀疏矩阵。它
很容易使用,但有一个问题。有一些操作系统真的
我不喜欢TAUCS,所以可能会出现问题。其中一个系统是
窗户但是,如果您熟悉UNIX/LINUX,就不应该有
任何问题。我用的是Red Hat Enterprise 9,它运行得很好。
TAUCS是用C编写的开源代码。如果您正在使用c++,您将会使用
必须制作一个包装器才能编译它。如果使用C,则不需要换行
是必要的。Matlab和Mathematica中的一些函数是
使用TAUCS实现,所以这应该是TAUCS没有实现的信号
一个糟糕的选择。

这是链接
TAUCS:

http://www.tau.ac.il/~stoledo/taucs/

最好的

亚历杭德罗。
奥尔蒂斯

abshaw的照片

亲爱的Panagiotis,

让我试着回答你的几个问题。

2)节点积分技术不需要背景网格。可参考本文(Galerkin无网格法的稳定一致节点积分,IJNME, 50, 435 - 466, 2001)及其参考文献。

3)除非明确处理,否则脑电图也会发生剪切锁定。

4)如果您使用背景网格进行集成,那么网格的轻微变化可能会影响解决方案。背景网格的选择要求内核的支持与背景单元的支持完全一致。你可以在论文中找到一些细节(Galerkin弱形式在无网格方法中的数值积分,计算力学,23,219 -230,1999)。

5)我发现这篇论文(裂纹颗粒:任意演化裂纹的简化无网格方法,IJNME< 61, 2316 - 2343, 2004)非常有前途。

1)我不确定。你可以尝试不同的求解器来处理稀疏矩阵。

这一回应并不全面,但希望能有所帮助。

干杯! !

阿米特

非常感谢您的回复。我提出的稀疏矩阵m (GG),可能是由于节点约束的错误实现。我使用朗朗日乘数法,但我找不到任何关于具体(节点约束)问题的分析论文。什么好主意吗?

提前感谢,

Panagiotis

亚历杭德罗·奥尔蒂斯-伯纳丁的照片

这是我最早看到的论文之一。从我的上一篇文章中,我解决了一些问题,我正在扩展我的代码…: )

Metsis Panagiotis

gohelvivek的照片

你好先生,

你对我帮助很大,谢谢你的支持。

先生,你能告诉我在哪里可以找到Dolbow博士给出的1d EFG问题的精确解的推导吗?

谢谢,

Vivek。

mech.iust.ac.ir

在EFG程序中,q是沿本质边界积分得到的向量。同样在EFG项目中,你用了精确位移,从解析解中得到的,来积分。你为什么用精确的解?!!!!!!!!!

当我的问题有精确解时,为什么要用无网格法?

请回复我的问题

当设置一个问题来进行收敛性研究时,你必须设置bcs来匹配精确的解决方案。当然,一般来说,人们不需要知道使用EFG(或任何其他数值方法)的确切解。

mech.iust.ac.ir

我不明白,dolbow教授在q中使用了精确解,如果他不知道精确解,他怎么能写出q??

期待您的回答!

的问候!

阿里·拉梅什

阿里,

在弹性静力学问题中,边界由两部分组成。在边界的一部分,我们知道牵引场。在边界的另一部分,我们知道位移场。

构造矢量q所需要知道的就是位移边界上的位移场和MLS形状函数。你不需要知道方程组的精确解。你只需要知道边界条件,对于任何边值问题都是一样的要求。

mech.iust.ac.ir

我想程序薄板的固有频率与EFG与penelty方法。我有几个问题:

4高斯点足够编程吗?

我想找到完全自由薄板的固有频率。(ffff)我认为对于这个边界条件,我不需要使用惩罚因子。这是真的吗?(因为我们不需要强加b.c,所以我们不需要惩罚因子)

3 .二维问题中10个高斯点,我写不出求高斯点的程序。但是我看到了一个4高斯点的程序。我怎么能写超过4高斯点的程序?

有薄板的程序吗?(用脑电图或其他方法)

(请原谅我的写作!)

提前感谢,

阿里…

mech.iust.ac.ir

你好所有的,

谢谢你的回复!我自己解决了我的问题。

gohelvivek的照片

你好,多尔博博士,

本文对EFG方法进行了很好的描述,对理解EFG方法有很大的帮助。

你是如何找到一维杆问题的精确解的。如果有文献,请推荐一下。

谢谢,

Vivek Gohel

PG学生

Nirma大学,印度。

Vivek,

我想我只是简单地推导了一下。

教授。Dolbow

亲爱的Dolbow教授:

我是来自印度的拉加文德拉硕士学生。先生,我阅读了您的EFG 1D代码,我正试图将其应用于内部产生热量的1D传热问题。我正试图重现无元素伽勒金方法应用于传热的纸张。

先生,我的问题描述是一个棒,一端有373k,另一端有200k,它有均匀的内部热生成

先生,我已经对代码做了以下更改来解决问题

k1 = 10;面积=1.0;%用k1电导率代替E杨氏模量

Qh =100 %的内部热产生系数

k = k+(重量*k1*面积*jac)*(dphi'*dphi) % STIFF矩阵

Fbody =面积*xg*qh

F = F +(重量*fbody*jac*qh)*phi' %力矩阵

在刚度矩阵公式中,我用K代替E

在力的公式中,我用了内热生成

使用拉格朗日乘子强制边界条件

Q = [373]

我用373k作为一端的温度,我想在另一端加20

我想知道如何在酒吧的另一端申请200k ?

我理解了整个代码,但是我不明白如何通过拉格朗日乘子应用边界条件,先生,你能解释一下边界条件的应用吗

先生,我的邮箱是braghavendra05@gmail.com请把报纸寄给我

J. Dolbow和T. Belytschko(1998),“无网格单元无伽辽金方法编程介绍”,《工程计算方法档案》,第5卷,第5期。3,第207—242页。

以下是我的疑问

1)修改代码是否正确,当我运行代码时,我没有得到任何错误?

2)我想再应用一个边界条件,即在酒吧的另一端200k

3)拉格朗日乘子对边界条件的进一步解释

提前感谢

b raghavendra

硕士研究生印度

Satish diwakar的照片

尊敬的先生,

我是Satish diwakar研究生,我的问题是如何改变你的2d matlab代码中的节点,这是为TIMESHENKO光束编写的。我学习了您的论文《复杂形状薄板静振动和自由振动分析的无网格法》。先生,如果您有这篇论文的matlab代码,请发送到我的邮箱ID为satish_hbti@in.com.如果有人知道,请回复或发送邮件。

“先谢谢你。”

亲爱的J. Dolbow博士

你有3d节点生成的MATLAB子程序吗?我无法正确实现节点的连通性。

你能帮我吗?

谢谢

订阅“EFG Matlab例程”评论

更多的评论

辛迪加

认购辛迪加