Got Questions? Get Answers.
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
DistMesh giving a singular FEM matrix?

Subject: DistMesh giving a singular FEM matrix?

From: Vivek Saxena

Date: 15 Apr, 2010 04:04:05

Message: 1 of 1

Hi

Anyone here with some experience of using DistMesh in finite element code? I'm solving the scalar Helmoltz equation in an annular region in 2D:

rho_1 < rho < rho_2

where rho_1 is the radius of a Perfect Electric Conducting cylinder and rho_2 is where the mesh is truncated using an Absorbing Boundary condition.

Now, I've written code to mesh the region myself (by dividing the region into annular rings and picking a fixed number of points on each ring) and I've written another program which uses DistMesh to mesh the region. I get a nice solution using my own meshing code but the FEM matrix becomes singular when I use DistMesh. This is the DistMesh Code I used:

% Circle with hole
rABC=1.5;
rCyl=0.5;
fdstring=sprintf('ddiff(dcircle(p,0,0,%f),dcircle(p,0,0,%f))',rABC,rCyl);
fd=inline(fdstring,'p');
box=[-2,-2;2,2];
[p,N]=distmesh2d(fd,@huniform,0.04,box,[]);

I tried changing box and the 0.04 value (initial edge length). But every time, the matrix becomes singular. Now, because the FEM code is working properly with my own meshing code, I have no reason to suspect it.

Is it possible that the mesh generated by DistMesh is too flat? If so, what can be done about it? I actually need to generalize my code for arbitrary objects, so I badly need DistMesh now, unless there is something else that MATLAB itself has?

Thanks
Vivek

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us