threed-beam-fea/docs/html/threed__beam__fea_8h_source...

249 lines
31 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>3D Beam Finite Element Code: include/threed_beam_fea.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo_64x64.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">3D Beam Finite Element Code
&#160;<span id="projectnumber">1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_b28d62efa98f86b8b0fb08cf5c9b238d.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">threed_beam_fea.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="threed__beam__fea_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Copyright 2015. All rights reserved.</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// modification, are permitted provided that the following conditions are met:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// * Redistributions of source code must retain the above copyright notice,</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// * Redistributions in binary form must reproduce the above copyright notice,</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// this list of conditions and the following disclaimer in the documentation</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// and/or other materials provided with the distribution.</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// Author: ryan.latture@gmail.com (Ryan Latture)</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifndef THREED_BEAM_FEA_H</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#define THREED_BEAM_FEA_H</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#ifdef EIGEN_USE_MKL_ALL</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;Eigen/PardisoSupport&gt;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;Eigen/SparseLU&gt;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;Eigen/Core&gt;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;Eigen/Geometry&gt;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;Eigen/SparseCore&gt;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="containers_8h.html">containers.h</a>&quot;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="options_8h.html">options.h</a>&quot;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="summary_8h.html">summary.h</a>&quot;</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="csv__parser_8h.html">csv_parser.h</a>&quot;</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacefea.html">fea</a> {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacefea.html#ab78c368a6a71d4dd85184e0ab034bde6"> 65</a></span>&#160; <span class="keyword">typedef</span> Eigen::Matrix&lt;double, Eigen::Dynamic, Eigen::Dynamic&gt; <a class="code" href="namespacefea.html#ab78c368a6a71d4dd85184e0ab034bde6">GlobalStiffMatrix</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433"> 70</a></span>&#160; <span class="keyword">typedef</span> Eigen::Matrix&lt;double, 12, 12, Eigen::RowMajor&gt; <a class="code" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">LocalMatrix</a>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed"> 76</a></span>&#160; <span class="keyword">typedef</span> Eigen::Matrix&lt;double, Eigen::Dynamic, 1&gt; <a class="code" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">ForceVector</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662"> 81</a></span>&#160; <span class="keyword">typedef</span> Eigen::SparseMatrix&lt;double&gt; <a class="code" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespacefea.html#a22c94233f560b36c5e782d6e73cebae3">norm</a>(<span class="keyword">const</span> <a class="code" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &amp;n1, <span class="keyword">const</span> <a class="code" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &amp;n2);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classfea_1_1_global_stiff_assembler.html"> 97</a></span>&#160; <span class="keyword">class </span><a class="code" href="classfea_1_1_global_stiff_assembler.html">GlobalStiffAssembler</a> {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classfea_1_1_global_stiff_assembler.html#a1a880ef51b6dd2619ac3f4f510a726a2"> 105</a></span>&#160; <a class="code" href="classfea_1_1_global_stiff_assembler.html#a1a880ef51b6dd2619ac3f4f510a726a2">GlobalStiffAssembler</a>() {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; Kelem.setZero();</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; Klocal.setZero();</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; Aelem.setZero();</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; AelemT.setZero();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; SparseKelem.resize(12, 12);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; SparseKelem.reserve(40);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classfea_1_1_global_stiff_assembler.html#ae07a113c97d0aa76a6391b4697961875">operator()</a>(SparseMat &amp;Kg, <span class="keyword">const</span> <a class="code" href="structfea_1_1_job.html">Job</a> &amp;job, <span class="keyword">const</span> std::vector&lt;Tie&gt; &amp;ties);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classfea_1_1_global_stiff_assembler.html#aad75afc9ef363da11c60a9d84f190701">calcKelem</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keyword">const</span> <a class="code" href="structfea_1_1_job.html">Job</a> &amp;job);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classfea_1_1_global_stiff_assembler.html#a9c403407b2a17700bec9de277ae717d8">calcAelem</a>(<span class="keyword">const</span> Eigen::Vector3d &amp;nx, <span class="keyword">const</span> Eigen::Vector3d &amp;nz);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classfea_1_1_global_stiff_assembler.html#a860467d39009b2cf45ec68cd799f5213"> 149</a></span>&#160; LocalMatrix <a class="code" href="classfea_1_1_global_stiff_assembler.html#a860467d39009b2cf45ec68cd799f5213">getKelem</a>() {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> Kelem;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classfea_1_1_global_stiff_assembler.html#a37389168def7bc5993f1e49cd584e32c"> 157</a></span>&#160; LocalMatrix <a class="code" href="classfea_1_1_global_stiff_assembler.html#a37389168def7bc5993f1e49cd584e32c">getAelem</a>() {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> Aelem;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; LocalMatrix Kelem;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; LocalMatrix Klocal;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; LocalMatrix Aelem;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; LocalMatrix AelemT;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; SparseMat SparseKelem;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; };</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacefea.html#a9a7fec579a34d0fed8339237f2cfe994">loadBCs</a>(SparseMat &amp;Kg, ForceVector &amp;force_vec, <span class="keyword">const</span> std::vector&lt;BC&gt; &amp;BCs, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_nodes);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacefea.html#adb99d60a0e4eb10e55a7c52044efb6e3">loadTies</a>(std::vector&lt;Eigen::Triplet&lt;double&gt; &gt; &amp;triplets, <span class="keyword">const</span> std::vector&lt;Tie&gt; &amp;ties);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::vector&lt;std::vector&lt;double&gt; &gt; <a class="code" href="namespacefea.html#ad101dfa486fc4d0bd848129ff2453139">computeTieForces</a>(<span class="keyword">const</span> std::vector&lt;Tie&gt; &amp;ties,</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt; &gt; &amp;nodal_displacements);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacefea.html#af9e37d32f38ace35944f1e63f4a447fa">loadForces</a>(SparseMat &amp;force_vec, <span class="keyword">const</span> std::vector&lt;Force&gt; &amp;forces);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; Summary <a class="code" href="namespacefea.html#aca9724c7cab58b0671b29f3f4318e599">solve</a>(<span class="keyword">const</span> Job &amp;job,</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">const</span> std::vector&lt;BC&gt; &amp;BCs,</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">const</span> std::vector&lt;Force&gt; &amp;forces,</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">const</span> std::vector&lt;Tie&gt; &amp;ties,</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">const</span> Options &amp;options);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;} <span class="comment">// namespace fea</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#endif // THREED_BEAM_FEA_H</span></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html">fea::GlobalStiffAssembler</a></div><div class="ttdoc">Assembles the global stiffness matrix. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:97</div></div>
<div class="ttc" id="csv__parser_8h_html"><div class="ttname"><a href="csv__parser_8h.html">csv_parser.h</a></div></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html_a1a880ef51b6dd2619ac3f4f510a726a2"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html#a1a880ef51b6dd2619ac3f4f510a726a2">fea::GlobalStiffAssembler::GlobalStiffAssembler</a></div><div class="ttdeci">GlobalStiffAssembler()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:105</div></div>
<div class="ttc" id="containers_8h_html"><div class="ttname"><a href="containers_8h.html">containers.h</a></div></div>
<div class="ttc" id="namespacefea_html_ae6576c78eabdf80c7a1b2ab0a9046433"><div class="ttname"><a href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">fea::LocalMatrix</a></div><div class="ttdeci">Eigen::Matrix&lt; double, 12, 12, Eigen::RowMajor &gt; LocalMatrix</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:70</div></div>
<div class="ttc" id="summary_8h_html"><div class="ttname"><a href="summary_8h.html">summary.h</a></div></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html_a9c403407b2a17700bec9de277ae717d8"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html#a9c403407b2a17700bec9de277ae717d8">fea::GlobalStiffAssembler::calcAelem</a></div><div class="ttdeci">void calcAelem(const Eigen::Vector3d &amp;nx, const Eigen::Vector3d &amp;nz)</div><div class="ttdoc">Updates the rotation and transposed rotation matrices. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:136</div></div>
<div class="ttc" id="namespacefea_html_a22c94233f560b36c5e782d6e73cebae3"><div class="ttname"><a href="namespacefea.html#a22c94233f560b36c5e782d6e73cebae3">fea::norm</a></div><div class="ttdeci">double norm(const Node &amp;n1, const Node &amp;n2)</div><div class="ttdoc">Calculates the distance between 2 nodes. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:49</div></div>
<div class="ttc" id="namespacefea_html_aca9724c7cab58b0671b29f3f4318e599"><div class="ttname"><a href="namespacefea.html#aca9724c7cab58b0671b29f3f4318e599">fea::solve</a></div><div class="ttdeci">Summary solve(const Job &amp;job, const std::vector&lt; BC &gt; &amp;BCs, const std::vector&lt; Force &gt; &amp;forces, const std::vector&lt; Tie &gt; &amp;ties, const Options &amp;options)</div><div class="ttdoc">Solves the finite element analysis defined by the input Job, boundary conditions, and prescribed noda...</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:378</div></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html_a860467d39009b2cf45ec68cd799f5213"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html#a860467d39009b2cf45ec68cd799f5213">fea::GlobalStiffAssembler::getKelem</a></div><div class="ttdeci">LocalMatrix getKelem()</div><div class="ttdoc">Returns the currently stored elemental stiffness matrix. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:149</div></div>
<div class="ttc" id="namespacefea_html_a9a7fec579a34d0fed8339237f2cfe994"><div class="ttname"><a href="namespacefea.html#a9a7fec579a34d0fed8339237f2cfe994">fea::loadBCs</a></div><div class="ttdeci">void loadBCs(SparseMat &amp;Kg, ForceVector &amp;force_vec, const std::vector&lt; BC &gt; &amp;BCs, unsigned int num_nodes)</div><div class="ttdoc">Loads the boundary conditions into the global stiffness matrix and force vector. </div></div>
<div class="ttc" id="namespacefea_html_ab78c368a6a71d4dd85184e0ab034bde6"><div class="ttname"><a href="namespacefea.html#ab78c368a6a71d4dd85184e0ab034bde6">fea::GlobalStiffMatrix</a></div><div class="ttdeci">Eigen::Matrix&lt; double, Eigen::Dynamic, Eigen::Dynamic &gt; GlobalStiffMatrix</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:65</div></div>
<div class="ttc" id="namespacefea_html_adb99d60a0e4eb10e55a7c52044efb6e3"><div class="ttname"><a href="namespacefea.html#adb99d60a0e4eb10e55a7c52044efb6e3">fea::loadTies</a></div><div class="ttdeci">void loadTies(std::vector&lt; Eigen::Triplet&lt; double &gt; &gt; &amp;triplets, const std::vector&lt; Tie &gt; &amp;ties)</div><div class="ttdoc">Loads any tie constraints into the set of triplets that will become the global stiffness matrix...</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:309</div></div>
<div class="ttc" id="namespacefea_html_ab9a3b4734f69bd4a2a883d7b9bab5662"><div class="ttname"><a href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">fea::SparseMat</a></div><div class="ttdeci">Eigen::SparseMatrix&lt; double &gt; SparseMat</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:81</div></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html_a37389168def7bc5993f1e49cd584e32c"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html#a37389168def7bc5993f1e49cd584e32c">fea::GlobalStiffAssembler::getAelem</a></div><div class="ttdeci">LocalMatrix getAelem()</div><div class="ttdoc">Returns the currently stored rotation matrix. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:157</div></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html_aad75afc9ef363da11c60a9d84f190701"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html#aad75afc9ef363da11c60a9d84f190701">fea::GlobalStiffAssembler::calcKelem</a></div><div class="ttdeci">void calcKelem(unsigned int i, const Job &amp;job)</div><div class="ttdoc">Updates the elemental stiffness matrix for the ith element. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:54</div></div>
<div class="ttc" id="namespacefea_html_af9e37d32f38ace35944f1e63f4a447fa"><div class="ttname"><a href="namespacefea.html#af9e37d32f38ace35944f1e63f4a447fa">fea::loadForces</a></div><div class="ttdeci">void loadForces(SparseMat &amp;force_vec, const std::vector&lt; Force &gt; &amp;forces)</div><div class="ttdoc">Loads the prescribed forces into the force vector. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:368</div></div>
<div class="ttc" id="namespacefea_html_ad101dfa486fc4d0bd848129ff2453139"><div class="ttname"><a href="namespacefea.html#ad101dfa486fc4d0bd848129ff2453139">fea::computeTieForces</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; computeTieForces(const std::vector&lt; Tie &gt; &amp;ties, const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;nodal_displacements)</div><div class="ttdoc">Computes the forces in the tie elements based on the nodal displacements of the FE analysis and the s...</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:343</div></div>
<div class="ttc" id="namespacefea_html_acea7372904bb1c5f0570e9a53cf6fba9"><div class="ttname"><a href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">fea::Node</a></div><div class="ttdeci">Eigen::Vector3d Node</div><div class="ttdoc">A node that describes a mesh. Uses Eigen&#39;s predefined Vector class for added functionality. </div><div class="ttdef"><b>Definition:</b> containers.h:56</div></div>
<div class="ttc" id="structfea_1_1_job_html"><div class="ttname"><a href="structfea_1_1_job.html">fea::Job</a></div><div class="ttdoc">Contains a node list, element list, and the properties of each element. </div><div class="ttdef"><b>Definition:</b> containers.h:246</div></div>
<div class="ttc" id="namespacefea_html_a0cab5016018de58ed55a874e7fee68ed"><div class="ttname"><a href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">fea::ForceVector</a></div><div class="ttdeci">Eigen::Matrix&lt; double, Eigen::Dynamic, 1 &gt; ForceVector</div><div class="ttdef"><b>Definition:</b> threed_beam_fea.h:76</div></div>
<div class="ttc" id="options_8h_html"><div class="ttname"><a href="options_8h.html">options.h</a></div></div>
<div class="ttc" id="namespacefea_html"><div class="ttname"><a href="namespacefea.html">fea</a></div><div class="ttdef"><b>Definition:</b> containers.h:41</div></div>
<div class="ttc" id="classfea_1_1_global_stiff_assembler_html_ae07a113c97d0aa76a6391b4697961875"><div class="ttname"><a href="classfea_1_1_global_stiff_assembler.html#ae07a113c97d0aa76a6391b4697961875">fea::GlobalStiffAssembler::operator()</a></div><div class="ttdeci">void operator()(SparseMat &amp;Kg, const Job &amp;job, const std::vector&lt; Tie &gt; &amp;ties)</div><div class="ttdoc">Assembles the global stiffness matrix. </div><div class="ttdef"><b>Definition:</b> threed_beam_fea.cpp:226</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Nov 9 2015 11:57:00 for 3D Beam Finite Element Code by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>