Mesh density control demo

Contents

Illustrate controling mesh density via global field

RectangleGeom describes simple rectangle geometry. It will be meshed specifying the mesh density in three ways: * using nodal lc parameters * using global constant mesh size field * using variable mesh size field

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.dim = 2;
mesher.clean = true;

Create object describing geometric model

geom = mp.geoms.RectangleGeom('my_domain');
geom.params.da = 4;
geom.params.db = 2;

Set factors for vertex lc parameter.

These factors allow mesh refinement around selected vertices

geom.params.lcFactors = [1, 0.2, 1, 1];

Generate mesh

meshA = mesher.generate(geom, struct('lc', 0.8));

Visualize mesh

The simplest way to visualize mesh is to use Viewer class.

viewer = mp.Viewer();

viewer.show(meshA);

Use constant mesh density field

Generate and visualize mesh again. This time we use global mesh density field

mesher.useGlobalField = true;
meshingParams.lc = 0.2;
meshingParams.globalField = 0.6;

meshB = mesher.generate(geom, meshingParams);

viewer.stackFigure();
viewer.show(meshB);

Use variable mesh density field

meshingParams.globalField = '0.5 - x/4*0.4';

meshC = mesher.generate(geom, meshingParams);

viewer.stackFigure();
viewer.show(meshC);

Internal management of demos

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