Difference between revisions of "Boundary Condition Styles"
(25 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
== Setting Styles == | == Setting Styles == | ||
The possible [[MPM Input Files#Boundary Conditions|boundary condition]] styles are defined below. In scripted files, the style can be set by name or number; in <tt>XML</tt> files, the style must be set by number. Unless otherwise specified, the units for <tt>(value)</tt> are the standard units for the current type of boundary condition (''i.e''., | The possible [[MPM Input Files#Boundary Conditions|boundary condition]] styles are defined below. In scripted files, the style can be set by name or number; in <tt>XML</tt> files, the style must be set by number. Unless otherwise specified, the units for <tt>(value)</tt> are the standard units for the current type of boundary condition (''i.e''., [[ConsistentUnits Command#Legacy and Consistent Units|velocity units]] for velocity, degrees K for temperature, ''etc.'') and the units for <tt>(time)</tt> are [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]. | ||
<ul> | <ul> | ||
<li><tt>constant</tt> (or 1) - the applied boundary | <li><tt>constant</tt> (or 1) - the applied boundary condition is set to the constant <tt>(value)</tt> and it is applied for times after <tt>(time)</tt>. | ||
<li><tt>linear</tt> (or 2) - the applied boundary condition is<br> | <li style="padding-top: 9px;"><tt>linear</tt> (or 2) - the applied boundary condition is<br><br> | ||
| | ||
<math>BC = ({\rm value})*(t-({\rm time}))</math> | <math>BC = ({\rm value})*(t-({\rm time}))</math> | ||
<br>where t is the current time (in | <br><br>where t is the current time (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]). This condition is applied only for times after <tt>(time)</tt>. The units for <tt>(value)</tt> should change to the standard units for the boundary condition per [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]. | ||
<li><tt>sine</tt> (or 3) - the applied boundary condition is<br> | <li style="padding-top: 9px;"><tt>sine</tt> (or 3) - the applied boundary condition is<br><br> | ||
| | ||
<math>BC = ({\rm value})\sin\bigl[({\rm time})*t\bigr]</math> | <math>BC = ({\rm value})\sin\bigl[({\rm time})*t\bigr]</math> | ||
<br>This condition is applied for all times. The units for <tt>(time)</tt> should change to 1/ | <br><br>This condition is applied for all times. The units for <tt>(time)</tt> should change to [[ConsistentUnits Command#Legacy and Consistent Units|1/alt time units]] (''i.e.'', it becomes a frequency in [[ConsistentUnits Command#Legacy and Consistent Units|radians/alt time units]]). | ||
<li><tt>cosine</tt> (or 4) - the applied boundary condition is<br> | <li style="padding-top: 9px;"><tt>cosine</tt> (or 4) - the applied boundary condition is<br><br> | ||
| | ||
<math>BC = ({\rm value})\cos\bigl[({\rm time})*t\bigr]</math> | <math>BC = ({\rm value})\cos\bigl[({\rm time})*t\bigr]</math> | ||
<br>This condition is applied for all times. The units for <tt>(time)</tt> should change to 1/ | <br><br>This condition is applied for all times. The units for <tt>(time)</tt> should change to [[ConsistentUnits Command#Legacy and Consistent Units|1/alt time units]] (''i.e.'', it becomes a frequency in [[ConsistentUnits Command#Legacy and Consistent Units|radians/alt time units]]). | ||
<li><tt>silent</tt> (or 5) - to apply an "absorbing" boundary | <li style="padding-top: 9px;"><tt>silent</tt> (or 5) - to apply an "absorbing" boundary condition as explained [[#Silent Boundary Conditions|below]]. These are only allowed for [[Setting Forces and Fluxes|load, heat flux, and concentration flux conditions]]. | ||
<li style="padding-top: 9px;"><tt>function</tt> (or 6) - the applied boundary condition is determined by a [[User Defined Functions|user-defined function]] of time (<tt>t</tt> in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]), position (which is nodal point position for grid conditions or particle position for particle conditions), and/or of current clockwise particle rotation angle (2D only). The function should evaluate to the desired value in the standard units for the type of boundary condition. If <tt>(time)</tt> is supplied, the condition starts at time <tt>(time)</tt> (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]) and the function is evaluated at <tt>[t-(time)]</tt> (instead of at <tt>t</tt>). | |||
</ul> | </ul> | ||
To get any time-dependence for a boundary condition, you can combine more than one conditions in the same direction and the resulting condition will be a superposition of the applied conditions. See [[#Notes|below]] for some special considerations when | To get any time-dependence for a boundary condition, you can combine more than one conditions in the same direction and the resulting condition will be a superposition of the applied conditions. See [[#Notes|below]] for some special considerations when applying multiple boundary condition on the same node. | ||
== Silent Boundary Conditions == | == Silent Boundary Conditions == | ||
The object of silent boundary conditions is to apply an absorbing edge. The goal is to simulate a small portion of a large object by having stress waves, heat fluxes, and concentration fluxes absorbed by the edges rather the reflect back into the object. Their development in MPM is in a paper by Shen and Chen (2005).<ref>L. Shen and Z. Chen, "A Silent Boundary Scheme with the Material Point Method for Dynamic Analyses," ''Computer Modeling in Engineering & Sciences'', '''7''', 305-320 (2005).</ref> These conditions can be shown to work well in small, idealized simulations. They have been less useful in other simulations. | |||
Some considerations about using silent boundary conditions in [[NairnMPM]] are. | |||
* Silent boundary conditions can only be applied to edges that are along the x, y, or z direction and the direction for the conditions should specify the normal to that edge. | |||
* When an edge uses silent boundary conditions, that condition must be the only condition that is used (''i.e.'', you can not superpose multiple boundary conditions along silent edges). | |||
* For [[Setting Forces and Fluxes#Load Conditions|load conditions]], silent boundary conditions only work for isotropic materials, because they rely on calculations of isotropic bulk and shear wave speeds. | |||
* For [[Setting Forces and Fluxes#Heat Flux Conditions|heat flux conditions]], silent boundary conditions set natural flux determined by <tt>(k grad T).n</tt> extrapolated from particles along the edge with the boundary condition. It should enable simulation of heat flow through materials, but its use is relatively unexplored. Here <tt>k</tt> is thermal conductivity tensor, <tt>T</tt> is temperature, and <tt>n</tt> is normal vector; this condition works for isotropic and anisotropic materials. | |||
* For [[Setting Forces and Fluxes#Concentration Flux Conditions|concentration flux conditions]], silent boundary conditions set natural flux determined by <tt>(D grad c).n</tt> extrapolated from particles along the edge with the boundary condition. It should enable simulation of solvent flow through materials, but its use is relatively unexplored. Here <tt>D</tt> is diffusion tensor, <tt>c</tt> is concenration, and <tt>n</tt> is normal vector; this condition works for isotropic and anisotropic materials. | |||
== Notes == | |||
# When applying multiple velocity conditions on the same node, the combinations must either be in the same direction or in orthogonal directions. For example, you can apply any combination of velocities [[Setting Velocity and Transport Values#Velocity Conditions|along analysis axes (x, y, or z)]]. | |||
# When using [[Setting Velocity and Transport Values#Skewed Velocity Conditions|skewed velocity conditions]], the typical problem will use only a single skewed direction on a node. You can use any number of conditions in that single direction. You should not mix [[Setting Velocity and Transport Values#Skewed Velocity Conditions|skewed velocity conditions]] with [[Setting Velocity and Transport Values#Velocity Conditions|velocity conditions]] along one of the skew axes. For example, you should not apply some conditions in the x direction and others in the skewed x-y or x-z direction, because these two directions are not orthogonal. In principle orthogonal skewed directions could be used, but such problems can normally be recast to get the same fixed velocity by fixing the two axes in the skew plane instead. | |||
# When applying multiple concentration conditions on the same node, the net result must add up to a valid concentration potential between 0 and 1. The use is responsible for these limits. The code will limit particle values to be between 0 and 1 even if a boundary condition is out of this range. | |||
== References == | |||
<references/> |
Latest revision as of 11:30, 18 February 2020
Setting Styles
The possible boundary condition styles are defined below. In scripted files, the style can be set by name or number; in XML files, the style must be set by number. Unless otherwise specified, the units for (value) are the standard units for the current type of boundary condition (i.e., velocity units for velocity, degrees K for temperature, etc.) and the units for (time) are alt time units.
- constant (or 1) - the applied boundary condition is set to the constant (value) and it is applied for times after (time).
- linear (or 2) - the applied boundary condition is
[math]\displaystyle{ BC = ({\rm value})*(t-({\rm time})) }[/math]
where t is the current time (in alt time units). This condition is applied only for times after (time). The units for (value) should change to the standard units for the boundary condition per alt time units. - sine (or 3) - the applied boundary condition is
[math]\displaystyle{ BC = ({\rm value})\sin\bigl[({\rm time})*t\bigr] }[/math]
This condition is applied for all times. The units for (time) should change to 1/alt time units (i.e., it becomes a frequency in radians/alt time units). - cosine (or 4) - the applied boundary condition is
[math]\displaystyle{ BC = ({\rm value})\cos\bigl[({\rm time})*t\bigr] }[/math]
This condition is applied for all times. The units for (time) should change to 1/alt time units (i.e., it becomes a frequency in radians/alt time units). - silent (or 5) - to apply an "absorbing" boundary condition as explained below. These are only allowed for load, heat flux, and concentration flux conditions.
- function (or 6) - the applied boundary condition is determined by a user-defined function of time (t in alt time units), position (which is nodal point position for grid conditions or particle position for particle conditions), and/or of current clockwise particle rotation angle (2D only). The function should evaluate to the desired value in the standard units for the type of boundary condition. If (time) is supplied, the condition starts at time (time) (in alt time units) and the function is evaluated at [t-(time)] (instead of at t).
To get any time-dependence for a boundary condition, you can combine more than one conditions in the same direction and the resulting condition will be a superposition of the applied conditions. See below for some special considerations when applying multiple boundary condition on the same node.
Silent Boundary Conditions
The object of silent boundary conditions is to apply an absorbing edge. The goal is to simulate a small portion of a large object by having stress waves, heat fluxes, and concentration fluxes absorbed by the edges rather the reflect back into the object. Their development in MPM is in a paper by Shen and Chen (2005).[1] These conditions can be shown to work well in small, idealized simulations. They have been less useful in other simulations.
Some considerations about using silent boundary conditions in NairnMPM are.
- Silent boundary conditions can only be applied to edges that are along the x, y, or z direction and the direction for the conditions should specify the normal to that edge.
- When an edge uses silent boundary conditions, that condition must be the only condition that is used (i.e., you can not superpose multiple boundary conditions along silent edges).
- For load conditions, silent boundary conditions only work for isotropic materials, because they rely on calculations of isotropic bulk and shear wave speeds.
- For heat flux conditions, silent boundary conditions set natural flux determined by (k grad T).n extrapolated from particles along the edge with the boundary condition. It should enable simulation of heat flow through materials, but its use is relatively unexplored. Here k is thermal conductivity tensor, T is temperature, and n is normal vector; this condition works for isotropic and anisotropic materials.
- For concentration flux conditions, silent boundary conditions set natural flux determined by (D grad c).n extrapolated from particles along the edge with the boundary condition. It should enable simulation of solvent flow through materials, but its use is relatively unexplored. Here D is diffusion tensor, c is concenration, and n is normal vector; this condition works for isotropic and anisotropic materials.
Notes
- When applying multiple velocity conditions on the same node, the combinations must either be in the same direction or in orthogonal directions. For example, you can apply any combination of velocities along analysis axes (x, y, or z).
- When using skewed velocity conditions, the typical problem will use only a single skewed direction on a node. You can use any number of conditions in that single direction. You should not mix skewed velocity conditions with velocity conditions along one of the skew axes. For example, you should not apply some conditions in the x direction and others in the skewed x-y or x-z direction, because these two directions are not orthogonal. In principle orthogonal skewed directions could be used, but such problems can normally be recast to get the same fixed velocity by fixing the two axes in the skew plane instead.
- When applying multiple concentration conditions on the same node, the net result must add up to a valid concentration potential between 0 and 1. The use is responsible for these limits. The code will limit particle values to be between 0 and 1 even if a boundary condition is out of this range.
References
- ↑ L. Shen and Z. Chen, "A Silent Boundary Scheme with the Material Point Method for Dynamic Analyses," Computer Modeling in Engineering & Sciences, 7, 305-320 (2005).