Difference between revisions of "FEA Boundary Conditions"

From OSUPDOCS
Jump to navigation Jump to search
Line 136: Line 136:


# This section
# This section
# Select section
# Crack tip (musgt be first in GridBCs block)
# Periodic Page
# Crack tip
# Mention resquence


Clear on Google Drive
Clear on Google Drive
Note that crack tip, periodic, and resequence need an order in XML files.


Maybe some kind of FEA DTD file with links
Maybe some kind of FEA DTD file with links

Revision as of 23:13, 11 September 2013

Nodal and element face boundary conditions in FEA analyses are applied to nodes or elements by using the commands on this page.

Introduction

Explain minimal boundary conditions (and AS only needs on z direction 1)

Scripted Input Files

In scripted input files, FEA boundary conditions are applied with a series of FixLine commands and FixPoint commands, each of which is available in two versions. The FixLine command can either select nodes and elements along a previously defined path or can select all nodes close to that line:

FixLine (pathid)
  (boundary conditions commands)
EndFixLine

FixLine (x1),(y1),(x2),(y2),<(tolerance)>
  (boundary condition commands)
EndFixLine

The FixPoint command can either select one define keypoint or can select the one node closest to a point:

FixPoint (keyid)
  (boundary conditions commands)
EndFixPoint

FixPoint (x3),(y3)
  (boundary condition commands)
EndFixPoint

In these commands, the arguments are:

  • (pathid) to select a previously defined path by id, which must have be used in an area.
  • (x1,y1) to (x2,y2) define (x,y) coordinates (in mm) for the points at the beginning and end of the line (or (R,Z) coordinates in axisymmetric calculations). All nodes close to that line are selected.
  • (tolerance) is an optional tolerance (in mm). When used it accepts nodes within that distance of the define line; when omitted, tolerance is set to small number bases on mesh dimensions.
  • (keyid) to select a previously defined keypoint by id, which must be part of a path that is in an area.
  • (x3,y3) define (x,y) coordinates (in mm) for a single point (or (R,Z) coordinates in axisymmetric calculations). The node closest to that point is selected.

All nodes along the selected path or along the selected line (for FixLine commands) or the single selected node (for FixPoint commands) can be assigned nodal displacement or load conditions, rotated for skewed boundary conditions, or designated for conditional output.

In addition, when using FixLine to select a defined path, all element faces along that path can be assigned stresses. You cannot, however, apply stress conditions along interior paths; they can only be assigned to paths on the boundary of the object. Also note that FixLine commands that use a line instead of a path cannot assign stresses to element faces).

XML Input Files

In XML input files, all FEA boundary conditions are applied within a <GridBC> block:

<GridBC>
  (boundary condition commands)
</GridBCs>

Within this block, most conditions are set with a series of <BCLine> commands and <BCPt> commands, each of which is available in two versions. The <BCLine> command can either select nodes and elements along a previously defined path or can select all nodes close to a line:

  <BCLine path='(pathid)'>
    (set conditions)
  </BCLine>

  <BCLine x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'>
    (set conditions)
  </BCLine>

The <BCPt> command can either select one defined keypoint or can select the one node closest to a point:

  <BCPt keypt='(keyid)'>
    (set conditions)
  </BCPt>

  <BCPt x='(x3)' y='(y3)'>
    (set conditions)
  </BCPt>

These commands and attributes function exactly as defined above for the scripted FixLine and FixPoint commands.

An alternative to the above boundary conditions commands, XML files can alternative explicitly set boundary conditions on nodes and element faces, but this method is rarely used.

Displacement Conditions

The scripted Displacement command sets displacement conditions to all nodes selected by the command that encloses it:

Displacement (dir),<(disp)>

In XML files, nodal displacements are set with DisBC commands within the command that encloses them:

<DisBC dof='(dirnum)' disp='(disp)'/>
<DisBC dof='(dirnum)' function='(function)'/>

where

  • (dir) is x or y (or 1 or 2) to specify the direction of the applied displacement. In axisymmetric calculations use x (or 1) for R and y (or 2) for Z.
  • (dirnum) - in XML files, the displacement direction must be specified by number (1 or 2) only.
  • (disp) specifies magnitude of the displacement in mm. It can be specified by a number or by a user-defined function of nodal point position. In scripted files, a function is specified by enclosing an expression in quotes. In XML files, numeric displacements use a disk attribute while functions are specified using a function attribute. If (disp) is omitted, the default displacement is 0 (i.e., a fixed node).

See below for how to fix displacement that are not along the x or y axes.

Load Conditions

The scripted Load command applies a load to all nodes selected by the command that encloses it:

Load (dir),(load)

In XML files, nodal displacements are set with LoadBC commands within the command that encloses them:

<LoadBC dof='(dirnum)' load='(load)'/>
<LoadBC dof='(dirnum)' function='(load)'/>

where

  • (dir) is x or y (or 1 or 2) to specify the direction of the applied displacement. In axisymmetric calculations use x (or 1) for R and y (or 2) for Z.
  • (dirnum) - in XML files, the displacement direction must be specified by number (1 or 2) only.
  • (load) specifies magnitude of the displacement in mm. It can be specified by a number or by a user-defined function of nodal point position. In scripted files, a function is specified by enclosing an expression in quotes. In XML files, numeric loads use a load attribute while functions are specified using a function attribute.

See below for how to apply that are not along the x or y axes.

Stress Conditions

The scripted Stress command applies a load to all nodes along the path selected by the command that encloses it:

Stress (dir),(stress1),<(stress2)>,<(stress3)>

In XML files, nodal displacements are set with StressBC commands within the command that encloses them:

<StressBC dir='(dirnum)' stress='stress1,<(stress2)>,<(stress3)'/>

where

  • (dir) is the direction of the applied stress. It must be n or t (or 1 or 2) for normal or tangential stress. A positive tangential stress is defined as loading the element face in the counter-clockwise direction.
  • (dirnum) - in XML files, the displacement direction must be specified by number (1 or 2) only.
  • (stress1),<(stress2)>,<(stress3)> are 1 to 3 stresses (2 and 3 are optional). If one stress is given, the stress on the path will be constant. If two stresses are given, the stress will vary linearly between the two values at the endpoints of the path. If three stresses are given, the stress will vary quadratically along the path between the endpoint stresses ((stress1) and (stress3)) and the stress at the middle of the path ((stress3))

Note that stress boundary conditions can only be used within FixLine (or <BCLine> in XML files) blocks that select nodes using a previously define path.

Skewed Conditions

Tasks:

  1. This section
  2. Crack tip (musgt be first in GridBCs block)

Clear on Google Drive

Maybe some kind of FEA DTD file with links

programming needs to support Entity command (used in any FEA commands?).

XMLData command

Selecting Nodes

The main header has an option for selecting FEA nodes for conditional output. When the nodes to be selected also have boundary conditions, a good way to select those nodes is to use boundary condition blocks. In script files, a command:

Select

with no arguments will select all nodes defined by the FixLine or FixPoint command that encloses it.

In XML files, you can select all nodes defined by the command that encloses it by adding an optional select='1' attribute to the enclosing command:

<BCLine path='(pathid)' select='1'>
<BCLine x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)' select='1'>
<BCPt keypt='(keyid)' select='1'>
<BCPt x='(x3)' y='(y3)' select='1'>

Periodic Boundary Conditions

NairnFEA can also apply apply truly periodic boundary conditions as explained here.

Explicit XML Boundary Conditions

An alternate way to assign FEA boundary conditions (which can only be done in XML files is to to explicit list each one. This method is rarely used because the generate conditions desribed above are much more flexible. If needed (e.g., when creating an XML file in custom software), the basic format is

<GridBCs>
   <DisplacementBCs>
     <fix node='24' dof='2'>0</fix>
     <rotate node='5' axis='3'>45</rotate>
   </DisplacementBCs>
   
   <LoadBCs>
     <load node='5' dof='1'>45</load>
     <rotate node='5' axis='3'>45</rotate>
   </LoadBCs>
   
   <EdgeBCs>
     <stress elem='3' face='1' dir='1'>0,100</load>
   </EdgeBCs>
</GridBCs>

In this black, nodal displacements are in <DisplacementBCs> blocks, nodal loads are in <LoadBCs> blocks, and stresses on element faces are in <EdgeBCs> blocks. which are defined as follows:

<DisplacementBCs>
This command can set fixed displacement boundary conditions on nodes. Subordinate to the command can be any number of <fix> and <rotate> commands. The <fix> commands specify a node (by number) and the direction that is fixed with dof of 1 for x direction or 2 or y for y direction (or R and Z directions if axisymmetric). The value of the <fix> tag is the fixed displacement in mm.
    The <rotate> tag can be used to apply skewed displacement (or load) boundary conditions that are in some direction that is not along the x or y axis. The method is to rotate the node first using a <rotate> command where the node attribute gives the node to rotate and the axis attribute is the axis of rotation, which must be 3 or z for 2D calculations or for rotation about the z axis. The value of the <rotate> tag is the angle to rotate in the clockwise direction in degress. Alternatively, the angle can be set using an angle attribute. Any rotated node can only be rotated once. After rotating a node, you can apply displacement (or load) boundary conditions in the rotated coordinate system.
<LoadBCs>
This command is used to apply loads directly to nodes. Subordinate to the command can be any number of <load> and <rotate> commands. The <load> commands specify a node (by number) and the direction of the load with dof of 1 for x direction or 2 or y for y direction (or R and Z directions if axisymmetric). The value of the <load> tag is the applied load in N. You can apply skewed loads, or loads not in the x or y direction by rotating the node first with a <rotate> command and then applying the load to the rotated axes. See <DisplacementBCs> command above for details.
<EdgeBCs>
This command is used to apply stress to edges of elements. Subordinate to the command can be <stress> commands. Each <stress> command specifies an element (using elem), a face of the element, and a direction (using dir with setting 1 or n for normal stress or 2 or t for tangential or shear stress). The value of the <stress> tag should be 1 to 3 stresses (in MPa), separated by commas, to allow applying constant or variable stress. If three stresses are given, the entered values correspond to the applied stress at the endpoints and in the middle of the face and stresses vary quadratically through these three points. If only two stresses are given, the stress will vary linearly between the endpoints of the face. If only one stress is given, the stress will be constant. The element faces are numbered around the element in the counter-clockwise direction starting with 1.

Notes

  1. When doing axisymmetric FEA, nodes at r=0 will automatically be set to zero velocity in the r directions. You therefore need not set those conditions.