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

1138 lines
71 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.9.1"/>
<title>3D Beam Finite Element Code: fea Namespace 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 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.9.1 -->
<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 class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><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="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#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><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">fea Namespace Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_b_c.html">BC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A boundary condition to enforce. <a href="structfea_1_1_b_c.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_c_s_v_parser.html">CSVParser</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from a csv file into an <code>std::vector</code> and writes the contents of an <code>std::vector</code> to a file. <a href="classfea_1_1_c_s_v_parser.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_elem.html">Elem</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An element of the mesh. Contains the indices of the two <code><a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9" title="A node that describes a mesh. Uses Eigen&#39;s predefined Vector class for added functionality. ">fea::Node</a></code>'s that form the element as well as the properties of the element given by the <code><a class="el" href="structfea_1_1_props.html" title="The set of properties associated with an element. ">fea::Props</a></code> struct. <a href="structfea_1_1_elem.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_equation.html">Equation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A linear multipoint constraint. <a href="structfea_1_1_equation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_force.html">Force</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A nodal force to enforce. <a href="structfea_1_1_force.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfea_1_1_global_stiff_assembler.html">GlobalStiffAssembler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembles the global stiffness matrix. <a href="classfea_1_1_global_stiff_assembler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_job.html">Job</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains a node list, element list, and the properties of each element. <a href="structfea_1_1_job.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_options.html">Options</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a method for customizing the finite element analysis. <a href="structfea_1_1_options.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_props.html">Props</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The set of properties associated with an element. <a href="structfea_1_1_props.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_summary.html">Summary</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains the results of an analysis after calling <code><a class="el" href="namespacefea.html#a995a678cf119fb20772312ccfdbec991" title="Solves the finite element analysis defined by the input Job, boundary conditions, and prescribed noda...">fea::solve</a></code>. <a href="structfea_1_1_summary.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfea_1_1_tie.html">Tie</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Places linear springs between all degrees of freedom of 2 nodes. <a href="structfea_1_1_tie.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:acea7372904bb1c5f0570e9a53cf6fba9"><td class="memItemLeft" align="right" valign="top">typedef Eigen::Vector3d&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a></td></tr>
<tr class="memdesc:acea7372904bb1c5f0570e9a53cf6fba9"><td class="mdescLeft">&#160;</td><td class="mdescRight">A node that describes a mesh. Uses Eigen's predefined Vector class for added functionality. <a href="#acea7372904bb1c5f0570e9a53cf6fba9">More...</a><br /></td></tr>
<tr class="separator:acea7372904bb1c5f0570e9a53cf6fba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab78c368a6a71d4dd85184e0ab034bde6"><td class="memItemLeft" align="right" valign="top">typedef Eigen::Matrix&lt; double, Eigen::Dynamic, Eigen::Dynamic &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#ab78c368a6a71d4dd85184e0ab034bde6">GlobalStiffMatrix</a></td></tr>
<tr class="separator:ab78c368a6a71d4dd85184e0ab034bde6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6576c78eabdf80c7a1b2ab0a9046433"><td class="memItemLeft" align="right" valign="top">typedef Eigen::Matrix&lt; double, 12, 12, Eigen::RowMajor &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">LocalMatrix</a></td></tr>
<tr class="separator:ae6576c78eabdf80c7a1b2ab0a9046433"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cab5016018de58ed55a874e7fee68ed"><td class="memItemLeft" align="right" valign="top">typedef Eigen::Matrix&lt; double, Eigen::Dynamic, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">ForceVector</a></td></tr>
<tr class="separator:a0cab5016018de58ed55a874e7fee68ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9a3b4734f69bd4a2a883d7b9bab5662"><td class="memItemLeft" align="right" valign="top">typedef Eigen::SparseMatrix&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a></td></tr>
<tr class="separator:ab9a3b4734f69bd4a2a883d7b9bab5662"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:aeaca75d33e81b79c9282f3e69a238d72"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72">DOF</a> { <br />
&#160;&#160;<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72a0bfcf6fc693c952c376a1d9eb9cf03fb">DISPLACEMENT_X</a>,
<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72ad39e7a11a71cac64252cb1fb1d94c7f9">DISPLACEMENT_Y</a>,
<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72a83e84bbf75a8e85c73e0fd2bb935bcf1">DISPLACEMENT_Z</a>,
<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72a5875f07a4a341f6533903a95fb7fe616">ROTATION_X</a>,
<br />
&#160;&#160;<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72a21233443a44145b64de8926e26a32125">ROTATION_Y</a>,
<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72adfd643a8bc8c19273cb8fb809692d97c">ROTATION_Z</a>,
<a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72afce3a19d68579e4bffcf210a9ef03707">NUM_DOFS</a>
<br />
}</td></tr>
<tr class="memdesc:aeaca75d33e81b79c9282f3e69a238d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience enumerator for specifying the active degree of freedom in a constraint. <a href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72">More...</a><br /></td></tr>
<tr class="separator:aeaca75d33e81b79c9282f3e69a238d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a939c98c33c7d1076d1e9feed06b9b753"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a939c98c33c7d1076d1e9feed06b9b753"><td class="memTemplItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacefea.html#a939c98c33c7d1076d1e9feed06b9b753">operator&gt;&gt;</a> (std::istream &amp;ins, std::vector&lt; T &gt; &amp;record)</td></tr>
<tr class="separator:a939c98c33c7d1076d1e9feed06b9b753"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac34163f744a2b10263263c4a4d4ba7d4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac34163f744a2b10263263c4a4d4ba7d4"><td class="memTemplItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacefea.html#ac34163f744a2b10263263c4a4d4ba7d4">operator&gt;&gt;</a> (std::istream &amp;ins, std::vector&lt; std::vector&lt; T &gt; &gt; &amp;data)</td></tr>
<tr class="separator:ac34163f744a2b10263263c4a4d4ba7d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a126e737b8f8a337d3fb431ba213b4735"><td class="memItemLeft" align="right" valign="top">rapidjson::Document&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a126e737b8f8a337d3fb431ba213b4735">parseJSONConfig</a> (const std::string &amp;config_filename)</td></tr>
<tr class="separator:a126e737b8f8a337d3fb431ba213b4735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb3c988a0fb1f75ea8a842e3b69f13eb"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#aeb3c988a0fb1f75ea8a842e3b69f13eb">createNodeVecFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:aeb3c988a0fb1f75ea8a842e3b69f13eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8f4352c4c5540dbc63ee1eedb6744c3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structfea_1_1_elem.html">Elem</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#ab8f4352c4c5540dbc63ee1eedb6744c3">createElemVecFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:ab8f4352c4c5540dbc63ee1eedb6744c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa86bdb3a895956a13997d2d98097d42d"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structfea_1_1_b_c.html">BC</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#aa86bdb3a895956a13997d2d98097d42d">createBCVecFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:aa86bdb3a895956a13997d2d98097d42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d1c659e6bbaea42ae48b489218d7530"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structfea_1_1_force.html">Force</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a0d1c659e6bbaea42ae48b489218d7530">createForceVecFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:a0d1c659e6bbaea42ae48b489218d7530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fcdf225a9bd25d73c5494d86597025c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a2fcdf225a9bd25d73c5494d86597025c">createTieVecFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:a2fcdf225a9bd25d73c5494d86597025c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231f5a0658f5b9fe97182c405a455d03"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structfea_1_1_equation.html">Equation</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a231f5a0658f5b9fe97182c405a455d03">createEquationVecFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:a231f5a0658f5b9fe97182c405a455d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad7c45b93603bd80a9ff05c5e5c9a77c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfea_1_1_job.html">Job</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#aad7c45b93603bd80a9ff05c5e5c9a77c">createJobFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:aad7c45b93603bd80a9ff05c5e5c9a77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabd98531e9fb83a92514ff834fb84ad6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfea_1_1_options.html">Options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#aabd98531e9fb83a92514ff834fb84ad6">createOptionsFromJSON</a> (const rapidjson::Document &amp;config_doc)</td></tr>
<tr class="separator:aabd98531e9fb83a92514ff834fb84ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22c94233f560b36c5e782d6e73cebae3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a22c94233f560b36c5e782d6e73cebae3">norm</a> (const <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &amp;n1, const <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &amp;n2)</td></tr>
<tr class="memdesc:a22c94233f560b36c5e782d6e73cebae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the distance between 2 nodes. <a href="#a22c94233f560b36c5e782d6e73cebae3">More...</a><br /></td></tr>
<tr class="separator:a22c94233f560b36c5e782d6e73cebae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a7fec579a34d0fed8339237f2cfe994"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a9a7fec579a34d0fed8339237f2cfe994">loadBCs</a> (<a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;Kg, <a class="el" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">ForceVector</a> &amp;force_vec, const std::vector&lt; <a class="el" href="structfea_1_1_b_c.html">BC</a> &gt; &amp;BCs, unsigned int num_nodes)</td></tr>
<tr class="memdesc:a9a7fec579a34d0fed8339237f2cfe994"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the boundary conditions into the global stiffness matrix and force vector. <a href="#a9a7fec579a34d0fed8339237f2cfe994">More...</a><br /></td></tr>
<tr class="separator:a9a7fec579a34d0fed8339237f2cfe994"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad84d1896799e4150617b01d8cce6e699"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#ad84d1896799e4150617b01d8cce6e699">loadEquations</a> (<a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;Kg, const std::vector&lt; <a class="el" href="structfea_1_1_equation.html">Equation</a> &gt; &amp;equations, unsigned int num_nodes, unsigned int num_bcs)</td></tr>
<tr class="separator:ad84d1896799e4150617b01d8cce6e699"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb99d60a0e4eb10e55a7c52044efb6e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#adb99d60a0e4eb10e55a7c52044efb6e3">loadTies</a> (std::vector&lt; Eigen::Triplet&lt; double &gt; &gt; &amp;triplets, const std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt; &amp;ties)</td></tr>
<tr class="memdesc:adb99d60a0e4eb10e55a7c52044efb6e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads any tie constraints into the set of triplets that will become the global stiffness matrix. <a href="#adb99d60a0e4eb10e55a7c52044efb6e3">More...</a><br /></td></tr>
<tr class="separator:adb99d60a0e4eb10e55a7c52044efb6e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad101dfa486fc4d0bd848129ff2453139"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#ad101dfa486fc4d0bd848129ff2453139">computeTieForces</a> (const std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt; &amp;ties, const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;nodal_displacements)</td></tr>
<tr class="memdesc:ad101dfa486fc4d0bd848129ff2453139"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the forces in the tie elements based on the nodal displacements of the FE analysis and the spring constants provided in <code>ties</code>. <a href="#ad101dfa486fc4d0bd848129ff2453139">More...</a><br /></td></tr>
<tr class="separator:ad101dfa486fc4d0bd848129ff2453139"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9e37d32f38ace35944f1e63f4a447fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#af9e37d32f38ace35944f1e63f4a447fa">loadForces</a> (<a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;force_vec, const std::vector&lt; <a class="el" href="structfea_1_1_force.html">Force</a> &gt; &amp;forces)</td></tr>
<tr class="memdesc:af9e37d32f38ace35944f1e63f4a447fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the prescribed forces into the force vector. <a href="#af9e37d32f38ace35944f1e63f4a447fa">More...</a><br /></td></tr>
<tr class="separator:af9e37d32f38ace35944f1e63f4a447fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a995a678cf119fb20772312ccfdbec991"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfea_1_1_summary.html">Summary</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a995a678cf119fb20772312ccfdbec991">solve</a> (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_b_c.html">BC</a> &gt; &amp;BCs, const std::vector&lt; <a class="el" href="structfea_1_1_force.html">Force</a> &gt; &amp;forces, const std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt; &amp;ties, const std::vector&lt; <a class="el" href="structfea_1_1_equation.html">Equation</a> &gt; &amp;equations, const <a class="el" href="structfea_1_1_options.html">Options</a> &amp;options)</td></tr>
<tr class="memdesc:a995a678cf119fb20772312ccfdbec991"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solves the finite element analysis defined by 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>, boundary conditions, and prescribed nodal forces. <a href="#a995a678cf119fb20772312ccfdbec991">More...</a><br /></td></tr>
<tr class="separator:a995a678cf119fb20772312ccfdbec991"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f59a7461e95aecbe53e976d679e80c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefea.html#a7f59a7461e95aecbe53e976d679e80c7">loadBCs</a> (<a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;Kg, <a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;force_vec, const std::vector&lt; <a class="el" href="structfea_1_1_b_c.html">BC</a> &gt; &amp;BCs, unsigned int num_nodes)</td></tr>
<tr class="separator:a7f59a7461e95aecbe53e976d679e80c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a0cab5016018de58ed55a874e7fee68ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef Eigen::Matrix&lt;double, Eigen::Dynamic, 1&gt; <a class="el" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">fea::ForceVector</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Vector that stores the nodal forces, i.e. the variable \([F]\) in \([K][Q]=[F]\), where \([K]\) is the global stiffness matrix and \([Q]\) contains the nodal displacements </p>
</div>
</div>
<a class="anchor" id="ab78c368a6a71d4dd85184e0ab034bde6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef Eigen::Matrix&lt;double, Eigen::Dynamic, Eigen::Dynamic&gt; <a class="el" href="namespacefea.html#ab78c368a6a71d4dd85184e0ab034bde6">fea::GlobalStiffMatrix</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Dense global stiffness matrix </p>
</div>
</div>
<a class="anchor" id="ae6576c78eabdf80c7a1b2ab0a9046433"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef Eigen::Matrix&lt;double, 12, 12, Eigen::RowMajor&gt; <a class="el" href="namespacefea.html#ae6576c78eabdf80c7a1b2ab0a9046433">fea::LocalMatrix</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>An elemental matrix in local coordinates. Will either be the elemental stiffness matrix or the global-to-local rotation matrix </p>
</div>
</div>
<a class="anchor" id="acea7372904bb1c5f0570e9a53cf6fba9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef Eigen::Vector3d <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">fea::Node</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A node that describes a mesh. Uses Eigen's predefined Vector class for added functionality. </p>
<p>See the Eigen documentation on the Vector3d class for more options of what can be done with <code>Nodes</code>. <br />
Examples of constucting a <code>Node</code> at \((x, y, z)=(0,1,2)\): </p><div class="fragment"><div class="line"><span class="comment">// specify values on constuction</span></div>
<div class="line"><a class="code" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">fea::Node</a> n1(1.0, 2.0, 3.0);</div>
<div class="line"></div>
<div class="line"><span class="comment">// construct a Node then insert values</span></div>
<div class="line"><a class="code" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">fea::Node</a> n2;</div>
<div class="line">n2 &lt;&lt; 0.0, 1.0, 2.0;</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ab9a3b4734f69bd4a2a883d7b9bab5662"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef Eigen::SparseMatrix&lt;double&gt; <a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">fea::SparseMat</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sparse matrix that is used internally to hold the global stiffness matrix </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacefea.html#aeaca75d33e81b79c9282f3e69a238d72">fea::DOF</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience enumerator for specifying the active degree of freedom in a constraint. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72a0bfcf6fc693c952c376a1d9eb9cf03fb"></a>DISPLACEMENT_X&#160;</td><td class="fielddoc">
<p>Displacement along the global x-axis. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72ad39e7a11a71cac64252cb1fb1d94c7f9"></a>DISPLACEMENT_Y&#160;</td><td class="fielddoc">
<p>Displacement along the global y-axis. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72a83e84bbf75a8e85c73e0fd2bb935bcf1"></a>DISPLACEMENT_Z&#160;</td><td class="fielddoc">
<p>Displacement along the global z-axis. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72a5875f07a4a341f6533903a95fb7fe616"></a>ROTATION_X&#160;</td><td class="fielddoc">
<p>Rotation about the global x-axis. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72a21233443a44145b64de8926e26a32125"></a>ROTATION_Y&#160;</td><td class="fielddoc">
<p>Rotation about the global y-axis. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72adfd643a8bc8c19273cb8fb809692d97c"></a>ROTATION_Z&#160;</td><td class="fielddoc">
<p>Rotation about the global z-axis. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aeaca75d33e81b79c9282f3e69a238d72afce3a19d68579e4bffcf210a9ef03707"></a>NUM_DOFS&#160;</td><td class="fielddoc">
<p>Number of degrees of freedom per node. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ad101dfa486fc4d0bd848129ff2453139"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; std::vector&lt; double &gt; &gt; fea::computeTieForces </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>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>nodal_displacements</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the forces in the tie elements based on the nodal displacements of the FE analysis and the spring constants provided in <code>ties</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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. ">Tie</a>&gt;</code>. Vector of <code><a class="el" href="structfea_1_1_tie.html" title="Places linear springs between all degrees of freedom of 2 nodes. ">fea::Tie</a></code>'s to applied to the current analysis. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nodal_displacements</td><td><code>std::vector &lt; std::vector &lt; double &gt; &gt;</code>. The resultant nodal displacements of the analysis. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structfea_1_1_tie.html" title="Places linear springs between all degrees of freedom of 2 nodes. ">Tie</a> forces. <code>std::vector &lt; std::vector &lt; double &gt; &gt;</code> </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_ad101dfa486fc4d0bd848129ff2453139_icgraph.png" border="0" usemap="#namespacefea_ad101dfa486fc4d0bd848129ff2453139_icgraph" alt=""/></div>
<map name="namespacefea_ad101dfa486fc4d0bd848129ff2453139_icgraph" id="namespacefea_ad101dfa486fc4d0bd848129ff2453139_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="aa86bdb3a895956a13997d2d98097d42d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="structfea_1_1_b_c.html">BC</a> &gt; fea::createBCVecFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the file indicated by the "bcs" key in <code>config_doc</code> into a vector of <code><a class="el" href="structfea_1_1_b_c.html" title="A boundary condition to enforce. ">fea::BC</a></code>'s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file name containing the boundary conditions. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Boundary conditions. <code>std::vector&lt;<a class="el" href="structfea_1_1_b_c.html" title="A boundary condition to enforce. ">BC</a>&gt;</code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_aa86bdb3a895956a13997d2d98097d42d_icgraph.png" border="0" usemap="#namespacefea_aa86bdb3a895956a13997d2d98097d42d_icgraph" alt=""/></div>
<map name="namespacefea_aa86bdb3a895956a13997d2d98097d42d_icgraph" id="namespacefea_aa86bdb3a895956a13997d2d98097d42d_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ab8f4352c4c5540dbc63ee1eedb6744c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="structfea_1_1_elem.html">Elem</a> &gt; fea::createElemVecFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the files indicated by the "elems" and "props" keys in <code>config_doc</code> into a vector of <code><a class="el" href="structfea_1_1_elem.html" title="An element of the mesh. Contains the indices of the two fea::Node&#39;s that form the element as well as ...">fea::Elem</a></code>'s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file names of the csv files that contain the node number designations for each element and elemental properties. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Elements. <code>std::vector&lt;<a class="el" href="structfea_1_1_elem.html" title="An element of the mesh. Contains the indices of the two fea::Node&#39;s that form the element as well as ...">Elem</a>&gt;</code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_ab8f4352c4c5540dbc63ee1eedb6744c3_icgraph.png" border="0" usemap="#namespacefea_ab8f4352c4c5540dbc63ee1eedb6744c3_icgraph" alt=""/></div>
<map name="namespacefea_ab8f4352c4c5540dbc63ee1eedb6744c3_icgraph" id="namespacefea_ab8f4352c4c5540dbc63ee1eedb6744c3_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a231f5a0658f5b9fe97182c405a455d03"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="structfea_1_1_equation.html">Equation</a> &gt; fea::createEquationVecFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the file indicated by the "equations" key in <code>config_doc</code> into a vector of <code><a class="el" href="structfea_1_1_equation.html" title="A linear multipoint constraint. ">fea::Equation</a></code>'s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file name containing the prescribed forces. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structfea_1_1_equation.html" title="A linear multipoint constraint. ">Equation</a> constraints. <code>std::vector&lt;<a class="el" href="structfea_1_1_equation.html" title="A linear multipoint constraint. ">Equation</a>&gt;</code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a231f5a0658f5b9fe97182c405a455d03_icgraph.png" border="0" usemap="#namespacefea_a231f5a0658f5b9fe97182c405a455d03_icgraph" alt=""/></div>
<map name="namespacefea_a231f5a0658f5b9fe97182c405a455d03_icgraph" id="namespacefea_a231f5a0658f5b9fe97182c405a455d03_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a0d1c659e6bbaea42ae48b489218d7530"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="structfea_1_1_force.html">Force</a> &gt; fea::createForceVecFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the file indicated by the "forces" key in <code>config_doc</code> into a vector of <code>fea::Forces</code>'s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file name containing the prescribed forces. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Boundary conditions. <code>std::vector&lt;<a class="el" href="structfea_1_1_b_c.html" title="A boundary condition to enforce. ">BC</a>&gt;</code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a0d1c659e6bbaea42ae48b489218d7530_icgraph.png" border="0" usemap="#namespacefea_a0d1c659e6bbaea42ae48b489218d7530_icgraph" alt=""/></div>
<map name="namespacefea_a0d1c659e6bbaea42ae48b489218d7530_icgraph" id="namespacefea_a0d1c659e6bbaea42ae48b489218d7530_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="aad7c45b93603bd80a9ff05c5e5c9a77c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structfea_1_1_job.html">Job</a> fea::createJobFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates vectors of <code><a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9" title="A node that describes a mesh. Uses Eigen&#39;s predefined Vector class for added functionality. ">fea::Node</a></code>'s and <code><a class="el" href="structfea_1_1_elem.html" title="An element of the mesh. Contains the indices of the two fea::Node&#39;s that form the element as well as ...">fea::Elem</a></code>'s from the files specified in <code>config_doc</code>. A <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> is created from the node and element vectors and returned.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file name containing the nodes, elements, and properties. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><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><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>. </dd></dl>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_cgraph.png" border="0" usemap="#namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_cgraph" alt=""/></div>
<map name="namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_cgraph" id="namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_cgraph">
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_icgraph.png" border="0" usemap="#namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_icgraph" alt=""/></div>
<map name="namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_icgraph" id="namespacefea_aad7c45b93603bd80a9ff05c5e5c9a77c_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="aeb3c988a0fb1f75ea8a842e3b69f13eb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &gt; fea::createNodeVecFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the file indicated by the "nodes" key in <code>config_doc</code> into a vector of <code><a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9" title="A node that describes a mesh. Uses Eigen&#39;s predefined Vector class for added functionality. ">fea::Node</a></code>'s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file name containing the nodal coordinates. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Nodal coordinates. <code>std::vector&lt;Node&gt;</code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_aeb3c988a0fb1f75ea8a842e3b69f13eb_icgraph.png" border="0" usemap="#namespacefea_aeb3c988a0fb1f75ea8a842e3b69f13eb_icgraph" alt=""/></div>
<map name="namespacefea_aeb3c988a0fb1f75ea8a842e3b69f13eb_icgraph" id="namespacefea_aeb3c988a0fb1f75ea8a842e3b69f13eb_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="aabd98531e9fb83a92514ff834fb84ad6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structfea_1_1_options.html">Options</a> fea::createOptionsFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates an <code><a class="el" href="structfea_1_1_options.html" title="Provides a method for customizing the finite element analysis. ">fea::Options</a></code> object from the configuration document. Any options provided will override the defaults.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document containing the configuration for the current analysis. This function will look for the "options" member in <code>config_document</code> for a json object holding the user-supplied options. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Analysis options <code><a class="el" href="structfea_1_1_options.html" title="Provides a method for customizing the finite element analysis. ">fea::Options</a></code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_aabd98531e9fb83a92514ff834fb84ad6_icgraph.png" border="0" usemap="#namespacefea_aabd98531e9fb83a92514ff834fb84ad6_icgraph" alt=""/></div>
<map name="namespacefea_aabd98531e9fb83a92514ff834fb84ad6_icgraph" id="namespacefea_aabd98531e9fb83a92514ff834fb84ad6_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a2fcdf225a9bd25d73c5494d86597025c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="structfea_1_1_tie.html">Tie</a> &gt; fea::createTieVecFromJSON </td>
<td>(</td>
<td class="paramtype">const rapidjson::Document &amp;&#160;</td>
<td class="paramname"><em>config_doc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the file indicated by the "ties" key in <code>config_doc</code> into a vector of <code><a class="el" href="structfea_1_1_tie.html" title="Places linear springs between all degrees of freedom of 2 nodes. ">fea::Tie</a></code>'s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_doc</td><td><code>rapidjson::Document</code>. Document storing the file name containing the prescribed forces. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Prescribed forces. <code>std::vector&lt;<a class="el" href="structfea_1_1_force.html" title="A nodal force to enforce. ">Force</a>&gt;</code>. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a2fcdf225a9bd25d73c5494d86597025c_icgraph.png" border="0" usemap="#namespacefea_a2fcdf225a9bd25d73c5494d86597025c_icgraph" alt=""/></div>
<map name="namespacefea_a2fcdf225a9bd25d73c5494d86597025c_icgraph" id="namespacefea_a2fcdf225a9bd25d73c5494d86597025c_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a9a7fec579a34d0fed8339237f2cfe994"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::loadBCs </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"><a class="el" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">ForceVector</a> &amp;&#160;</td>
<td class="paramname"><em>force_vec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structfea_1_1_b_c.html">BC</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>BCs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>num_nodes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads the boundary conditions into the global stiffness matrix and force vector. </p>
<p>Boundary conditions are enforced via Lagrange multipliers. The reaction force due to imposing the boundary condition will be appended directly onto the returned nodal displacements in the order the boundary conditions were specified.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">Kg</td><td><code>fea::GlobalStiffnessMatrix</code>. Coefficients are modified in place to reflect Lagrange multipliers. Assumes <code>Kg</code> has the correct dimensions. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">force_vec</td><td><code><a class="el" href="namespacefea.html#a0cab5016018de58ed55a874e7fee68ed">fea::ForceVector</a></code>. Right hand side of the \([K][Q]=[F]\) equation of the FE analysis. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">BCs</td><td><code>std::vector&lt;<a class="el" href="structfea_1_1_b_c.html" title="A boundary condition to enforce. ">fea::BC</a>&gt;</code>. Vector of <code><a class="el" href="structfea_1_1_b_c.html" title="A boundary condition to enforce. ">BC</a></code>'s to apply to the current analysis. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">num_nodes</td><td><code>unsigned int</code>. The number of nodes in the current job being analyzed. Used to calculate the position to insert border coefficients associated with enforcing boundary conditions via Langrange multipliers. </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="namespacefea_a9a7fec579a34d0fed8339237f2cfe994_icgraph.png" border="0" usemap="#namespacefea_a9a7fec579a34d0fed8339237f2cfe994_icgraph" alt=""/></div>
<map name="namespacefea_a9a7fec579a34d0fed8339237f2cfe994_icgraph" id="namespacefea_a9a7fec579a34d0fed8339237f2cfe994_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a7f59a7461e95aecbe53e976d679e80c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::loadBCs </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"><a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;&#160;</td>
<td class="paramname"><em>force_vec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structfea_1_1_b_c.html">BC</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>BCs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>num_nodes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad84d1896799e4150617b01d8cce6e699"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::loadEquations </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 std::vector&lt; <a class="el" href="structfea_1_1_equation.html">Equation</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>equations</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>num_bcs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_ad84d1896799e4150617b01d8cce6e699_icgraph.png" border="0" usemap="#namespacefea_ad84d1896799e4150617b01d8cce6e699_icgraph" alt=""/></div>
<map name="namespacefea_ad84d1896799e4150617b01d8cce6e699_icgraph" id="namespacefea_ad84d1896799e4150617b01d8cce6e699_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="af9e37d32f38ace35944f1e63f4a447fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::loadForces </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacefea.html#ab9a3b4734f69bd4a2a883d7b9bab5662">SparseMat</a> &amp;&#160;</td>
<td class="paramname"><em>force_vec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structfea_1_1_force.html">Force</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>forces</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads the prescribed forces into the force vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">force_vec</td><td><code>ForceVector</code>. Right hand side of the \([K][Q]=[F]\) equation of the FE analysis. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">forces</td><td>std::vector&lt;Force&gt;. Vector of prescribed forces to apply to the current analysis. </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="namespacefea_af9e37d32f38ace35944f1e63f4a447fa_icgraph.png" border="0" usemap="#namespacefea_af9e37d32f38ace35944f1e63f4a447fa_icgraph" alt=""/></div>
<map name="namespacefea_af9e37d32f38ace35944f1e63f4a447fa_icgraph" id="namespacefea_af9e37d32f38ace35944f1e63f4a447fa_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="adb99d60a0e4eb10e55a7c52044efb6e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void fea::loadTies </td>
<td>(</td>
<td class="paramtype">std::vector&lt; Eigen::Triplet&lt; double &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>triplets</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>Loads any tie constraints into the set of triplets that will become the global stiffness matrix. </p>
<p><a class="el" href="structfea_1_1_tie.html" title="Places linear springs between all degrees of freedom of 2 nodes. ">Tie</a> constraints are enforced via linear springs between the 2 specified nodes. The <code>lmult</code> member variable is used as the spring constant for displacement degrees of freedom, e.g. 0, 1, and 2. <code>rmult</code> is used for rotational degrees of freedom, e.g. 3, 4, and 5.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">triplets</td><td><code>std::vector&lt; Eigen::Triplet&lt; double &gt; &gt;</code>. A vector of triplets that store data in the form (i, j, value) that will be become the sparse global stiffness matrix. </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 <code><a class="el" href="structfea_1_1_tie.html" title="Places linear springs between all degrees of freedom of 2 nodes. ">Tie</a></code>'s to apply to the current analysis. </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="namespacefea_adb99d60a0e4eb10e55a7c52044efb6e3_icgraph.png" border="0" usemap="#namespacefea_adb99d60a0e4eb10e55a7c52044efb6e3_icgraph" alt=""/></div>
<map name="namespacefea_adb99d60a0e4eb10e55a7c52044efb6e3_icgraph" id="namespacefea_adb99d60a0e4eb10e55a7c52044efb6e3_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a22c94233f560b36c5e782d6e73cebae3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double fea::norm </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &amp;&#160;</td>
<td class="paramname"><em>n1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9">Node</a> &amp;&#160;</td>
<td class="paramname"><em>n2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>Calculates the distance between 2 nodes. </p>
<p>Calculates the original Euclidean distance between 2 nodes in the x-y plane.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">n1</td><td><code><a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9" title="A node that describes a mesh. Uses Eigen&#39;s predefined Vector class for added functionality. ">fea::Node</a></code>. Nodal coordinates of first point. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">n2</td><td><code><a class="el" href="namespacefea.html#acea7372904bb1c5f0570e9a53cf6fba9" title="A node that describes a mesh. Uses Eigen&#39;s predefined Vector class for added functionality. ">fea::Node</a></code>. Nodal coordinates of second point.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>Distance</b> <code>double</code>. The distance between the nodes. </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a22c94233f560b36c5e782d6e73cebae3_icgraph.png" border="0" usemap="#namespacefea_a22c94233f560b36c5e782d6e73cebae3_icgraph" alt=""/></div>
<map name="namespacefea_a22c94233f560b36c5e782d6e73cebae3_icgraph" id="namespacefea_a22c94233f560b36c5e782d6e73cebae3_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a939c98c33c7d1076d1e9feed06b9b753"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::istream&amp; fea::operator&gt;&gt; </td>
<td>(</td>
<td class="paramtype">std::istream &amp;&#160;</td>
<td class="paramname"><em>ins</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>record</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Takes a line from the input stream and appends it to the record.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ins</td><td><code>std::istream</code>. The file where data is read from. </td></tr>
<tr><td class="paramname">record</td><td><code>std::vector&lt;T&gt;</code>. Vector where the data is placed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac34163f744a2b10263263c4a4d4ba7d4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::istream&amp; fea::operator&gt;&gt; </td>
<td>(</td>
<td class="paramtype">std::istream &amp;&#160;</td>
<td class="paramname"><em>ins</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::vector&lt; T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>Parses the file into a 2D vector. Each sub-vector is a line from the input file.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ins</td><td><code>std::istream</code>. The file where data is read from. Each line will become a vector in <code>data</code> </td></tr>
<tr><td class="paramname">data</td><td><code>std::vector&lt; std::vector&lt; T &gt; &gt;</code>. 2D Vector where the data is placed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a126e737b8f8a337d3fb431ba213b4735"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">rapidjson::Document fea::parseJSONConfig </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>config_filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Opens the specified json file and parses the data into a rapidjson::Document and returns the result. The config document should have key's "nodes", "elems", and "props". Optionally, there can be keys "bcs" for boundary conditions, "forces" for prescribed forces, and "ties" for and tie constraints between nodes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config_filename</td><td><code>std::string</code>. The location of the configuration json file. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Document<code>rapidjson::Document</code> </dd></dl>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a126e737b8f8a337d3fb431ba213b4735_icgraph.png" border="0" usemap="#namespacefea_a126e737b8f8a337d3fb431ba213b4735_icgraph" alt=""/></div>
<map name="namespacefea_a126e737b8f8a337d3fb431ba213b4735_icgraph" id="namespacefea_a126e737b8f8a337d3fb431ba213b4735_icgraph">
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a995a678cf119fb20772312ccfdbec991"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structfea_1_1_summary.html">Summary</a> fea::solve </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_b_c.html">BC</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>BCs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structfea_1_1_force.html">Force</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>forces</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>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structfea_1_1_equation.html">Equation</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>equations</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structfea_1_1_options.html">Options</a> &amp;&#160;</td>
<td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Solves the finite element analysis defined by 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>, boundary conditions, and prescribed nodal forces. </p>
<p>Solves \([K][Q]=[F]\) for \([Q]\), where \([K]\) is the global stiffness matrix, \([Q]\) contains the nodal displacements, and \([Q]\) contains the nodal forces.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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>. Contains the node, element, and property lists for the mesh. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">BCs</td><td><code>std::vector&lt;<a class="el" href="structfea_1_1_b_c.html" title="A boundary condition to enforce. ">fea::BC</a>&gt;</code>. Vector of boundary conditions to apply to the nodal degrees of freedom contained in the job. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">forces</td><td><code>std::vector&lt;<a class="el" href="structfea_1_1_force.html" title="A nodal force to enforce. ">fea::Force</a>&gt;</code>. Vector of prescribed forces to apply to the nodal degrees of freedom contained in the job. </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>
<dl class="section return"><dt>Returns</dt><dd><b><a class="el" href="structfea_1_1_summary.html" title="Contains the results of an analysis after calling fea::solve. ">Summary</a></b> <code><a class="el" href="structfea_1_1_summary.html" title="Contains the results of an analysis after calling fea::solve. ">fea::Summary</a></code>. <a class="el" href="structfea_1_1_summary.html" title="Contains the results of an analysis after calling fea::solve. ">Summary</a> containing the results of the analysis. </dd></dl>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a995a678cf119fb20772312ccfdbec991_cgraph.png" border="0" usemap="#namespacefea_a995a678cf119fb20772312ccfdbec991_cgraph" alt=""/></div>
<map name="namespacefea_a995a678cf119fb20772312ccfdbec991_cgraph" id="namespacefea_a995a678cf119fb20772312ccfdbec991_cgraph">
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespacefea_a995a678cf119fb20772312ccfdbec991_icgraph.png" border="0" usemap="#namespacefea_a995a678cf119fb20772312ccfdbec991_icgraph" alt=""/></div>
<map name="namespacefea_a995a678cf119fb20772312ccfdbec991_icgraph" id="namespacefea_a995a678cf119fb20772312ccfdbec991_icgraph">
</map>
</div>
</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Oct 3 2016 22:38:16 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.9.1
</small></address>
</body>
</html>