structured quadrilateral mesh in PDE Toolbox

30 views (last 30 days)
Hello, I would like to ask if in the PDE Toolbox it is possible to generate a structured quadrilateral mesh instead of the triangular one? If so how can it be implemented in the code? My geometry is simply a rectangular of dimensions 3cm x 0.1mm and the mesh I would like to create is 0.5mm x 0.005mm. Here is a part of my code:
% Geometry description:
pderect([0 0.03 0.0001 0],'R1');
set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','R1')
% Mesh generation:
setappdata(pde_fig,'Hgrad',1.3);
setappdata(pde_fig,'refinemethod','regular');
setappdata(pde_fig,'jiggle',char('on','mean',''));
setappdata(pde_fig,'MesherVersion','preR2013a');
pdetool('initmesh')
pdetool('refine')
Thank you very much in advance, N
  2 Comments
Precise Simulation
Precise Simulation on 22 Nov 2017
Edited: Precise Simulation on 22 Nov 2017
Although an old question, as it seems to resurface again and again, for future reference the FEA Toolbox does support structured meshes with quadrilateral and hexahedral finite elements. They can either be generated with the built-in quadmesh function, generated manually through a set of grid primitives, or imported from an external mesh generator.
Alejandro Arrizabalaga
Alejandro Arrizabalaga on 29 Nov 2017
Yes, but the FEA Toolbox requires an additional license.

Sign in to comment.

Accepted Answer

Bill Greene
Bill Greene on 5 Jun 2014
There is no support for quadrilateral elements in PDE Toolbox-- either in the meshers or the computational modules. However, if you have a rectangular geometry, you can generate a regular triangular mesh using the poimesh function. This option isn't available in the pdetool GUI so you would need to define your problem using the command line interface.
Bill
  3 Comments
Bill Greene
Bill Greene on 5 Jun 2014
I don't know of any way to use the poimesh function with the pdetool GUI.
The only way I know to use poimesh is by defining your entire analysis as a MATLAB script using the command line functions that are part of PDE Toolbox. All of the examples on this page: http://www.mathworks.com/help/pde/examples/index.html
take that approach.
In this example the geometry is a square but you can easily make that a rectangle. That example creates the mesh with this function call:
[p, e, t] = initmesh(g, 'Hmax', hmax);
but you could replace that with
[p, e, t] = poimesh(g, 20);
Bill
PS: You didn't say why you needed a regular grid but if, for example, it is so you can get the results defined on a rectangular grid, you can perform the analysis with the unstructured mesh and then call the tri2grid function to interpolate those results to a grid.
Natalia
Natalia on 11 Jun 2014
Thank you again for all the help Bill. The reason for defining a regular grid was to obtain the results already on such grid without using the unstructured grid and doing the transformation later.
In any case for one rectangle I defined it as:
width = 0.3; height = 0.0001;
gdmTrans = [3 4 0 width width 0 0 0 height height];
g = decsg(gdmTrans', 'S1', ('S1')');
[p,e,t]=poimesh(g,width/5e-3,height/0.005e-3);
figure; pdemesh(p,e,t);
pdeplot(p,e,t);
I have another question though, if I want to have a structure composed of two rectangles, one on top of another with the coordinates [0 width width 0 height height 2*height 2*height], what would be the best way to define the grid for such system as a whole?
Many thanks, Natalia

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!