Difference between revisions of "Grid-Based Boundary Conditions"

From OSUPDOCS
Jump to navigation Jump to search
 
(18 intermediate revisions by the same user not shown)
Line 6: Line 6:
== Grid-Based Boundary Condition Commands ==
== Grid-Based Boundary Condition Commands ==


In scripted files, all grid-based boundary conditions are created by a series of <tt>GridBC</tt>command blocks that select nodes on the grids:
In scripted files, all grid-based boundary conditions are created by a series of <tt>GridBC</tt> command blocks that select nodes on the grid:


  GridBC
  GridBC
Line 16: Line 16:
In <tt>XML</tt> files, grid-based boundary conditions are created with a <tt>&lt;BCShape&gt;</tt> block
In <tt>XML</tt> files, grid-based boundary conditions are created with a <tt>&lt;BCShape&gt;</tt> block


  <BCLShape>
  <BCShape>
   (one 2D or 3D shape command, which can be nested)
   (one 2D or 3D shape command, which can be nested)
   (one or more velocity, temperature, or concentration condition)
   (one or more velocity, temperature, or concentration condition)
     ...
     ...
  </BCLine>
  </BCShape>


which must be within the main <tt>&lt;GridBC&gt;</tt> block.
which must be within the main <tt>&lt;GridBC&gt;</tt> block.


The nodes that will get boundary conditions are selected by defining one [[2D Shapes||2D shape]] (for 2D simulations) or one [[3D Shapes||3D shape]] (for 3D simulations). The shape be a [[Nested Shapes}nested shape]].
The nodes that will get boundary conditions are selected by defining one [[2D MPM Shape Commands|2D shape]] (for 2D simulations) or one [[3D MPM Shape Commands|3D shape]] (for 3D simulations). The shape be a [[Nested Shapes|nested shape]].


All nodes within the one shape will be set to all provided [[Setting Velocity and Transport Values|velocity and/or transport value conditions]].


The commands within these [[Grid BC Shape Commands|shape commands]] are used to set [[Setting Velocity, Temperature, and Concentration|velocity, temperature and/or concentration conditions]].
=== Deprecated Commands ===


The command to select a line through a 2D mesh in scripted files is:
Prior to the grid-based boundary condition commands in the previous section, the boundary conditions used to be set with [[Grid BC Shape Commands|boundary condition shape commands]]. The deprecated commands are:


MoveLine (x1),(y1),(x2),(y2),<(tolerance)>
* <tt>MoveLine</tt> and <tt>&lt;BCLine&gt;</tt>
  (one or more velocity, temperature, or concentration condition)
* <tt>MoveArc</tt> and <tt>&lt;BCArc&gt;</tt>
    ...
* <tt>&lt;LdRect&gt;</tt>
EndMoveLine
* <tt>MoveBox</tt> and <tt>&lt;BCBox&gt;</tt>
 
In <tt>XML</tt> files, a line is selected with:


<BCLine units='(units)' x1='(x1)' y1='(y1)' x2='(x2)' y2='(y2)' tolerance='(tolerance)'>
See [[Grid BC Shape Commands|documentation]] for conversion of old commands to the new method.
  (one or more velocity, temperature, or concentration condition)
    ...
</BCLine>


where
== Explicit Grid-Based Boundary Condition in XML Files ==


* <tt>(x1, y1)</tt> to <tt>(x2, y2)</tt> define <tt>(x, y)</tt> coordinates for the points at the beginning and end of the line (or <tt>(R, Z)</tt> coordinates if axisymmetric). The units are [[ConsistentUnits Command#Legacy and Consistent Units|length units]] (or determined by a [[Units Attribute|units attribute]] in <tt>XML</tt> files). In <tt>XML</tt> files, the coordinates can alternatively be specified [[2D MPM Shape Commands#Relative Grid Locations|relative to the mesh edges]].
An option in <tt>XML</tt> files is to explicitly set boundary conditions on nodes without using shape functions. The format is
* <tt>(tolerance)</tt> is an optional tolerance. The units are [[ConsistentUnits Command#Legacy and Consistent Units|length units]] (or determined by a [[Units Attribute|units attribute]] in <tt>XML</tt> files). In <tt>XML</tt> files, you can optionally use the format <tt>'*0.5'</tt> to set the tolerance to any factor times the minimum cell dimension in the current mesh.  If it is omitted, the tolerance will be set to a small number appropriate for the current background grid cell dimensions.
 
This command will apply [[Setting Velocity, Temperature, and Concentration|velocity, temperature, and/or concentration boundary conditions]] to all nodes within <tt>(tolerance)</tt> of the line from <tt>(x1, y1)</tt> to <tt>(x2, y2)</tt>.
 
== Grid-Based Boundary Condition in XML Files ==
 
All grid-based boundary conditions must be set up within a single <GridBCs> element. The format is


  <GridBCs>
  <GridBCs>
     (one or more grid BC shape commands)
     (one or more <BCShape> blocks)
      ...
    ...
     <DisplacementBCs>
     <DisplacementBCs>
       (one or more explicit boundary conditions)
       (one or more explicit boundary conditions)
Line 62: Line 51:
  </GridBCs>
  </GridBCs>


There are two ways to specify grid boundary conditions. The most common approach is to generate boundary conditions using one or more [[Grid BC Shape Commands|shape commands]] to select nodes and assign [[Setting Velocity, Temperature, and Concentration|specified velocity, temperature, and/or concentration conditions]] to those nodes. The other way is to [[Explicit Grid Boundary Conditions|explicitly list each grid point]]. The explicit method is shown in the <tt><DisplacementBCs></tt> section above; it is limited to velocity conditions, and is usually generated with other software. You can use both [[Grid BC Shape Commands|shape commands]] and a [[Explicit Grid Boundary Conditions|<tt><DisplacementBCs></tt> section]] in the same input file.
The <tt>&lt;BCShape&gt;</tt> blocks set boundary conditions as explained [[#Grid-Based Boundary Condition Commands|above]]. The <tt>&lt;DisplacementBCs&gt;</tt> block lets you [[Explicit Grid Boundary Conditions|explicitly list each grid point]]. The explicit method is limited to velocity conditions, and is usually generated with other software. You can use both [[#Grid-Based Boundary Condition Commands|<tt>&lt;BCShape&gt;</tt> commands]] and a <tt>&lt;DisplacementBCs&gt;</tt> block in the same input file.
 
== Layers of Boundary Conditions ==
 
Grid boundary conditions are typcially placed on a layer of nodes that is outside the body defined by the material points and that layer defines the boundary. When using [[MPM Methods and Simulation Timing|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 Material|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  [[MPM Grid Generation#Symmetry Planes|symmetry planes]] or [[Rigid Material|rigid particles]] with the <tt>mirrored</tt> property.

Latest revision as of 11:39, 20 September 2017

Introduction

Grid-based boundary conditions are used to create fixed edges, to create moving edges that displace the object, and for setting boundary temperature or concentration. Fixed edges are created be setting velocity to zero. If the edge is a symmetry plane in the object, however, it is better to create the symmetry plane boundary conditions automatically rather then to set them manually with boundary condition commands. The use of a moving edge to apply displacements is limited to small displacements because in large-displacement problems, the particles may move away from the boundary conditions and the conditions will no longer have the correct influence. The alternative method for creating a moving edge is to use rigid material particles set to use the moving boundary condition mode. These particles create grid-based boundary conditions that move with the particle position. They can set velocity or moving temperature and concentration values. Besides grid-based conditions, simulations can set Particle-Based Boundary Conditions.

Grid-Based Boundary Condition Commands

In scripted files, all grid-based boundary conditions are created by a series of GridBC command blocks that select nodes on the grid:

GridBC
  (one 2D or 3D shape command, which can be nested)
  (one or more velocity, temperature, or concentration condition)
    ...
EndGridBC

In XML files, grid-based boundary conditions are created with a <BCShape> block

<BCShape>
  (one 2D or 3D shape command, which can be nested)
  (one or more velocity, temperature, or concentration condition)
    ...
</BCShape>

which must be within the main <GridBC> block.

The nodes that will get boundary conditions are selected by defining one 2D shape (for 2D simulations) or one 3D shape (for 3D simulations). The shape be a nested shape.

All nodes within the one shape will be set to all provided velocity and/or transport value conditions.

Deprecated Commands

Prior to the grid-based boundary condition commands in the previous section, the boundary conditions used to be set with boundary condition shape commands. The deprecated commands are:

  • MoveLine and <BCLine>
  • MoveArc and <BCArc>
  • <LdRect>
  • MoveBox and <BCBox>

See documentation for conversion of old commands to the new method.

Explicit Grid-Based Boundary Condition in XML Files

An option in XML files is to explicitly set boundary conditions on nodes without using shape functions. The format is

<GridBCs>
   (one or more <BCShape> blocks)
   ...
   <DisplacementBCs>
      (one or more explicit boundary conditions)
   </DisplacementBCs>
</GridBCs>

The <BCShape> blocks set boundary conditions as explained above. The <DisplacementBCs> block lets you explicitly list each grid point. The explicit method is limited to velocity conditions, and is usually generated with other software. You can use both <BCShape> commands and a <DisplacementBCs> block in the same input file.

Layers of Boundary Conditions

Grid boundary conditions are typcially placed on 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.