SDT-rotor         Contents     Functions         Previous Next     PDF Index

nl_mesh

Purpose

Integrated mesh modifications and case handling for non-linear applications

Description

Integrated case handling for constraint penalization and coupling component splitting hare implemented in this function.

Some non-linearities require surface/volume remeshing (e.g. definition of conforming interfaces for contact) or adaptations (generation of thin interface layers). This function regroups such functionalities. Mesh generation are performed by fe_gmsh(interface to gmsh) and fe_tetgen (interface to tetgen, see help fe_tetgen).

Conform

The Conform call is an integrated call to generate conforming meshes between two facing interfaces. The command generates a conforming surface mesh of the face to replace, merges it with the conform mesh of the second interface, replaces the model face mesh and remeshes the model volume to yield a new equivalent volume with a conform face mesh.

mo1=nl_mesh('conform eltsel"FindElt"',model,sel);
% sel={eltSelToReplace eltSelForReplacement;...}

model is a standard SDT model. sel is a cell array containing in each line two FindElt commands specifying the element selection face to remesh and the element selection face to use for the conforming interface for replacement.

Limitations: The Conform call only supports generation of conforming interfaces when one interface contour fully contains the other interface contour. Handling of more complex contour configurations has not been implemented. Besides, this function has been designed to handle planar surfaces. Additional operation to work on non planar surfaces are left to the user (e.g. pre/post projections of the surfaces on a plane).

Contour

Call ContourFrom generates SDT beam1or beam3 contour models for CAD definitions. All formats readable by gmsh can theoretically be used. Only the .geo, .stp and .igs are tested.

Since .geo files can contain geometric yet non discretized objects, a 1D meshing pass is performed with gmsh to provide an SDT contour model. This is not supported for other file types.

model=nl_mesh('contourFrom','file.stp'); % not specifying the type


Call Contour generates an SDT face mesh from an SDT beam1or beam3 contour.

 model=nl_mesh('contour',model);

model is an SDT beam model defining a closed contour.

Cover

The Cover call is designed to mesh the interstice between two closed planar contours, when one fully contains the other. The call is performed as

[newModel,opt,largeContour]=nl_mesh('cover',model,{eltsel_large,eltsel_small});

model is a standard SDT model. Variables eltsel_large and eltsel_small are FindElt calls defining the element selection of the respectively large surface and small surface (the small being contained in the large).

The output newModel is the mesh generated from the surface contours.

opt outputs additional information about the mesh generation, it is a struct containing fields .NodeAdd specifying the potential nodes added in the interstice space meshed,.nodeEdgeSel1 specifying the NodeId of the nodes located on the eltsel_large contour, .nodeEdgeSel2 specifying the NodeId of the nodes located on the eltsel_small contour, and .tname the name of the temporary file containing the generated mesh.

largeContour provides the original contour in beam elements of the eltsel_large selection.

The following command options are available

Hole[,Groups,Diff,Drill,Gen]

The Hole command series aims at handling hole detection on surfaces and bore drilling generation. The following functionalities are avaiable

Command HoleGroups detects holes on a closed surface and outputs a contour model with element groups relative to each isolated contour. A second output provides the GroupId corresponding to detected holes.

Command HoleDiff provides surface elements that are inside the holes of a given contour. You should better exploit lsutilto get a robust result.

Command HoleGen generates a planar surface with a ruled mesh featuring a hole and controlled radial positions.

Command HoleDrill generates cylindrical drills in a model with the possibility to integrate a ruled bolt mesh.

Replace

The call Replace is designed to replace parts of a model mesh with new given meshes, mesh parts conformity is assumed. It is performed as

model=nl_mesh('replace',model,nodesToReplace,NewModel,nodeIDtoKeep)

model is a standard SDT model. nodesToReplace is a cell array containing vectors of NodeId specifying the areas to be replaced. NewModel is a cell array containing the new models which will be merged to the mesh in coherence with the removed elements (specified by nodesToReplace). nodeIDtoKeep is an optional argument specifying NodeId of the original model for nodes whose NodeId must not change in the transformation.

Control of nodeIDtoKeep per NewModel part is possible by providing a cell array of NodeId list of the same size than NewModel.

The following command options are available

Rivet

This command generates rivet drills in a specified contour. A model containing a beam contour can be provided, or an EltSel string generating a surface selection (see section and the selface option) on a bigger model. A data structure providing the origins, and rivet radius and washer (or rivet head radius). The mesh generated between both radius is structured.

The data structure must contain fields

and can optionally contain fields

Following example meshes a rectangular contour with a few rivet drilling inside.

% Generate a global contour
model=struct('Node',[...
 1 0 0 0  0  0 0;
 2 0 0 0 10  0 0;  
 3 0 0 0 10  2 0
 4 0 0 0  0  2 0], 'Elt',[]);
model.Elt=feutil('ObjectBeamLine 1 2 0 2 3 0 3 4 0 4 1',model);
model=feutil('refinebeam .2',model);
%feplot(model)

% define rivet positions, eventually planes
RO=struct('Orig',[ 3 1 0;6 1 0;9 1 0],...
 'radHole',[.2;.2;.2],...
 'radWash',[.8;.8;.8]);

model=nl_mesh('Rivet',model,RO);
cf=feplot(model);

GmshVol

This call integrates the generation of a volume mesh from a face mesh with gmsh.

model=nl_mesh('GMSHvol',model);

model is a standard SDT face mesh model.

ExtrudeLayer

This command generates a non trivial extrusion of a face mesh following the face normal at each node, to generate a volume layer.

model=nl_mesh('ExtrudeLayer thick Val',model);

model is an SDT model with shell elements (a surface definition).

Command option thick specifies the extrusion thickness. Command option setmat allows specifying a specific MatId to the output. Command option setpro allows specifying a specific ProId to the output.

StackClean

This call cleans up a model stack when mesh modifications have been performed. It cleans up stack entries definition that became incoherent with some mesh modifications.

model=nl_mesh('StackClean',model);

Command option rmuns removes stack entries that could not be sorted out. Command option rmmod removes stack entries affected by the model modifications.

See also

celas, p_spring, fe_gmsh


©1991-2023 by SDTools
Previous Up Next