FEATool  v1.8
Finite Element Analysis Toolbox
 All Files Functions Pages
gridextrude.m File Reference

Description

GRIDEXTRUDE Extrude 2D grid to 3D.

[ GRID ] = GRIDEXTRUDE( GRID, NZ, LZ, AX ) Extrudes a 2D GRID to 3D. NZ is the number of cells in the direction of extrusion, and LZ the corresponding extrusion length. AX [-3..3] optionally rotates and aligns the extruded grid with the selected axis (default 3 which is the z-axis).

Gridextrude supports both extruding 2D quadrilateral grids to 3D hexahedra, and unstructured simplex triangular grids to tetrahedra (via first extruding to prisms and then splitting each prism into three tetrahedra).

Examples
1) Extrude a ring to form a tube
  grid = ringgrid( 2, 16 );
  grid = gridextrude( grid, 10, 5, 3 );

  2) Extrude a composite grid by a length of 3
     (in the positive x-direction, AX=1).

  grid = holegrid( 6, 5 );
  grid = delcells( grid, <tt>((x>0).*(y>0))==0</tt> );
  grid = gridextrude( grid, 12, 3, 1 )

  3) Generate unstructured circuit board grid.

  ro = 0.003;   % Outer circle diameter.
  ri = ro/2;    % Inner circle diameter.

% Circle 1. co1 = gobj_circle( [0.01,0.01], ro, CO1 ); ci1 = gobj_circle( [0.01,0.01], ri, CI1 );

% Circle 2. co2 = gobj_circle( [0.05,0.02], ro, CO2 ); ci2 = gobj_circle( [0.05,0.02], ri, CI2 );

% Remove inner holes from circles. geom.objects = { co1 ci1 co2 ci2 }; geom = geom_apply_formula( geom, CO1-CI1 ); geom = geom_apply_formula( geom, CO2-CI2 );

% Base rectangle. r1 = gobj_rectangle( 0, 0.06, 0, 0.03, R1 );

% Remove (outer) circles from base rectangle. geom.objects = [ geom.objects { r1 co1 co2 } ]; geom = geom_apply_formula( geom, R1-CO1-CO2 );

% Polygon for connecting conductive track. w = 0.002/2; p = [ 0.01 0.02-w/2 0.03-w/2 0.05 0.05 0.03+w/2 0.02+w/2 0.01 ; 0.01+w 0.01+w 0.02+w 0.02+w 0.02-w 0.02-w 0.01-w 0.01-w ]; p1 = gobj_polygon( p, P1' );

% Remove outer circles from conductive track. geom.objects = [ geom.objects { p1 co1 co2 } ]; geom = geom_apply_formula( geom, P1-CO1-CO2 );

% 2D grid generation. hmax = (ro-ri)/2; grid = gridgen( geom, hmax, hmax );

% Extrude grid. grid = gridextrude( grid, 2, 0.002 );

See also
gridmerge, gridrevolve, gridrotate, gridscale