Difference between revisions of "Grid BC Shape Commands"
Line 1: | Line 1: | ||
The method to create grid-based boundary conditions was changed in [[NairnMPM]] (April 2017) and [[OSParticulas]] (revision 1170) to the method described [[Grid-Based Boundary Conditions||<tt><tt>GridBC</tt> and <tt><BCShape></tt> blocks]]. As a result, all boundary conditions commands listed below are deprecated. They still work, but should be replaced by new methods as described below. | |||
== Line (2D or Axisymmetric) == | == Line (2D or Axisymmetric) == | ||
The command to select a line through a 2D mesh in scripted files | The command to select a line through a 2D mesh in scripted files: | ||
MoveLine (x1),(y1),(x2),(y2),<(tolerance)> | MoveLine (x1),(y1),(x2),(y2),<(tolerance)> | ||
(one or more velocity, temperature, or concentration condition) | (one or more velocity, temperature, or concentration condition) | ||
EndMoveLine | EndMoveLine | ||
In <tt>XML</tt> files, a line | should be replaced by (and note change in order of parameters): | ||
GridBC | |||
Line (x1),(x2),(y1),(y2),<(tolerance)> | |||
(one or more velocity, temperature, or concentration condition) | |||
EndGridBC | |||
In <tt>XML</tt> files, a line selected with: | |||
<BCLine units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'> | <BCLine units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'> | ||
Line 17: | Line 23: | ||
</BCLine> | </BCLine> | ||
should be replaced by: | |||
<BCShape> | |||
<Line x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'> | |||
(one or more velocity, temperature, or concentration condition) | |||
</BCShape> | |||
== Arc (2D or Axisymmetric) == | == Arc (2D or Axisymmetric) == | ||
The command to select an arc through a 2D mesh in scripted files | The command to select an arc through a 2D mesh in scripted files: | ||
MoveArc (x1),(y1),(x2),(y2),(startAng),(endAng),<(tolerance)> | MoveArc (x1),(y1),(x2),(y2),(startAng),(endAng),<(tolerance)> | ||
(one or more velocity, temperature, or concentration condition) | (one or more velocity, temperature, or concentration condition) | ||
EndMoveLine | EndMoveLine | ||
In <tt>XML</tt> files, | should be replaced by (and note change in order of parameters): | ||
GridBC | |||
Arc (x1),(x2),(y1),(y2),(startAng),(endAng),<(tolerance)> | |||
(one or more velocity, temperature, or concentration condition) | |||
EndGridBC | |||
In <tt>XML</tt> files, an arc selected with: | |||
<BCArc units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' | <BCArc units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' | ||
Line 41: | Line 53: | ||
</BCLine> | </BCLine> | ||
should be replaced by | |||
<BCShape> | |||
<Arc x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' | |||
start='(startAng)' end='(endAng)' tolerance='(tolerance)'> | |||
(one or more velocity, temperature, or concentration condition) | |||
</BCShape> | |||
== Rectangle (2D or Axisymmetric) == | == Rectangle (2D or Axisymmetric) == |
Revision as of 09:43, 8 April 2017
The method to create grid-based boundary conditions was changed in NairnMPM (April 2017) and OSParticulas (revision 1170) to the method described |GridBC and <BCShape> blocks. As a result, all boundary conditions commands listed below are deprecated. They still work, but should be replaced by new methods as described below.
Line (2D or Axisymmetric)
The command to select a line through a 2D mesh in scripted files:
MoveLine (x1),(y1),(x2),(y2),<(tolerance)> (one or more velocity, temperature, or concentration condition) EndMoveLine
should be replaced by (and note change in order of parameters):
GridBC Line (x1),(x2),(y1),(y2),<(tolerance)> (one or more velocity, temperature, or concentration condition) EndGridBC
In XML files, a line selected with:
<BCLine units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'> (one or more velocity, temperature, or concentration condition) ... </BCLine>
should be replaced by:
<BCShape> <Line x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'> (one or more velocity, temperature, or concentration condition) </BCShape>
Arc (2D or Axisymmetric)
The command to select an arc through a 2D mesh in scripted files:
MoveArc (x1),(y1),(x2),(y2),(startAng),(endAng),<(tolerance)> (one or more velocity, temperature, or concentration condition) EndMoveLine
should be replaced by (and note change in order of parameters):
GridBC Arc (x1),(x2),(y1),(y2),(startAng),(endAng),<(tolerance)> (one or more velocity, temperature, or concentration condition) EndGridBC
In XML files, an arc selected with:
<BCArc units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' start='(startAng)' end='(endAng)' tolerance='(tolerance)'> (one or more velocity, temperature, or concentration condition) ... </BCLine>
should be replaced by
<BCShape> <Arc x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' start='(startAng)' end='(endAng)' tolerance='(tolerance)'> (one or more velocity, temperature, or concentration condition) </BCShape>
Rectangle (2D or Axisymmetric)
The command to select a rectangle, which is only available in XML files, is
<LdRect xmin='(xmin)' xmax='(xmax)' ymin='(ymin)' ymax='(ymax)'> (one or more velocity, temperature, or concentration condition) ... </LdRect>
- (xmin), (xmax), (ymin), and (xmax)define the x and y ranges for the rectangular area (or R and Z ranges if axisymmetric). The units are length units or determined by an optional units attribute . The coordinates can alternatively be specified relative to the mesh edges.
This command will apply velocity, temperature, and/or concentration boundary conditions to all nodes within the rectangle. Although this command is not available in scripted files, it be be reproduced in scripted files using a line command:
MoveLine xmin,(ymin+ymax)/2,xmax,(ymin+ymax)/2,(ymax-ymin)/2 (one or more velocity, temperature, or concentration condition) ... EndMoveLine
Box or Cylinder (3D)
The command to select a 3D box or cylinder in scripted files is:
MoveBox (x1),(y1),(z1),(x2),(y2),(z2),<(axis)> (one or more velocity, temperature, or concentration condition) ... EndMoveBox
In XML files, a box or cylinder is selected with:
<BCBox units='(units)' xmin='(x1)' xmax='(x2)' ymin='(y1)' ymax='(y2)' zmin='(z1)' zmax='(z2)' axis='(axis)'> (one or more velocity, temperature, or concentration condition) ... </BCBox>
where
- (x1, y1, z1) and (x2, y2, z2) define (x, y, z) coordinates for opposite corners of the box. The units are length units (or determined by a units attribute in XML files). In XML files, the coordinates can alternatively be specified relative to the mesh edges.
- (axis) is an optional parameter that will convert the shape from a box to the cylinder enclosed within the box with its axis along the specified direction (entered as x, 1, y, 2, z, or 3).
This command will apply velocity, temperature, and/or concentration boundary conditions to all nodes within the specified box or cylinder.
Relative Grid Locations
Rather than hard code positions for boundary conditions or shapes that define material points, any coordinate specified in XML files (e.g., an entry for (x1), (x2), (xmin), (xmax), etc.) can be the text 'min', 'max', 'min-3', 'min+1.2', 'max-3.8', 'max+2', etc., meaning the minimum, the maximum, or a specified number of cells relative to the minimum or maximum of the current mesh. For GIMP calculations 'min' and 'max' will be limits of useable mesh while 'min-1' and 'max+1' will be limits to the total mesh. For backward compatibility, min+, min-, max+, and max- refer to plus or minus one cell from the minimum or maximum of the current mesh.
Layers of Boundary Conditions
Grid boundary conditions are typcially placed one a layer of nodes that is outside the body defined by the material points and that layer defines the boundary. When using GIMP methods, however, a particle near the boundary will interact with that boundary layer, but may also interact with nodes beyond a single row of boundary conditions. To prevent non-physical results from the extra nodes that are physcially outside the body, it may be necessary to set up two rows (or columns) of boundary conditions. For example, to have a rigid wall, set the velocity of two rows (or columns) or nodes to be zero. An alternative solution is to fill a boundary area with rigid particles. Rigid particle automatically create the required boundary conditions on two rows (or columns) of nodes.
Sometimes even two rows of boundary conditions will lead to artifacts in particles near the edges. These artifacts can be reduced by using symmetry planes or rigid particles with the mirrored property.