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

386 lines
22 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: fea::GlobalStiffAssembler Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><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="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#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="namespacefea.html">fea</a></li><li class="navelem"><a class="el" href="classfea_1_1_global_stiff_assembler.html">GlobalStiffAssembler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classfea_1_1_global_stiff_assembler-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">fea::GlobalStiffAssembler Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Assembles the global stiffness matrix.
<a href="classfea_1_1_global_stiff_assembler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="threed__beam__fea_8h_source.html">threed_beam_fea.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1a880ef51b6dd2619ac3f4f510a726a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html#a1a880ef51b6dd2619ac3f4f510a726a2">GlobalStiffAssembler</a> ()</td></tr>
<tr class="memdesc:a1a880ef51b6dd2619ac3f4f510a726a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#a1a880ef51b6dd2619ac3f4f510a726a2">More...</a><br /></td></tr>
<tr class="separator:a1a880ef51b6dd2619ac3f4f510a726a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae07a113c97d0aa76a6391b4697961875"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html#ae07a113c97d0aa76a6391b4697961875">operator()</a> (<a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;Kg, const <a class="el" href="structfea_1_1_job.html">Job</a> &amp;job, const std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt; &amp;ties)</td></tr>
<tr class="memdesc:ae07a113c97d0aa76a6391b4697961875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembles the global stiffness matrix. <a href="#ae07a113c97d0aa76a6391b4697961875">More...</a><br /></td></tr>
<tr class="separator:ae07a113c97d0aa76a6391b4697961875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad75afc9ef363da11c60a9d84f190701"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html#aad75afc9ef363da11c60a9d84f190701">calcKelem</a> (unsigned int i, const <a class="el" href="structfea_1_1_job.html">Job</a> &amp;job)</td></tr>
<tr class="memdesc:aad75afc9ef363da11c60a9d84f190701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the elemental stiffness matrix for the <code>ith</code> element. <a href="#aad75afc9ef363da11c60a9d84f190701">More...</a><br /></td></tr>
<tr class="separator:aad75afc9ef363da11c60a9d84f190701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c403407b2a17700bec9de277ae717d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html#a9c403407b2a17700bec9de277ae717d8">calcAelem</a> (const Eigen::Vector3d &amp;nx, const Eigen::Vector3d &amp;nz)</td></tr>
<tr class="memdesc:a9c403407b2a17700bec9de277ae717d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the rotation and transposed rotation matrices. <a href="#a9c403407b2a17700bec9de277ae717d8">More...</a><br /></td></tr>
<tr class="separator:a9c403407b2a17700bec9de277ae717d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860467d39009b2cf45ec68cd799f5213"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">LocalMatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html#a860467d39009b2cf45ec68cd799f5213">getKelem</a> ()</td></tr>
<tr class="memdesc:a860467d39009b2cf45ec68cd799f5213"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently stored elemental stiffness matrix. <a href="#a860467d39009b2cf45ec68cd799f5213">More...</a><br /></td></tr>
<tr class="separator:a860467d39009b2cf45ec68cd799f5213"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37389168def7bc5993f1e49cd584e32c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">LocalMatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html#a37389168def7bc5993f1e49cd584e32c">getAelem</a> ()</td></tr>
<tr class="memdesc:a37389168def7bc5993f1e49cd584e32c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently stored rotation matrix. <a href="#a37389168def7bc5993f1e49cd584e32c">More...</a><br /></td></tr>
<tr class="separator:a37389168def7bc5993f1e49cd584e32c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Assembles the global stiffness matrix. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a1a880ef51b6dd2619ac3f4f510a726a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fea::GlobalStiffAssembler::GlobalStiffAssembler </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<p>Initializes all entries in member matrices to 0.0. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a9c403407b2a17700bec9de277ae717d8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::GlobalStiffAssembler::calcAelem </td>
<td>(</td>
<td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
<td class="paramname"><em>nx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
<td class="paramname"><em>nz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the rotation and transposed rotation matrices. </p>
<p>The rotation matrices <code>Aelem</code> and <code>AelemT</code> are updated based on the 2 specified unit normal vectors along the local x and y directions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">nx</td><td><code>Eigen::Matrix3d</code>. Unit normal vector in global space parallel to the beam element's local x-direction. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ny</td><td><code>Eigen::Matrix3d</code>. Unit normal vector in global space parallel to the beam element's local y-direction. </td></tr>
</table>
</dd>
</dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classfea_1_1_global_stiff_assembler_a9c403407b2a17700bec9de277ae717d8_icgraph.png" border="0" usemap="#classfea_1_1_global_stiff_assembler_a9c403407b2a17700bec9de277ae717d8_icgraph" alt=""/></div>
<map name="classfea_1_1_global_stiff_assembler_a9c403407b2a17700bec9de277ae717d8_icgraph" id="classfea_1_1_global_stiff_assembler_a9c403407b2a17700bec9de277ae717d8_icgraph">
<area shape="rect" id="node2" href="classfea_1_1_global_stiff_assembler.html#aad75afc9ef363da11c60a9d84f190701" title="Updates the elemental stiffness matrix for the ith element. " alt="" coords="229,5,405,47"/>
<area shape="rect" id="node3" href="classfea_1_1_global_stiff_assembler.html#ae07a113c97d0aa76a6391b4697961875" title="Assembles the global stiffness matrix. " alt="" coords="453,5,629,47"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="aad75afc9ef363da11c60a9d84f190701"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::GlobalStiffAssembler::calcKelem </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structfea_1_1_job.html">Job</a> &amp;&#160;</td>
<td class="paramname"><em>job</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the elemental stiffness matrix for the <code>ith</code> element. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td><code>unsigned int</code>. Specifies the ith element for which the elemental stiffness matrix is calculated. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">job</td><td><code><a class="el" href="structfea_1_1_job.html" title="Contains a node list, element list, and the properties of each element. ">Job</a></code>. Current <code><a class="el" href="structfea_1_1_job.html" title="Contains a node list, element list, and the properties of each element. ">fea::Job</a></code> to analyze contains node, element, and property lists. </td></tr>
</table>
</dd>
</dl>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_cgraph.png" border="0" usemap="#classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_cgraph" alt=""/></div>
<map name="classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_cgraph" id="classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_cgraph">
<area shape="rect" id="node2" href="namespacefea.html#a22c94233f560b36c5e782d6e73cebae3" title="Calculates the distance between 2 nodes. " alt="" coords="277,5,357,32"/>
<area shape="rect" id="node3" href="classfea_1_1_global_stiff_assembler.html#a9c403407b2a17700bec9de277ae717d8" title="Updates the rotation and transposed rotation matrices. " alt="" coords="229,57,405,98"/>
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_icgraph.png" border="0" usemap="#classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_icgraph" alt=""/></div>
<map name="classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_icgraph" id="classfea_1_1_global_stiff_assembler_aad75afc9ef363da11c60a9d84f190701_icgraph">
<area shape="rect" id="node2" href="classfea_1_1_global_stiff_assembler.html#ae07a113c97d0aa76a6391b4697961875" title="Assembles the global stiffness matrix. " alt="" coords="229,5,405,47"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a37389168def7bc5993f1e49cd584e32c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">LocalMatrix</a> fea::GlobalStiffAssembler::getAelem </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the currently stored rotation matrix. </p>
<dl class="section return"><dt>Returns</dt><dd><b>Rotation matrix</b> <code><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">fea::LocalMatrix</a></code>. </dd></dl>
</div>
</div>
<a class="anchor" id="a860467d39009b2cf45ec68cd799f5213"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">LocalMatrix</a> fea::GlobalStiffAssembler::getKelem </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the currently stored elemental stiffness matrix. </p>
<dl class="section return"><dt>Returns</dt><dd><b>Elemental stiffness matrix</b> <code><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">fea::LocalMatrix</a></code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ae07a113c97d0aa76a6391b4697961875"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::GlobalStiffAssembler::operator() </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;&#160;</td>
<td class="paramname"><em>Kg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structfea_1_1_job.html">Job</a> &amp;&#160;</td>
<td class="paramname"><em>job</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>ties</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Assembles the global stiffness matrix. </p>
<p>The input stiffness matrix is modified in place to contain the correct values for the given job. Assumes that the input stiffness matrix has the correct dimensions and all values are initially set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">Kg</td><td><code><a class="el" href="namespacefea.html#ab78c368a6a71d4dd85184e0ab034bde6">fea::GlobalStiffMatrix</a></code>. Modified in place. After evaluation, Kg contains the correct values for the global stiffness matrix due to the input <a class="el" href="structfea_1_1_job.html" title="Contains a node list, element list, and the properties of each element. ">Job</a>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">job</td><td><code><a class="el" href="structfea_1_1_job.html" title="Contains a node list, element list, and the properties of each element. ">fea::Job</a></code>. Current <a class="el" href="structfea_1_1_job.html" title="Contains a node list, element list, and the properties of each element. ">Job</a> to analyze contains node, element, and property lists. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ties</td><td><code>std::vector&lt;<a class="el" href="structfea_1_1_tie.html" title="Places linear springs between all degrees of freedom of 2 nodes. ">fea::Tie</a>&gt;</code>. Vector of ties that apply to attach springs of specified stiffness to all nodal degrees of freedom between each set of nodes indicated. </td></tr>
</table>
</dd>
</dl>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classfea_1_1_global_stiff_assembler_ae07a113c97d0aa76a6391b4697961875_cgraph.png" border="0" usemap="#classfea_1_1_global_stiff_assembler_ae07a113c97d0aa76a6391b4697961875_cgraph" alt=""/></div>
<map name="classfea_1_1_global_stiff_assembler_ae07a113c97d0aa76a6391b4697961875_cgraph" id="classfea_1_1_global_stiff_assembler_ae07a113c97d0aa76a6391b4697961875_cgraph">
<area shape="rect" id="node2" href="classfea_1_1_global_stiff_assembler.html#aad75afc9ef363da11c60a9d84f190701" title="Updates the elemental stiffness matrix for the ith element. " alt="" coords="229,27,405,69"/>
<area shape="rect" id="node5" href="namespacefea.html#adb99d60a0e4eb10e55a7c52044efb6e3" title="Loads any tie constraints into the set of triplets that will become the global stiffness matrix..." alt="" coords="265,93,369,120"/>
<area shape="rect" id="node3" href="namespacefea.html#a22c94233f560b36c5e782d6e73cebae3" title="Calculates the distance between 2 nodes. " alt="" coords="501,5,581,32"/>
<area shape="rect" id="node4" href="classfea_1_1_global_stiff_assembler.html#a9c403407b2a17700bec9de277ae717d8" title="Updates the rotation and transposed rotation matrices. " alt="" coords="453,57,629,98"/>
</map>
</div>
</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/<a class="el" href="threed__beam__fea_8h_source.html">threed_beam_fea.h</a></li>
<li>src/<a class="el" href="threed__beam__fea_8cpp.html">threed_beam_fea.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Nov 5 2015 10:34:37 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>