Lc parameter versus mesh size

Contents

Illustrate influence of lc parameter on mesh size

clear variables;

Create Mesher object

When Mesher object is created it takes care of initializing interface to GMSH mesh generator

mesher = mp.Mesher();

Set meshing parameters

mesher.basename ='demolshape';
mesher.folder = '.';
mesher.dim = 2;
mesher.clean = true;
mesher.quadsonly = false;

Create object describing geometric model

geom = mp.geoms.LShapeGeom('my_domain');
geom.params.dW = 3;
geom.params.dt = 1.2;

Setup refinement

The lc value at characteristic points will be multipled by specified factor.

geom.setSpecificLcFactors(0.1,0.5);

Setup vector of lc values

dt = geom.params.dt;
% Number of meshes
nlc = 8;
% Distribution of lc param.
lcmin = 0.06;
lcmax = dt;
lc = linspace(lcmax, lcmin, nlc);
lc = lcmax - (lcmax-lcmin)*(cos(linspace(pi/2,0,nlc)));

viewer = mp.Viewer();
viewer.showNodes = false;

numNodes = zeros(1, nlc);

Series of meshes

for i=1:nlc
  mesh = mesher.generate(geom, struct('lc', lc(i)));
  viewer.show(mesh);
  numNodes(i) = mesh.countNodes();
  tstring = sprintf('lc=%4.2f nodes=%d', lc(i), numNodes(i));
  title(tstring);
  viewer.stackFigure();
end

Number of nodes versu lc

semilogy(lc, numNodes, '-*');

Table of mesh data

numNodes_VS_lc = [lc; numNodes];

if ispc % Table can be published only under Windows.
  f = figure();
  t = uitable(f, 'Data', numNodes_VS_lc, 'Position', [20,20,430,80]);
else
  disp(numNodes_VS_lc)
end
   1.0e+03 *

  Columns 1 through 7

    0.0012    0.0009    0.0007    0.0005    0.0003    0.0002    0.0001
    0.0480    0.0690    0.1030    0.1790    0.3500    0.9700    3.1810

  Column 8

    0.0001
    6.7950

mp_manage_demos('report', 'LShapeGeom_refinement', true);