<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Luke Bailey</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/luke_bailey/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/luke_bailey/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 04:09:31 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Building a Finite Element Based Physics Engine - Continuum Mechanics</title>
      <link>https://docs.microsoft.com/archive/blogs/luke_bailey/building-a-finite-element-based-physics-engine-continuum-mechanics</link>
      <pubDate>Sun, 13 Jul 2014 06:09:00 GMT</pubDate>
      <dc:creator><![CDATA[Luke Bailey]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/luke_bailey/2014/07/13/building-a-finite-element-based-physics-engine-continuum-mechanics/</guid>
      <description><![CDATA[This article is the second in a five part series on generating the realistic synthetic motion of...]]></description>
      <content:encoded><![CDATA[<p style="text-align: left;"><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">This article is the second in a five part series on generating the realistic synthetic motion of objects through finite elements techniques, culminating in the development of a physics engine. </span></p>
<ol>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;"><a title="Introduction and Background" href="http://blogs.msdn.com/b/luke_bailey/archive/2014/06/12/building-a-finite-element-based-physics-engine-introduction.aspx">Introduction and Background</a></span></span></li>
<li><strong><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Continuum Mechanics</span></strong></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">The Finite Element Model</span></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Code Implementation (Maya)</span></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Plasticity and Fracture&nbsp;</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong><span style="color: black;">CONTINUUM MECHANICS</span></strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The field of continuum mechanics is a branch of </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">engineering where a material, body or object is considered to have a continuous </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">distribution of constitutive properties. Such a statement appears to be </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">counter-intuitive given that, from an early age, we are taught that all matter </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">is inherently discontinuous, composed of building blocks at the atomic scale </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">such as nuclei and electrons. </span></p>
<p><span style="font-size: small;">Perhaps a better description would be to consider a continuum as the smallest possible quantity of a material (from both a physical and temporal sense) that can be analysed without having to take into account molecular dynamics or quantum mechanics. This assumption is further validated by considering that all interesting physical phenomena worthy of computer animation take place at lengths much greater than atomic spacing&rsquo;s (10<sup>&minus;10</sup><em>m</em>) and over time periods far larger than atomic bond vibrations (10<sup>&minus;15</sup><em>sec</em>).</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The discipline unites solid and </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">fluid mechanics into one flexible theory that is concerned with the deformation </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">of a material in response to external loading. For the purposes of this </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">project, solid mechanics is of most interest and can be further subdivided into </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">categories of elasticity and plasticity based on whether or not a material </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">returns to its initial configuration when external forces are removed. Given </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">that all materials must conserve mass, momentum and energy - it is the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">constitutive relationship between loading and deformation (stress and strain) </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">that distinguishes different types of materials and governs their resulting behaviour.</span></p>
<p><br /><span style="font-size: medium;"><strong><span style="font-family: arial,helvetica,sans-serif;">STRESS AND&nbsp;STRAIN</span></strong></span></p>
<p><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Stress (<em>&sigma;</em>) </span></strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">refers to the intensity of forces induced by a load on a material, often </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">characterised as the force per unit area, while <strong>strain</strong> is the resulting </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">deformation. Consider the general one-dimensional case of a rod with initial </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">length <em>L </em>that is elongated to length <em>L</em><sup>0 </sup>(in the x-direction only) </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">due to the application of an external force. The dimensionless ratio of <em>normal strain </em>() can be considered as </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the change in length per unit original length and is defined mathematically in the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">equation below. Such an example is synonymous with an elastic spring but for </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">materials of interest to computer animation, stress and strain will not be </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">uniform from point to point.</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6318.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6318.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6318.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6318.2.1.png" alt="" width="126" height="35" border="0" /></a></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Instead further refinement is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">required by introducing the displacement field <em>u</em>(<em>x</em>) = <em>x</em><sup>0 </sup>&minus; <em>x</em>. Consider the segment [<em>x<sub>i</sub>,x<sub>j</sub></em>] </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">shown in the&nbsp;figure below. </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/8154.2.3.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/8154.2.3.jpg"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/8154.2.3.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/8154.2.3.jpg" alt="" width="375" height="91" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">In the un-deformed state <em>L<sub>ij </sub></em>= <em>x<sub>j </sub></em>&minus; </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>x<sub>i </sub></em>and in the deformed </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">state <em>l<sub>ij </sub></em>= <em>x</em><sup>0</sup><em><sub>j </sub></em>&minus; <em>x</em><sup>0</sup><em><sub>i</sub></em>. Using our previous equation&nbsp;it is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">possible to derive the strain on the entire segment. As already stated this is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">of little practical use but by considering the segment as infinitesimally small </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">(namely as <em>dx </em>&rarr; 0) then the normal </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">strain at an <em>arbitrary point </em>can be </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">defined as follows:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0525.2.2.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0525.2.2.png" alt="" width="374" height="39" border="0" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">In a similar fashion to strain, the stress on a segment (force per unit area) can be used to determine the force density at an arbitrary point which is defined as:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/7802.2.4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/7802.2.4.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/7802.2.4.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/7802.2.4.png" alt="" width="303" height="39" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">This strain displacement relationship enables the force and </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">deformation at <em>any </em>point in a </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">material to be defined and is easily extensible from one to three-dimensions. </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Consider the 3D deformable body </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">shown in the figure below where the displacement field <em>u</em>(<em>x</em>) describes the deformed body Ω<sup>0 </sup>in terms of the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">un-deformed body Ω. </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0755.2.5.PNG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0755.2.5.PNG"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0755.2.5.PNG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0755.2.5.PNG" alt="" width="401" height="134" border="0" /></a></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The point <em>x </em>given in material coordinates can be </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">transformed via a function to give the new location described by point <em>x<sup>0 </sup></em>in </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">world coordinates where</span><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">&nbsp;<em>u</em>(<em>x</em>) = <em>x<sup>0 </sup></em>&minus; <em>x. </em></span>To determine the transformation function consider </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the vector <em>d </em>= <em>x</em><sub>2 </sub>&minus; <em>x</em><sub>1 </sub>of the un-deformed body (Ω) which is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">infinitesimal. In the deformed state (Ω<sup>0</sup>), using the principles </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">previously discussed, this corresponds to the following where </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>F </em>= (<em>I </em>+<em>&nabla; u</em>) is known as the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">deformation gradient or <em>Jacobian </em>and <em>&nabla;u </em>is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">a 3x3 matrix with coefficients&nbsp;in the three directional </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">axes</span>.</p>
<p style="text-align: center;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0268.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0268.2.1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0268.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0268.2.1.png" alt="" width="192" height="148" border="0" /></a></p>
<p style="text-align: left;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Essentially the deformation gradient can be thought of as describing the change in world coordinates with respect to a change in the material coordinates. As discussed in <a title="this fantastic reference book" href="http://www.amazon.co.uk/Physics-based-Animation-Graphics-Kenny-Erleben/dp/1584503807">this fantastic reference book</a>, the Jacobian is invariant to translation (magnitudes are unaffected) but not to </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">rotation and the overall deformation of a given point must be described </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">by measuring the change in <em>length squared </em>in all directions where |<em>d</em>0|2 &minus; |<em>d</em>|2 = <em>d</em>0<em>T </em><em>d</em>0 &minus; <em>d</em><em>T </em><em>d</em>) = <em>d<sup>T </sup></em>(<em>F <sup>T </sup></em><em>F </em>&minus; <em>I</em>)<em>d. </em>This leads onto the very important definition of the <strong><em>Green-Lagrange Strain Tensor</em></strong>, a non-linear quadratic entity that is formally defined as:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6787.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6787.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6787.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6787.2.1.png" alt="" width="246" height="112" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Analysis of this tensor shows that the quadratic term becomes negligible for small displacements and that by removing the non-linear component we arrive at the definition of the linear <strong><em>Cauchy Strain Tensor</em></strong><em>, </em></span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">where <em>u </em>is the displacement vector, <em>x </em>is the coordinate and the two indices <em>i </em>and <em>j </em>can vary across the three dimensional coordinates <em>x,y,z</em>.</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/4857.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/4857.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/4857.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/4857.2.1.png" alt="" width="191" height="125" border="0" /></a></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">A total of nine strain measures exist as shown&nbsp;in the following equation.</span> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/1665.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/1665.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/1665.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/1665.2.1.png" alt="" width="436" height="128" border="0" /></a><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Notationally, E<em><sub>ij </sub></em>represents the normal strain previously explored and <em>&gamma;<sub>ij </sub></em>represents the <em>shear strain</em>. It can be thought of as </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the change in angle of an angle previously at a right angle and represents the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">total amount of deformation perpendicular to a given axis. </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Due to the symmetry of this matrix&nbsp;only six independent strain components are </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">needed meaning that the strain can conveniently be rewritten as follows:</span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/8508.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/8508.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/8508.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/8508.2.1.png" alt="" width="381" height="199" border="0" /></a></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">It is important to note that the Green strain tensor </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">is rotation-invariant. This can be shown using <em>polar decomposition </em>where any deformation gradient (<em>F </em><sup>0</sup>) </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">can be factored into separate rotation (<em>R</em>) and deformation components (<em>F</em>)</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">. Conversely, the Cauchy strain tensor is not </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">rotation-invariant and results in aesthetically displeasing visual artefacts </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">(discussed in a later article).</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/7026.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/7026.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/7026.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/7026.2.1.png" alt="" width="202" height="147" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Stress describes the internal </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">traction forces (<em>T</em>) within a solid - </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">that is the tensile or compressive forces experienced by a continua block - and </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">can be visualised by considering the following figure. E</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/3755.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/3755.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/3755.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/3755.2.1.png" alt="" width="361" height="219" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Externally, the body will </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">experience a force per unit area at a given location on the objects surface. </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">This traction is a <em>bound vector </em>that </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">means it can only be fully described by both the force and surface upon which </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">it acts. Internally the process is very similar and by making an arbitrary </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">slice across the object to expose a surface (<em>dA</em>) with a corresponding normal (<em>n</em>) and force (<em>f</em>):</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/1234.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/1234.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/1234.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/1234.2.1.png" alt="" width="312" height="97" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Typically an infinitesimal block within the object, as shown in (b) above, is decomposed into three mutually orthogonal components resulting in the <em>Cauchy S</em><em>tress Tensor </em><em>&sigma;</em>. It </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">can be thought of as a set of internal <em>datum planes </em>that are aligned to the <em>x,y,z </em>coordinate </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">system, enabling the stress at any point to be evaluated. The <em>normal stress </em>component (<em>&sigma;</em>) is perpendicular to the surface and </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">changes the volume of a material while the <em>shear stress </em>component (<em>&tau;</em>) is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">tangential to the surface and causes deformation. Similar to the strain tensor, </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">there are only six independent values and the matrix can be simplified to the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">following tensor.</span>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/3581.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/3581.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/3581.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/3581.2.1.png" alt="" width="265" height="46" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: medium;"><strong><span style="font-family: arial,helvetica,sans-serif;">CONSTITUTIVE RELATIONS</span></strong></span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Stress and strain for a particular material form </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">constitutive equations, a notion that was first suggested by British physicist </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Robert Hooke and arguably one of the most familiar mathematical expressions </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">where <em>F </em>= &minus;<em>kx</em>. His theory was then generalised by Augustin Cauchy to three </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">dimensional bodies based on the observation that the 6 components of stress are </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">linearly related to the 6 components of strain. This suggests that there are 36 </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">matrix components, true in the general sense but given the conservative nature </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">of most materials and the resulting symmetry of the matrix, this can be reduced </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">to 21 independent components.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6622.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6622.2.1.png" alt="" width="393" height="133" border="0" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The type of material also has a bearing on the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">complexity of the matrix, as shown in the table above where <em>Triclinic </em>(General Anisotropic) materials have properties dependant </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">on orientation such as the grain on wood. <em>Isotropic </em>materials whose mechanical properties remain the same in all directions are </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">much simpler to consider and the requirements of any computational system are </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">dramatically reduced since only two independent properties are required to </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">define the material - the <em>Young&rsquo;s Modulus E </em>which embodies the relationship between stress and strain (determining </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the stiffness of the material in question) and the <em>Poisson Ratio v </em>which is responsible for volume preservation. This </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">can be thought of as materials strained in one direction also experiencing </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">strain in a mutually perpendicular direction despite there being no external </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">loading. Large values of <em>E </em>imply that </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the material is hard to stretch such as 200GPa for steel or 0.05GPa for more </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">flexible material like rubber.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The <em>Material Property Matrix D </em>can be formed to relate stress to strain:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/5164.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/5164.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/5164.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/5164.2.1.png" alt="" width="384" height="203" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Further examination of matrix <em>D </em>highlights that, from a computational perspective, only three variables need to be stored giving the following which will greatly reduce storage requirements by eliminating the sparseness of the matrix:</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/3465.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/3465.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/3465.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/3465.2.1.png" alt="" width="297" height="199" border="0" /></a></span></p>
<p><span style="font-size: medium;"><strong><span style="font-family: arial,helvetica,sans-serif;">EQUILIBRIUM CONDITIONS</span></strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The overall governing equations of an object can be derived by now considering the equilibrium (and boundary) conditions of the body in conjunction with the principles of stress and strain previously discussed. Any object under external loading will reach a state of equilibrium when the net force acting on the body is zero. It is important to note that this balance of forces, or mechanical equilibrium, only occurs when the internal <em>and </em>external forces sum to zero at <em>every point</em>.</span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0121.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0121.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0121.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0121.2.1.png" alt="" width="345" height="72" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">As a simple example, consider the figure above&nbsp;where an axial force <em>f<sub>s </sub></em>is applied to a bar in the x-direction only. From&nbsp;early on in our stress/strain equations it is straightforward&nbsp;to see that: </span></p>
<p style="text-align: center;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>EAu<sub>x</sub></em>(<em>x</em>) + <em>f<sup>b</sup></em>(<em>x</em>) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>x </em>&isin;]0<em>,</em>1[</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The governing <em>Partial Differential Equation (PDE) </em>is completely specified by considering the force constraint as <em>f<sup>s </sup></em>= <em>EAu<sub>x</sub></em>(1) and the displacement constraint (or boundary condition) as <em>u</em>(0) = 0. Mathematically this is considered a <em>Boundary Value Problem (BVP)</em>, a framework in which forces, displacements, stresses and strains are connected together before computation for an unknown quantity. The formulation of a BVP, taking into account equilibrium, kinematics and material law, comes in three distinct forms: Strong, Weak and Variational.</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>Strong Form</strong></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Satisfies each point in the problem domain with strong continuity of the dependant field variables (namely the displacements <em>u,v, </em>and <em>w</em>), with the obvious example being Newton&rsquo;s second law (<em>F </em>= <em>ma</em>). The PDE discussed above can be considered as being represented in the strong form but, despite offering an exact solution, is difficult to realise practically. Typically the <em>Finite Difference Method (FDM) </em>can be used to discretise the problem so to obtain a finite set of algebraic equations for an approximate solution. This works well for one-dimensional systems (often seen in audio applications) but becomes complicated for non-regular and complex three dimensional domains. From a visual perspective this results in coarse aesthetically displeasing boundary edges, known as the staircase effect, that can suffer from large discretisation errors. This is simply unacceptable for high-quality VFX applications.</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>Weak Form</strong></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Established using either the integration by parts on a <em>Weighted Residual </em>equation or directly by the <em>Principle of Virtual Work</em>. In a dynamic system the principle of virtual work is replaced by <em>d&rsquo;Alembert&rsquo;s Principle </em>which includes an additional inertia term. In both instances only average (integrated) satisfaction of equilibrium is achieved. Such statements were personally quite daunting when first encountered but are simple to conceptualise by referring back to the bar shown in figure 2.4. Consider a test function &macr;<em>u </em>that approximates the strong form equation by integrating over the domain:&nbsp;</span></p>
<p style="padding-left: 30px;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/4774.2.2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/4774.2.2.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/4774.2.2.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/4774.2.2.png" alt="" width="157" height="48" border="0" /></a></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">It then follows that integration by parts of the above equation and the imposition of boundary conditions (<em>f<sup>s </sup></em>= <em>EAu<sub>x</sub></em>(1),&macr;<em>u</em>(0) = 0) yields the complete governing PDE in weak form, also known as the <em>Virtual Work Equation</em>:</span></p>
<p style="padding-left: 30px;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/1055.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/1055.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/1055.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/1055.2.1.png" alt="" width="278" height="119" border="0" /></a></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Given that any force <em>F </em>acting through a given distance <em>u </em>performs work such that <em>W </em>= </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>Fu </em>then we can interpret the test </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">function &macr;<em>u </em>as a <em>virtual displacement (&part;u)</em>. It follows that the virtual </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">displacements across the domain perform no work if and only if the system is in </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">(static) equilibrium. In general, the principle of virtual work states that the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">stresses, body forces (<em>f<sup>b</sup></em>) </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">and tractions (<em>f<sup>s</sup></em>) are in </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">equilibrium if the internal work equals the external work for every virtual </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">displacement field. The concept is explained in a general sense here and can be </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">applied to solids or fluids.</span></p>
<p style="padding-left: 30px;" align="left"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&bull; <strong>Variational Form</strong></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Derived from the <em>Principle of Minimum Potential Energy </em>for static systems or using <em>Hamilton&rsquo;s Principle </em>for the inclusion </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">of dynamics, which again includes an additional inertia term. It is a form only </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">possible for <em>conservative </em>systems, </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">namely those where work done within the system can be recovered. This form is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">unattainable when non-conservative forces such as friction are encountered. </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Owing to the complexity of full variational calculus and that the principle of </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">minimum potential energy is actually derived from the principles of virtual </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">work, the variational form of a BVP will not be explored in this project but </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">interested readers are directed to [15] for further information. </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Another way of </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">looking at the situation is to consider mechanics, in general, as either <em>Vectorial </em>(based on Newtonian equations) </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">or <em>Analytical </em>(based on energy </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">principles). With this in mind both the weak and variational forms are </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">preferential to the strong form because they use these energy principles to </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">establish fundamental physical insights and functionally express all properties </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">of the model. They are invariant to coordinate transformations since functions </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">are scalar and lead naturally to conservation laws. Both forms are discretised </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">by the <em>Finite Element Method</em></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The following diagram </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">summarises the formulation and subsequent discretisation of the continuum based </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">equations explored thus far:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6114.2.3.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6114.2.3.jpg"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6114.2.3.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6114.2.3.jpg" alt="" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">As with stress and strain, it is </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">relatively straightforward to extend these principles from one to three </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">dimensions by considering the infinitely small block (<em>dx,dy,dz </em>&rarr; 0). In the diagram below </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">we&nbsp;assemble the components </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">highlighted in green (which represent the traction forces acting in the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">x-direction) and the subsequent equation represents the static three-dimensional equilibrium </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">where <em>f<sub>x </sub></em>represents an </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">external body force.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6646.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6646.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/6646.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/6646.2.1.png" alt="" width="360" height="231" border="0" /></a></span></p>
<p style="padding-left: 30px;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/7762.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/7762.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/7762.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/7762.2.1.png" alt="" width="458" height="125" border="0" /></a></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">A similar process is used to derive the <em>y </em>and <em>z </em>components to give:</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0247.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0247.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0247.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0247.2.1.png" alt="" width="287" height="104" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">As with the one-dimensional case, the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">balance of internal and external forces formulates the governing PDE in strong </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">form:</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>&nabla;&sigma; </em>+ <em>f<sup>b </sup></em>= </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">It is then possible to formulate the weak form by </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">integrating the strong form, multiplying by the virtual displacement vector (<em>&part;u</em>) </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">and integrating by parts:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0447.2.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0447.2.1.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0447.2.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0447.2.1.png" alt="" width="281" height="62" border="0" /></a></span></p>
<div class="WordSection1">
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">where the <em>internal work </em>performed by stress forces can be seen on the left-hand side of the equation. The <em>external work </em>on the right-hand side is a summation of the forces acting over the volume (<em>V </em>) of the body and the forces acting on the surface of the body (<em>S</em>). </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Evidently, <em>&part;u </em>= 0 when on a boundary with a fixed displacement and the <em>virtual strain field </em>is defined as:</span></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0537.2.2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0537.2.2.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/60/77/0537.2.2.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-60-77/0537.2.2.png" alt="" width="78" height="16" border="0" /></a></span></p>
</div>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong><span style="font-family: arial,helvetica,sans-serif;">REFERENCES</span></strong></span></p>
<p><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Graham Charles Archer. <em>Object-Oriented Finite Element Analysis</em>. PhD thesis, University of California, Berkeley, 1996.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Bernhard Thomaszewski. <em>Continuum Mechanics and Finite Elements for Deformable Solid Simulation</em>. Computer Graphics Laboratory ETH Zurich, 2011.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Demetri Terzopoulos. Elastically Deformable Models. <em>SIGGRAPH Computer </em><em>Graphics</em>, 21(4):205&ndash;214, 1987.</span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Building a Finite Element Based Physics Engine - Introduction</title>
      <link>https://docs.microsoft.com/archive/blogs/luke_bailey/building-a-finite-element-based-physics-engine-introduction</link>
      <pubDate>Thu, 12 Jun 2014 15:07:00 GMT</pubDate>
      <dc:creator><![CDATA[Luke Bailey]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/luke_bailey/2014/06/12/building-a-finite-element-based-physics-engine-introduction/</guid>
      <description><![CDATA[Generating the realistic synthetic motion of objects is a complex and difficult challenge to...]]></description>
      <content:encoded><![CDATA[<p><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Generating the realistic synthetic motion of objects is a complex and difficult challenge to overcome in computer graphics. Traditionally this has been achieved by&nbsp;pre-breaking modelled geometry through the application of shatter patterns but such an approach is not well suited to modern production demands - its is time intensive, complicated and entirely subjective...&nbsp;</span></p>
<p><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">This was an observation&nbsp;that I made long ago in 2011 when finite element techniques, a branch of traditional structural engineering that simulates incredibly realistic deformation and fracture, was in its real time computational infancy - namely it took a long time to get any meaningful results! </span></p>
<p><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Fortunately for me (and my bank account) <a href="http://www.framestore.com/">Framestore</a> (the guys that went on to make Gravity - its awesome!) were interested in exploring the notion of a non-traditional&nbsp;physics engine and lone behold I was given six months to prove my worth. The outcome of my endeavours was the development of a prototype <a href="http://www.autodesk.com/products/autodesk-maya/overview">Maya plug-in</a> that demonstrated the elastic and plastic deformation of linear tetrahedron before fracture occurs in a visually plausible manner...</span></p>
<p><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Anyone understood that?&nbsp;It's a pretty messy area of engineering -&nbsp;crazy mathematics, algorithmic principles,&nbsp;optimisation techniques...but fear not because&nbsp;this blog series intends to explain the entire process end to end - heck I will even throw in some lovely C++ code -&nbsp;so that you can start developing your very own physics engine&nbsp;</span></p>
<p>&nbsp;</p>
<ol>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="color: black;">Introduction and Background</span></strong></span></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;"><a title="Continuum Mechanics" href="http://blogs.msdn.com/b/luke_bailey/archive/2014/07/13/building-a-finite-element-based-physics-engine-continuum-mechanics.aspx">Continuum Mechanics</a></span></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">The Finite Element Model</span></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Code Implementation (Maya)</span></li>
<li><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Plasticity and Fracture&nbsp;</span></li>
</ol>
<p>&nbsp;</p>
<h2><span style="font-family: arial,helvetica,sans-serif; font-size: small;">INTRODUCTION AND BACKGROUND</span></h2>
<p><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Physical realism is becoming an increasingly mandatory requirement for computer graphics. People have an instinctive ability to detect when an image is unnatural or implausible, destroying the suspension of disbelief and removing their sense of immersion. This pursuit of enhanced realism has led to a range of significant innovations towards graphics that are visually indistinguishable from the real world. However, as the overall look or <em>visual fidelity</em> to computer generated sequences improves through increasingly accurate lighting algorithms and more powerful rendering programs, it is inaccuracies in the behaviour or kinetic fidelity of a simulation that become more glaringly obvious to the viewer.</span></p>
<p><span style="color: black; font-family: arial,helvetica,sans-serif; font-size: small;">Typically kinematics has been used to achieve pre-configured animation, an approach that works well for animating articulated figures that possess joints or hinges. Artists use a technique called key-framing to explicitly define an objects start and end positions, interpolating in-between to get the full motion (think back to school and flicking through a notebook of a stick man):&nbsp;&nbsp;</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a class="iol_imc" style="left: 5px; top: 113.5px; width: 600px; height: 180px; visibility: visible;"><img class="mainImage" style="width: 600px; height: 180px; background-color: #ffffff;" src="http://www.ubelly.com/wp-content/uploads/2012/01/keyframes.png" alt="" /></a>&nbsp;</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">However, realism can only be judged subjectively and its application to other simulations such as destruction can be a long and tedious process. Therefore, a compelling argument to enhance the overall believability is to incorporate the laws of physics into models for more realistic procedural movement. Recent efforts into this highly-interdisciplinary area of interest, encompassing advanced topics of engineering and mathematics, have culminated in a field of study called <strong>Physics-Based Animation.</strong></span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">In the film industry, traditional forms of practical special effects involve the use of live pyrotechnics, complicated stunt work or intricate miniature models. The first widely acknowledged special effect can be seen in '<em>The Execution of Mary Queen of Scots (1895)'</em> while you will undoubtable be aware of the iconic model used in <em>Star Wars (1977)</em> as well as the incredible live action shots from <em>'Saving Private Ryan (1998)</em>'. Such techniques have proven to be effective in telling a story and prevailed as the de-facto choice of directors for many years, ultimately due to a lack of viable alternative. However, in certain situations, artistic vision stipulates effects that are simply too dangerous and/or expensive to be realised practically, such as the perilous trip by Tom Hanks and crews to the moon in <em>'Apollo 13 (1995)'. </em>Beyond safety and cost, logistics can cause problems if locations required for re-shoots are unavailable and need to be recreated digitally.</span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;"><em><a class="iol_imc" style="left: 0px; top: 32px; width: 610px; height: 343px; visibility: visible;"><img class="mainImage" style="width: 610px; height: 343px; background-color: #ffffff;" src="http://www.fact.co.uk/media/41268162/Tron-2.jpg" alt="" /></a></em></span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">These fundamental problems have been alleviated by the digital revolution of the last 30 years, beginning with the unprecedented efforts to create the ground breaking visual effects (VFX) seen in <em>'Tron (1981)</em>' - a watershed moment that heralded in a new era of visual entertainment and spawning companies such as Pixar, Weta Digital and Framestore. Impossible, previously infeasible effects such as the large scale destruction seem in the film <em>'2010' </em>and <em>'Transformers Dark of the Moon'</em>&nbsp; cannot be realised without the assistance of visually realistic computer simulations that&nbsp; behave in a manner identical to an actual building collapsing or vehicle exploding. Thus, the new and exciting discipline of physics-based animation has (general) usurped traditional approaches - although a hybrid of the two is often seen. Modern cinema, saturated with a range if ground-breaking visual effects showcases many algorithms for physics based animation. This&nbsp;wide gamut of computer vision techniques such as de-warping, feature tracking and image segmentation have been adapted for incredible VFX applications. </span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;"><img class="mainImage" style="width: 580px; height: 320px; background-color: #ffffff;" src="http://cgterminal.com/wp-content/uploads/2012/01/Behind-the-Magic-Transformers-Dark-of-the-Moon-Tilted-Building-Sequence.jpg" alt="" /></span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">Here is a summary of the main types of forward dynamic simulations:&nbsp;&nbsp;</span></span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em><span style="color: black;">Particle Systems</span></em></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">These systems can be considered the earliest and simplest form of dynamic simulation that can be used to replicate a variety of simple phenomena such as explosions, smoke, snow and rain. Typically, particles&nbsp;have a position and velocity but no orientation and are generally implemented in three-dimensional space as point&nbsp;masses. Application of Newtonian law govern the potential forces action on particles that, when couple together, model so-called fuzzy objects.</span></span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em><span style="color: black;">Rigid Body Simulation</span></em></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">Rigid Body Dynamics (RBD) employ non-penetrating multi-body systems composed of unyielding materials that are assigned physical characteristics along with the imposition of constraints. They differ from particle systems in that they occupy a physical space and are geometrically more complex. Various physics engines such as <a href="http://www.havok.com/">Havok</a>, <a href="http://www.geforce.com/hardware/technology/physx">PhysX</a> and <a href="http://physbam.stanford.edu/">PhysBAM</a> have been employed by facilities to create such simulation. Most of these are closed source engines that cost money to incorporate into a pipeline. Instead open source engines are more inviting as they allow developers to customise&nbsp;the code to suit specific needs. Previously, <a href="http://ode.org/">ODE</a> has been a popular choice but this has recently been&nbsp;displaced&nbsp;by <a href="http://bulletphysics.org/wordpress/">Bullet</a> as the de-facto engine of choice in many studios.&nbsp;&nbsp;</span></span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em><span style="color: black;">Deformable Body Simulation </span></em></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">Deformable objects, as the name suggests, are not rigid and include a range of different objects such as cloth, fur, hair and rope. The complexities of self intersections and collision response make them a challenging problem. The academy award winning efforts of <a href="http://ucla.academia.edu/DemetriTerzopoulos">Terzopoulos</a> in 1987 has been followed up by further pioneering work in inelastic deformation including plasticity and fracture. Generally, mass-spring systems are sued where particles are connected together based on the principles of Hooke's Law, but are unable to capture to volumetric effects or the precision stipulated by more complex systems. Alternatively, Finite Differences can be used to simulates deformable models based on continuum models.</span></span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em><span style="color: black;">Computational Fluid Dynamics</span></em></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;">The simulation of fluid phenomena including complex fire, smoke and water environments (that particle systems cannot handle) is accurately described by the <a href="http://www.grc.nasa.gov/WWW/K-12/airplane/nseqs.html">Navier-Stokes equation</a>. In its original form dating back to 1821 the equation simply describes the physics of fluids but has since been extended to account for turbulence, shallowness and high velocities. The challenges faced by computes graphics has been tackled by many including Digital Domain for <em>'The Day After </em>Tomorrow' and DreamWork's for the pioneering work seen in '<em>Antz</em>'. Current state of the art software for fluid simulation is <a href="http://exoticmatter.com/">Naiad</a> by Exotic Matter while proprietary software developed by VFX facility Scanline earned an Oscar nomination of the tsunami sequence seen in the film <em>'Hereafter'.</em></span></span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: black;"><em>Finite Element Methods</em></span></span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Based on theories taken from continuum mechanics, the finite element method can be used to discretise an object based on stress-strain relations and more accurately model deformable objects, as well as fracture. Originally, this has been used from a medical perspective and then the <a href="http://obrien.berkeley.edu/Prof._James_F._OBrien/Home.html">work of O'Brien</a> at the turn of the centure looked at non-real time non-linear animation of brittle and ductile materials. The general consensus in the community is that such methods are the future of physics based animation for visual effects. </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">A caveat to suing physical laws in the production of visual effects for film is that it is difficult to obey the laws of nature as well as the Principles of Animation, a set of suggested rules used by animators to exaggerate motion and engage the audience. For example, the squash and stretch principle is often seen in cartoons or animations to provide surrealistic movements favoured by younger audiences, enabling unnatural character poses and impossible physical scenarios. Further to this, directors may actively seek out unrealistic effects that cannot occur in the real world such as dream sequences, alien worlds or fantasy environments. Thus, it is imperative to retain perspective when developing new tools for VFX - an inherently artistic endeavour that regularly looks to push the boundaries o acceptability and manipulate algorithms in ways that were not necessarily intended for. </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Further to this, typical requirements encountered in traditional engineering applications - where emphasis is very much on accuracy - are not appropriate to VFX. Instead it is speed and predictability that are of&nbsp;paramount&nbsp;importance so that artists are able to convey interesting object motion with complete control. To keep pace with ever-changing production demands and the evolution of technology, tools must be extensible while maintaining stability and efficient. &nbsp;</span></p>
<p style="padding-left: 30px;">&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Year Anniversary and beginning of a blog...</title>
      <link>https://docs.microsoft.com/archive/blogs/luke_bailey/year-anniversary-and-beginning-of-a-blog</link>
      <pubDate>Fri, 06 Sep 2013 12:09:00 GMT</pubDate>
      <dc:creator><![CDATA[Luke Bailey]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/luke_bailey/2013/09/06/year-anniversary-and-beginning-of-a-blog/</guid>
      <description><![CDATA[Checking my email this evening, late on a Friday after a pretty hectic week, a nice automated email...]]></description>
      <content:encoded><![CDATA[<p>Checking my email this evening, late on a Friday after a pretty hectic week, a nice automated email surprise greeted me. One-year ago today I joined Microsoft - as a fresh faced graduate known internally as a&nbsp;MACH (Microsoft Academy of College Hire). How that year has flown by...</p>
<p>Fortunately, in the past 12 months I have&nbsp;travelled to Munich, Seattle and Atlanta for some fantastic&nbsp;training events;&nbsp;gained exposure across the entire Microsoft technology portfolio and&nbsp;made the&nbsp;decision to specialise&nbsp;in SharePoint - arguably the most successful,&nbsp;innovative and inspiring platform offered by the company. As part of the team I am now in, we maintain a SharePoint specific blog series (<a href="http://blogs.msdn.com/b/uksharepoint/">http://blogs.msdn.com/b/uksharepoint/)</a>&nbsp;that focusses on the ideas, concepts and principles we encounter during our work from an infrastructure, architectural and development perspective.</p>
<p>But given my wider passion for technology and engineering background, where despite its amazing capabilities there are other interesting technologies beyond SharePoint, I wanted to kick off&nbsp;my&nbsp;second year with Microsoft with my own blog series on other activities and interests that I have to promote the other platforms, solutions and now even devices that we offer.</p>
<p>More to follow shortly...&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>