Difference between revisions of "Rigid Material"

From OSUPDOCS
Jump to navigation Jump to search
Line 117: Line 117:
Rigid materials with <tt>SetDirection</tt> = 8 interact with other material through contact. During contact calculations, the code calculates the contact forces. These force can be a useful output of the simulation. The rigid material controls position and the contact force provides the resulting surface forces. There are two ways to output contact forces:
Rigid materials with <tt>SetDirection</tt> = 8 interact with other material through contact. During contact calculations, the code calculates the contact forces. These force can be a useful output of the simulation. The rigid material controls position and the contact force provides the resulting surface forces. There are two ways to output contact forces:


# The [[MPM Global Archiving Options|global archiving options]] has options for <tt>contactx</tt>, <tt>contacty</tt>, and <tt>contactz</tt> that output components of the total contact forces on the grid due to all rigid particles in the simulation.
* The [[MPM Global Archiving Options|global archiving options]] has options for <tt>contactx</tt>, <tt>contacty</tt>, and <tt>contactz</tt> that output components of the total contact forces on the grid due to all rigid particles in the simulation.
# The [[VTKArchive Custom Task]] can archive <tt>contactForces</tt>. This option gives contact force on each node in the grid. Contact forces are only available in this grid archive, and not in particle archiving, because they are a result of a grid-based calculation in [[Multimaterial MPM|multimaterial mode]] simulations.
* The [[VTKArchive Custom Task]] can archive <tt>contactForces</tt>. This option gives contact force on each node in the grid. Contact forces are only available in this grid archive, and not in particle archiving, because they are a result of a grid-based calculation in [[Multimaterial MPM|multimaterial mode]] simulations.


== History Data ==
== History Data ==

Revision as of 10:57, 20 December 2013

Constitutive Law

This MPM material is actually two materials in one, depending on the value for its SetDirection property.

Moving Boundary Condition

If SetDirection is 0 through 7, the material is not really a material and points that use this type of rigid material will not really be part of the MPM analysis. These rigid material points are used to set boundary conditions on the grid that move with the particles. The rigid material points should be initialized to a velocity, temperature, or concentration when they are created in Region commands. As the rigid material points move through the grid, all nodes connected to those points will be assigned grid-based boundary conditions for the selected particle properties of velocity, temperature, and/or concentration. To have the boundary condition vary in time and position, use the settingFunction(2)(3) and valueFunction properties below to set the value with a user defined functions rather than using the initial particle properties to pick a constant value.

As boundary conditions dynamically created by rigid particles cross between grid elements, the boundary conditions jump for some nodes to neighboring nodes. These jumps can induce artifacts. To minimize these artifacts, the mirrored property should be set, whenever possible, depending on the direction of motion.

Rigid Contact Material

If SetDirection is 8, the material will correspond to actual material points that move through the analysis. Since they are rigid, they will move with their prescribed velocity. They will interact with other material points only through multimaterial contact or imperfect interface laws and thus this type of rigid material can only be used in multimaterial mode MPM calculations.

The advantage of this type of rigid material (unlike the other type) is that you can set frictional properties for contact between rigid materials and non-rigid materials or you can use multimaterial methods to model imperfect interfaces. These rigid materials will move in the direction defined by the initial velocity, or, by using settingFunction(2)(3) properties below, they can moved by any velocity given by user defined functions. If two different rigid materials with SetDirection=8 interact at the same node, however, there is a conflict and the calculations will stop. Finally, because this type of rigid material does not set boundary conditions, it cannot be used to set temperature or concentration.

A SetDirection=8 rigid material ignores cracks, but that actually makes it possible to use them for new crack problems. For example, these rigid particles can provide wedge opening of a crack. If the rigid particles run along an explicit crack plane, those particles may contact particles on both sides of the crack, which can move the top and bottom surfaces of the crack apart. It may be only way to wedge open a crack (i.e., the only material that can act like it is within a crack rather than on either side of the crack). All crack calculations (e.g., crack contact, traction laws, imperfect interfaces, updating of crack position, and J integral) will ignore the rigid particles. The interactions with the rigid particles arise only by contact laws between the rigid particles and the various crack velocity fields.

Material Properties

The rigid material properties are set with the following commands:

Property Description Units Default
SetDirection
direction
  • 1 through 7: set grid velocities to various components of the rigid particle velocity (see table below).
  • 8: create rigid material that interacts with non-rigid material by contact.
  • 0: sets no velocity components, but can set temperature and/or concentration values.
(Note: the direction property name can only be use in scripted files)
none 0
SetTemperature
temperature
1 to set temperature boundary condition or 0 to not set it. This setting has no affect unless the analysis is doing thermal calculations. Can only be used if SetDirection is 0 through 7. Use SetDirection = 0 to having moving heat source only; use SetDirection = 1 to 7 to combine moving heat source with velocity boundary conditions. (Note: the temperature property name can only be use in scripted files) none 0
SetConcentration
concentration
1 to set concentration boundary condition or 0 to not set it. This setting has no affect unless the analysis is doing diffusion calculations. Can only be used if SetDirection is 0 through 7. Use SetDirection = 0 to having moving concentration source only; use SetDirection = 1 to 7 to combine moving concentration source with velocity boundary conditions. (Note: the concentration property name can only be use in scripted files) none 0
settingFunction
settingFunction2
settingFunction3
You can enter one to three user defined functions (settingFunction and settingFunction1 are synonyms) of time, time step, and position. The function should evaluate to the velocity in mm/s and it will set the rigid-particle velocity (any initial velocity setting will be ignored). See example below for a problem that needs to use time step in the functions. none none
valueFunction You can enter a user defined function of time, time step, and position. The function should evaluate to the temperature or concentration potential. Any initial temperature or concentration assigned to the rigid particles will be ignored. Because there is only one value function, you cannot independently set temperature and concentration with a function. Thus rigid particles with value functions should only set one of these quantities. none none
mirrored Set to -1 or +1 to indicate that rigid particles with SetDirection = 1 to 7 are setting a velocity on the minimum edge (-1) or maximum edge (+1) of the object along the moving direction. This property can improve the performance of velocity boundary conditions as explained below. The default setting of 0 means to not use mirroring. none 0

The SetDirection options 1 through 7 set grid velocities to various components of the rigid particle velocity by bit-wise selection with first three bits being for x, y, and z directions (or R, Z, θ if axisymmetric). A value of 0 sets no direction:

Value Binary Set Directions
0 0x000 no direction
1 0x001 x only
2 0x010 y only
3 0x011 x and y
4 0x100 z only
5 0x101 x and z
6 0x110 y and x
7 0x111 x, y, and z

The (up to) three setting functions can set up to three velocity direction, and their meaning depends on the current setting for the SetDirection property:

  • For SetDirection = 1 to 7 the functions must be given in order (settingFunction, settingFunction2, and settingFunction3) and they apply to the velocities that are controlled in order (e.g., when controlling y and z with SetDirection=6, the settingFunction is for y velocity and settingFunction2 is for z velocity).
  • For SetDirection = 8, the three functions (regardless of order) are for setting x, y, and z velocities and zero to three can be used. Any not controlled will use the initial particle velocity.
  • Note that in scripted files, you can use settingFunction1 (or x) as a synonym for settingFunction and you can use settingFunctiony (or z) as a synonym for settingFunction2 (or 3).

Rotation of Rigid Object

The velocity field of a block of rigid particles centered on (x0,y0) and rotating in the counter-clockwise direction can be described by:

      [math]\displaystyle{ (v_x,v_y) = 2\pi\omega\bigl(-(y-y_0),x-x_0\bigr) }[/math]

RigidRotation.jpg

where ω is the rotational frequency. If you model rotation of these particles by setting these x and y velocities, the shape might distort with time and could distort rapidly at high rotation speeds. The problem is this tangential velocity field does not account for the discrete rotation that occurs during each time step. As illustrated on the right, a tangential velocity (vtang) moves the particle in the tangential direction, but after a finite time step, the motion should be to a rotated positioned. If this rotation affect is not accounted for, the rigid object will slowly expand as the simulation proceeds. The solution is to replace vtang with an effective velocity, veff. A particle that starts at (x-x0,y-y0) = (r cosθ,r sinθ) (where r and θ are polar coordinates based on the center of the object), will end at (r cos(θ+dθ),r sin(θ+dθ)) where the incremental rotation angle is:

      [math]\displaystyle{ d\theta = 2\pi\omega\Delta t }[/math]

where Δt is time step in msec and ω is now the rotational speed in revolutions per msec. The effective velocity becomes:

      [math]\displaystyle{ v_{eff} = {r\over \Delta t}\bigl( \cos(\theta+d\theta) - \cos\theta, \sin(\theta+d\theta) - \sin\theta\bigr) }[/math]

In terms of variables available to user defined functions, the effective velocity field (in mm/sec) for a rotating rigid object is:

      [math]\displaystyle{ v_x = {1000\over \Delta t}\bigl((x-x_0)(\cos(2\pi\omega\Delta t)-1)-(y-y_0)\sin(2\pi\omega\Delta t)\bigr) }[/math]

      [math]\displaystyle{ v_y = {1000\over \Delta t}\bigl((x-x_0)\sin(2\pi\omega\Delta t) + (y-y_0)(\cos(2\pi\omega\Delta t)-1)\bigr) }[/math]

This function is an example of the need to allow time step as a variable in user defined functions. It generalized the tangential velocity field to allow for discrete rotation in each time step. A rotating and translating object can be modeled by adding the translational velocity and by accounting for any time dependence of x0 and y0.

Mirrored Velocity Property

When rigid particles moving along the x, y, or z axis are setting moving boundary conditions, those dynamic boundary conditions will jump from one layer of nodes to the next as the rigid particles cross between grid elements. This jumping of boundary conditions can cause artifacts, but those artifacts can be reduced by using the mirrored property. When mirroring is turned on the node adjacent to the object will set the specified velocity (call it V0), but nodes that are one layer further from the object will set the velocity to:

      [math]\displaystyle{ V_{BC} = 2V_0 - V_{ghost} }[/math]

where Vghost is the extrapolated nodal velocity from particles at the first node interior to the object (i.e., on the opposite side of the node adjacent to the object). The net effect is that the velocity boundary condition on the second layer of nodes will be a linear interpolation from the interior node, through the V0 node to the second layer of nodes. The figure below shows a sample tensile loading calculation with and without the mirrored property. The result on the left without mirroring shows artifacts in the layer of particles next to the rigid particles. The result on the right with mirroring eliminates those artifacts.

Mirrored.jpg

The mirrored property is set to +1 or -1 to specify the direction from the interior node to the rigid particles. Use when the rigid particles on at the minimum edge of the object at +1 when they are on the maximum edge (as in the above example). At large deformations (after many element crossings) additional artifacts may arise, but mirroring is always beneficial when it can be used in a simulation.

Rigid Reaction and Contact Forces

Rigid materials with SetDirection = 1 to 7 interact with other material through boundary conditions on the grid. During boundary condition calculations, the code calculates reaction forces at velocity boundary conditions. These forces can be output as follows:

Rigid materials with SetDirection = 8 interact with other material through contact. During contact calculations, the code calculates the contact forces. These force can be a useful output of the simulation. The rigid material controls position and the contact force provides the resulting surface forces. There are two ways to output contact forces:

  • The global archiving options has options for contactx, contacty, and contactz that output components of the total contact forces on the grid due to all rigid particles in the simulation.
  • The VTKArchive Custom Task can archive contactForces. This option gives contact force on each node in the grid. Contact forces are only available in this grid archive, and not in particle archiving, because they are a result of a grid-based calculation in multimaterial mode simulations.

History Data

None

Notes

  1. Note that multimaterial mode MPM calculations can combine moving boundary condition rigid particles (direction=0 to 7) with contact rigid particles (direction=8) to provide different functions, but single-material mode MPM can only use boundary condition rigid particles (direction=0 to 7).
  2. Note that creating rigid particles but not setting any velocity direction (direction=0) can be used to create moving temperature or concentration boundary conditions that move over the particles; i.e., the rigid particles will move through the real particles. Such moving temperature or concentration boundary conditions can only move at a constant velocity defined by the initial particle velocity, because the direction=0 setting implies no axis is controlled by a function.
  3. If a rigid particle is added to a problem, but it does not set any velocity, temperature, or concentration (direction=temperature=concentration=0 or omitted), it will have no affect on the calculations. It may plot in visualization software and therefore appear to be part of the simulation, but it will be identical to the results that would be obtained if it had never been added to the problem.

Examples