<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ITK: itkFEMElementBase.h Source File</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a> » <a class="el" href="dir_2c33022d19e8077162952ea9ed57656d.html">Numerics</a> » <a class="el" href="dir_316e5ab5c8a9cb56a9dce1c9fc454a23.html">FEM</a> </div> <div class="contents"> <h1>itkFEMElementBase.h</h1><a href="itkFEMElementBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Program: Insight Segmentation & Registration Toolkit</span> <a name="l00004"></a>00004 <span class="comment"> Module: $RCSfile: itkFEMElementBase.h,v $</span> <a name="l00005"></a>00005 <span class="comment"> Language: C++</span> <a name="l00006"></a>00006 <span class="comment"> Date: $Date: 2009-01-29 21:28:16 $</span> <a name="l00007"></a>00007 <span class="comment"> Version: $Revision: 1.43 $</span> <a name="l00008"></a>00008 <span class="comment"></span> <a name="l00009"></a>00009 <span class="comment"> Copyright (c) Insight Software Consortium. All rights reserved.</span> <a name="l00010"></a>00010 <span class="comment"> See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> This software is distributed WITHOUT ANY WARRANTY; without even </span> <a name="l00013"></a>00013 <span class="comment"> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span> <a name="l00014"></a>00014 <span class="comment"> PURPOSE. See the above copyright notices for more information.</span> <a name="l00015"></a>00015 <span class="comment"></span> <a name="l00016"></a>00016 <span class="comment">=========================================================================*/</span> <a name="l00017"></a>00017 <a name="l00018"></a>00018 <span class="preprocessor">#ifndef __itkFEMElementBase_h</span> <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define __itkFEMElementBase_h</span> <a name="l00020"></a>00020 <span class="preprocessor"></span> <a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="itkFEMLightObject_8h.html">itkFEMLightObject.h</a>"</span> <a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="itkFEMPArray_8h.html">itkFEMPArray.h</a>"</span> <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkFEMMaterialBase_8h.html">itkFEMMaterialBase.h</a>"</span> <a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="itkFEMSolution_8h.html">itkFEMSolution.h</a>"</span> <a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="itkVisitorDispatcher_8h.html">itkVisitorDispatcher.h</a>"</span> <a name="l00026"></a>00026 <span class="preprocessor">#include "vnl/vnl_matrix.h"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "vnl/vnl_vector.h"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include <set></span> <a name="l00029"></a>00029 <span class="preprocessor">#include <vector></span> <a name="l00030"></a>00030 <a name="l00031"></a>00031 <span class="keyword">namespace </span>itk { <a name="l00032"></a>00032 <span class="keyword">namespace </span>fem { <a name="l00033"></a>00033 <a name="l00034"></a>00034 <span class="comment">// FIXME: Write better documentation</span> <a name="l00067"></a><a class="code" href="itkFEMElementBase_8h.html#00bf10a2b65a9e8e583d9dc045878155">00067</a> <span class="comment"></span><span class="preprocessor">#define HANDLE_ELEMENT_LOADS() \</span> <a name="l00068"></a>00068 <span class="preprocessor"></span> <a name="l00069"></a>00069 <span class="preprocessor"></span> \ <a name="l00070"></a><a class="code" href="namespaceitk_1_1fem.html#86bad4441f3e25fdfb622930406703df">00070</a> <span class="keyword">typedef</span> void (*<a class="code" href="namespaceitk_1_1fem.html#86bad4441f3e25fdfb622930406703df">LoadImplementationFunctionPointer</a>)(<a class="code" href="itkFEMMacro_8h.html#68fafcc6909430ccd70cbc4aeee0107c">ConstPointer</a>,<a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">Element::LoadPointer</a>, <a class="code" href="classvnl__vector.html">Element::VectorType</a>& ); \ <a name="l00071"></a><a class="code" href="namespaceitk_1_1fem.html#0130af4afc0b38d4b958b18fc13ad497">00071</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="namespaceitk_1_1fem.html#0130af4afc0b38d4b958b18fc13ad497">GetLoadVector</a>( <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">Element::LoadPointer</a> l, <a class="code" href="classvnl__vector.html">Element::VectorType</a>& Fe ) <span class="keyword">const</span> \ <a name="l00072"></a>00072 { <a class="code" href="classitk_1_1fem_1_1VisitorDispatcher.html#b02a2fab0b4f1415c02b27a18e2c9535">VisitorDispatcher<Self,Element::LoadType, LoadImplementationFunctionPointer>::Visit</a>(l)(<span class="keyword">this</span>,l,Fe); } <a name="l00074"></a>00074 <a name="l00075"></a><a class="code" href="classitk_1_1fem_1_1Element.html">00075</a> <span class="keyword">class </span><a class="code" href="classitk_1_1fem_1_1Element.html" title="Abstract base element class.">Element</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">FEMLightObject</a> <a name="l00076"></a>00076 { <a name="l00077"></a><a class="code" href="classitk_1_1fem_1_1Element.html#def3a5eb5ff4ae9333010402b449ae3d">00077</a> <a class="code" href="itkFEMMacro_8h.html#fa7d760fae69e20af6c94904fb3366fa" title="If defined, FEM classes will use smart pointers.">FEM_ABSTRACT_CLASS</a>(<a class="code" href="classitk_1_1fem_1_1Element.html" title="Abstract base element class.">Element</a>,<a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">FEMLightObject</a>) <a name="l00078"></a>00078 public: <a name="l00079"></a>00079 <a name="l00083"></a><a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">00083</a> typedef <span class="keywordtype">double</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a>; <a name="l00084"></a>00084 <a name="l00088"></a><a class="code" href="classitk_1_1fem_1_1Element.html#e1dcb6192dc1a2e7bf9c27b99ec56dda">00088</a> typedef <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">FEMPArray</a><<a class="code" href="classitk_1_1fem_1_1Element.html" title="Abstract base element class.">Element</a>> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">ArrayType</a>; <a name="l00089"></a>00089 <a name="l00093"></a><a class="code" href="classitk_1_1fem_1_1Element.html#3e94307f744f9109ea0877bb2c9a91bd">00093</a> typedef <a class="code" href="classvnl__matrix.html">vnl_matrix</a><Float> <a class="code" href="classvnl__matrix.html">MatrixType</a>; <a name="l00094"></a>00094 <a name="l00098"></a><a class="code" href="classitk_1_1fem_1_1Element.html#f4f2870904b16547838e767ec3634bac">00098</a> typedef <a class="code" href="classvnl__vector.html">vnl_vector</a><Float> <a class="code" href="classvnl__vector.html">VectorType</a>; <a name="l00099"></a>00099 <a name="l00111"></a><a class="code" href="classitk_1_1fem_1_1Element.html#f3950dae7012d4ef192c2cb865413a75">00111</a> typedef <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">FEMLightObject</a> <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">LoadType</a>; <a name="l00112"></a><a class="code" href="classitk_1_1fem_1_1Element.html#c5cac65ca9fbc8a91a364a94f6453b99">00112</a> typedef LoadType::<a class="code" href="classitk_1_1fem_1_1Element.html" title="Abstract base element class.">Pointer</a> <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">LoadPointer</a>; <a name="l00114"></a>00114 <a name="l00118"></a><a class="code" href="classitk_1_1fem_1_1Element.html#f253634cdb931a1d49777fae960c1812">00118</a> typedef <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1Element.html#f253634cdb931a1d49777fae960c1812">DegreeOfFreedomIDType</a>; <a name="l00119"></a>00119 <a name="l00125"></a><a class="code" href="classitk_1_1fem_1_1Element.html#6afc3a99482ee0bca98707e986233c584da2345c91b292269534144104cc76d1">00125</a> enum{ <a class="code" href="classitk_1_1fem_1_1Element.html#6afc3a99482ee0bca98707e986233c584da2345c91b292269534144104cc76d1">InvalidDegreeOfFreedomID</a> = 0xffffffff }; <a name="l00126"></a>00126 <a name="l00135"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html">00135</a> <span class="keyword">class </span><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Node</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">FEMLightObject</a> <a name="l00136"></a>00136 { <a name="l00137"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#0a1d530b847b075ff60752b5c150980c">00137</a> <a class="code" href="itkFEMMacro_8h.html#a6412b85156702b319322aa9a908209d" title="Defines typedefs for pointers to class.">FEM_CLASS</a>(<a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Node</a>,<a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">FEMLightObject</a>) <a name="l00138"></a>00138 public: <a name="l00139"></a>00139 <a name="l00143"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#852a771a16f8bfcb33a4b37b28ba267a">00143</a> typedef <span class="keywordtype">double</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#852a771a16f8bfcb33a4b37b28ba267a">Float</a>; <a name="l00144"></a>00144 <a name="l00148"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#66e4d1c7cf56568ad1c9232b8b72a13f">00148</a> typedef <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">FEMPArray</a><<a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Self</a>> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">ArrayType</a>; <a name="l00149"></a>00149 <a name="l00150"></a>00150 <a name="l00151"></a>00151 <span class="comment">/* Windows visualization */</span> <a name="l00152"></a>00152 <span class="preprocessor">#ifdef FEM_BUILD_VISUALIZATION</span> <a name="l00153"></a>00153 <span class="preprocessor"></span> <a name="l00154"></a>00154 <span class="keywordtype">void</span> Draw(CDC* pDC, <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution::ConstPointer</a> sol) <span class="keyword">const</span>; <a name="l00155"></a>00155 <a name="l00157"></a>00157 <span class="keyword">static</span> <span class="keywordtype">double</span>& DC_Scale; <a name="l00158"></a>00158 <span class="preprocessor"> #endif</span> <a name="l00159"></a>00159 <span class="preprocessor"></span> <a name="l00163"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#37276be5cff930518bd28f383cc04a04">00163</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#37276be5cff930518bd28f383cc04a04">Node</a>() {} <a name="l00164"></a>00164 <a name="l00168"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#162bc6225ce5b88d8997b1be445cd047">00168</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#37276be5cff930518bd28f383cc04a04">Node</a>(Float x, Float y) : m_coordinates(<a class="code" href="classvnl__vector.html">VectorType</a>(2)) <a name="l00169"></a>00169 { m_coordinates[0]=x; m_coordinates[1]=y; } <a name="l00170"></a>00170 <a name="l00174"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#7868a3aff0ad2383ada83aa16cd7cb09">00174</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#37276be5cff930518bd28f383cc04a04">Node</a>(Float x, Float y, Float z) : m_coordinates(<a class="code" href="classvnl__vector.html">VectorType</a>(3)) <a name="l00175"></a>00175 { m_coordinates[0]=x; m_coordinates[1]=y; m_coordinates[2]=z;} <a name="l00176"></a>00176 <a name="l00181"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#2dbb5a1596b3bb6ae500edba0d3ce810">00181</a> <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#2dbb5a1596b3bb6ae500edba0d3ce810">GetCoordinates</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span> <a name="l00182"></a>00182 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_coordinates; } <a name="l00183"></a>00183 <a name="l00187"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#777ed2be4a325ec0221db3bc233416e7">00187</a> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#777ed2be4a325ec0221db3bc233416e7">SetCoordinates</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& coords ) <a name="l00188"></a>00188 { m_coordinates=coords; } <a name="l00189"></a>00189 <a name="l00193"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#0655697a3c1d3d5f83d9a8a50131ce0f">00193</a> <a class="code" href="classitk_1_1fem_1_1Element.html#f253634cdb931a1d49777fae960c1812">DegreeOfFreedomIDType</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#0655697a3c1d3d5f83d9a8a50131ce0f">GetDegreeOfFreedom</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)<span class="keyword"> const</span> <a name="l00194"></a>00194 <span class="keyword"> </span>{ <a name="l00195"></a>00195 <span class="keywordflow">if</span>( i>=m_dof.size() ) { <span class="keywordflow">return</span> <a class="code" href="classitk_1_1fem_1_1Element.html#6afc3a99482ee0bca98707e986233c584da2345c91b292269534144104cc76d1">InvalidDegreeOfFreedomID</a>; } <a name="l00196"></a>00196 <span class="keywordflow">return</span> m_dof[i]; <a name="l00197"></a>00197 } <a name="l00199"></a>00199 <a name="l00203"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#305fa46ca6d43123203399cbe6459836">00203</a> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#305fa46ca6d43123203399cbe6459836">SetDegreeOfFreedom</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <a class="code" href="classitk_1_1fem_1_1Element.html#f253634cdb931a1d49777fae960c1812">DegreeOfFreedomIDType</a> dof)<span class="keyword"> const</span> <a name="l00204"></a>00204 <span class="keyword"> </span>{ <a name="l00205"></a>00205 <span class="keywordflow">if</span>( i>=m_dof.size() ) { m_dof.resize(i+1, <a class="code" href="classitk_1_1fem_1_1Element.html#6afc3a99482ee0bca98707e986233c584da2345c91b292269534144104cc76d1">InvalidDegreeOfFreedomID</a>); } <a name="l00206"></a>00206 m_dof[i]=dof; <a name="l00207"></a>00207 } <a name="l00209"></a>00209 <a name="l00210"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#9c3639767b64dc852fe56732ee014099">00210</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#9c3639767b64dc852fe56732ee014099">ClearDegreesOfFreedom</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span> <a name="l00211"></a>00211 <span class="keyword"> </span>{ <a name="l00212"></a>00212 m_dof.clear(); <a name="l00213"></a>00213 } <a name="l00214"></a>00214 <a name="l00215"></a>00215 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#fe5c09268ba386d741dc5210c5e23cdc">Read</a>( std::istream& f, <span class="keywordtype">void</span>* info ); <a name="l00216"></a>00216 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#6c2d09340d7cc577fb508c2301d428ef">Write</a>( std::ostream& f ) <span class="keyword">const</span>; <a name="l00217"></a>00217 <a name="l00218"></a>00218 <span class="keyword">public</span>: <a name="l00223"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#8d4eae9b6fea91f3644ae6eb32b54910">00223</a> <span class="keyword">typedef</span> std::set<Element*> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#8d4eae9b6fea91f3644ae6eb32b54910">SetOfElements</a>; <a name="l00224"></a><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#50f2afebc8a6e805b37154232f2ad2d4">00224</a> <span class="keyword">mutable</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#8d4eae9b6fea91f3644ae6eb32b54910">SetOfElements</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#50f2afebc8a6e805b37154232f2ad2d4">m_elements</a>; <a name="l00225"></a>00225 <a name="l00226"></a>00226 <span class="keyword">private</span>: <a name="l00230"></a>00230 <a class="code" href="classvnl__vector.html">VectorType</a> m_coordinates; <a name="l00231"></a>00231 <a name="l00236"></a>00236 <span class="keyword">mutable</span> std::vector<DegreeOfFreedomIDType> m_dof; <a name="l00237"></a>00237 <a name="l00238"></a>00238 }; <span class="comment">// end class Node</span> <a name="l00239"></a>00239 <a name="l00241"></a>00241 <span class="comment">/*</span> <a name="l00242"></a>00242 <span class="comment"> * Methods related to the physics of the problem.</span> <a name="l00243"></a>00243 <span class="comment"> */</span> <a name="l00244"></a>00244 <a name="l00245"></a>00245 <span class="keyword">virtual</span> <a class="code" href="classvnl__vector.html">VectorType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#c841e078a70adc370cf5e55ce17a8460">GetStrainsAtPoint</a>(<span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution</a>& sol, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index) <span class="keyword">const</span>; <a name="l00246"></a>00246 <a name="l00247"></a>00247 <span class="keyword">virtual</span> <a class="code" href="classvnl__vector.html">VectorType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#a0f9524f8edd78690e30a195bcacaa33">GetStressesAtPoint</a>(<span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& e, <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution</a>& sol, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index) <span class="keyword">const</span>; <a name="l00248"></a>00248 <a name="l00269"></a>00269 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#4881a968beddf4d40b140db786ba5534">GetStiffnessMatrix</a>( <a class="code" href="classvnl__matrix.html">MatrixType</a>& Ke ) <span class="keyword">const</span>; <a name="l00270"></a>00270 <a name="l00280"></a>00280 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a> <a class="code" href="classitk_1_1fem_1_1Element.html#e330eb73daa8cdf480f8ff821aa314d3">GetElementDeformationEnergy</a>( <a class="code" href="classvnl__matrix.html">MatrixType</a>& LocalSolution ) <span class="keyword">const</span>; <a name="l00281"></a>00281 <a name="l00293"></a>00293 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#2f3d6937c4bd6337cd904c9c9625305a">GetMassMatrix</a>( <a class="code" href="classvnl__matrix.html">MatrixType</a>& Me ) <span class="keyword">const</span>; <a name="l00294"></a>00294 <a name="l00306"></a>00306 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#77d46d92848f2a23ca8255e6b8559ccd">GetLandmarkContributionMatrix</a>(<span class="keywordtype">float</span> eta, <a class="code" href="classvnl__matrix.html">MatrixType</a>& Le) <span class="keyword">const</span>; <a name="l00307"></a>00307 <a name="l00337"></a>00337 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c002b8a7cabf62d6915c78e05a89bf30">GetLoadVector</a>( <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">LoadPointer</a> l, <a class="code" href="classvnl__vector.html">VectorType</a>& Fe ) <span class="keyword">const</span> = 0; <a name="l00338"></a>00338 <a name="l00346"></a>00346 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#ac2e000db0697eeea560381058fd4e66">GetStrainDisplacementMatrix</a>( <a class="code" href="classvnl__matrix.html">MatrixType</a>& B, <span class="keyword">const</span> <a class="code" href="classvnl__matrix.html">MatrixType</a>& shapeDgl ) <span class="keyword">const</span> = 0; <a name="l00347"></a>00347 <a name="l00353"></a>00353 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#4e266b8bc3bee54f6b0b940a94631523">GetMaterialMatrix</a>( <a class="code" href="classvnl__matrix.html">MatrixType</a>& D ) <span class="keyword">const</span> = 0; <a name="l00354"></a>00354 <a name="l00366"></a>00366 <span class="keyword">virtual</span> <a class="code" href="classvnl__vector.html">VectorType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#3d281d56b2053c95d8bb6783d0f27d5b">InterpolateSolution</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution</a>& sol , <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex=0 ) <span class="keyword">const</span>; <a name="l00367"></a>00367 <a name="l00381"></a>00381 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a> <a class="code" href="classitk_1_1fem_1_1Element.html#63533da6d5e799f5235591204b9628f3">InterpolateSolutionN</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution</a>& sol, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> f , <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex=0 ) <span class="keyword">const</span>; <a name="l00382"></a>00382 <a name="l00389"></a><a class="code" href="classitk_1_1fem_1_1Element.html#a90642191e633e17ed707ff26fe72fb2">00389</a> <a class="code" href="classitk_1_1fem_1_1Element.html#f253634cdb931a1d49777fae960c1812">DegreeOfFreedomIDType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#a90642191e633e17ed707ff26fe72fb2">GetDegreeOfFreedom</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> local_dof )<span class="keyword"> const</span> <a name="l00390"></a>00390 <span class="keyword"> </span>{ <a name="l00391"></a>00391 <span class="keywordflow">if</span>(local_dof>this-><a class="code" href="classitk_1_1fem_1_1Element.html#b3199f871a48d5df67247c40182da482">GetNumberOfDegreesOfFreedom</a>()) { <span class="keywordflow">return</span> <a class="code" href="classitk_1_1fem_1_1Element.html#6afc3a99482ee0bca98707e986233c584da2345c91b292269534144104cc76d1">InvalidDegreeOfFreedomID</a>; } <a name="l00392"></a>00392 <span class="keywordflow">return</span> this-><a class="code" href="classitk_1_1fem_1_1Element.html#3df768beea4e1d0c669fc7203350a8ba">GetNode</a>(local_dof/this-><a class="code" href="classitk_1_1fem_1_1Element.html#b45acf8dbc7b93a0582451b6f4decc20">GetNumberOfDegreesOfFreedomPerNode</a>())-><a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#0655697a3c1d3d5f83d9a8a50131ce0f">GetDegreeOfFreedom</a>(local_dof%this-><a class="code" href="classitk_1_1fem_1_1Element.html#b45acf8dbc7b93a0582451b6f4decc20">GetNumberOfDegreesOfFreedomPerNode</a>()); <a name="l00393"></a>00393 } <a name="l00395"></a>00395 <a name="l00412"></a><a class="code" href="classitk_1_1fem_1_1Element.html#30b5b78239ab763e9765bab477f5043b">00412</a> <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">Material::ConstPointer</a> <a class="code" href="classitk_1_1fem_1_1Element.html#30b5b78239ab763e9765bab477f5043b">GetMaterial</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; } <a name="l00413"></a>00413 <a name="l00422"></a><a class="code" href="classitk_1_1fem_1_1Element.html#154bf920598cf4e72d9316230bec00a3">00422</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#154bf920598cf4e72d9316230bec00a3">SetMaterial</a>(<a class="code" href="classitk_1_1fem_1_1FEMLightObject.html" title="Base class for all classes that define the FEM system.">Material::ConstPointer</a>) {} <span class="comment">// FIXME: maybe we should throw an exception instead</span> <a name="l00423"></a>00423 <a name="l00425"></a>00425 <a name="l00451"></a>00451 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#237a942ff6fc96724817b3ba0d401bce">GetIntegrationPointAndWeight</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <a class="code" href="classitk_1_1fem_1_1Element.html#f4f2870904b16547838e767ec3634bac">VectorType</a>& pt, <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a>& w, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> order=0 ) <span class="keyword">const</span> = 0; <a name="l00452"></a>00452 <a name="l00463"></a>00463 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1Element.html#84f91e962f1cddd07778d98058658cac">GetNumberOfIntegrationPoints</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> order=0 ) <span class="keyword">const</span> = 0; <a name="l00464"></a>00464 <a name="l00473"></a><a class="code" href="classitk_1_1fem_1_1Element.html#fade5013fc0bb781d54dda506e0b8be83ecf2edb1b826317101a6f00593a2fe8">00473</a> <span class="keyword">enum</span> { <a class="code" href="classitk_1_1fem_1_1Element.html#fade5013fc0bb781d54dda506e0b8be83ecf2edb1b826317101a6f00593a2fe8">gaussMaxOrder</a>=10 }; <a name="l00474"></a>00474 <a name="l00486"></a><a class="code" href="classitk_1_1fem_1_1Element.html#0d9b80b7bb30803860a061edca1622ee">00486</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a> <a class="code" href="classitk_1_1fem_1_1Element.html#0d9b80b7bb30803860a061edca1622ee">gaussPoint</a>[<a class="code" href="classitk_1_1fem_1_1Element.html#fade5013fc0bb781d54dda506e0b8be83ecf2edb1b826317101a6f00593a2fe8">gaussMaxOrder</a>+1][<a class="code" href="classitk_1_1fem_1_1Element.html#fade5013fc0bb781d54dda506e0b8be83ecf2edb1b826317101a6f00593a2fe8">gaussMaxOrder</a>]; <a name="l00487"></a>00487 <a name="l00493"></a><a class="code" href="classitk_1_1fem_1_1Element.html#bafb6342444702c1e8af11e9f3003d37">00493</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a> <a class="code" href="classitk_1_1fem_1_1Element.html#bafb6342444702c1e8af11e9f3003d37">gaussWeight</a>[<a class="code" href="classitk_1_1fem_1_1Element.html#fade5013fc0bb781d54dda506e0b8be83ecf2edb1b826317101a6f00593a2fe8">gaussMaxOrder</a>+1][<a class="code" href="classitk_1_1fem_1_1Element.html#fade5013fc0bb781d54dda506e0b8be83ecf2edb1b826317101a6f00593a2fe8">gaussMaxOrder</a>]; <a name="l00494"></a>00494 <a name="l00495"></a>00495 <a name="l00497"></a>00497 <span class="comment">/*</span> <a name="l00498"></a>00498 <span class="comment"> * Methods related to the geometry of an element</span> <a name="l00499"></a>00499 <span class="comment"> */</span> <a name="l00500"></a>00500 <a name="l00505"></a><a class="code" href="classitk_1_1fem_1_1Element.html#6b8eae2c90cd64392d45ea04b3bfbc32">00505</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Node::ConstPointer</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">NodeIDType</a>; <a name="l00506"></a>00506 <a name="l00510"></a>00510 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1Element.html#a149d5efdebe193798e310898cd0196f">GetNumberOfNodes</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span> = 0; <a name="l00511"></a>00511 <a name="l00515"></a>00515 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">NodeIDType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#3df768beea4e1d0c669fc7203350a8ba">GetNode</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n) <span class="keyword">const</span> = 0; <a name="l00516"></a>00516 <a name="l00520"></a>00520 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#2992fd69482c2c720bd67e54d56c4052">SetNode</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">NodeIDType</a> node) = 0; <a name="l00521"></a>00521 <a name="l00527"></a>00527 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& <a class="code" href="classitk_1_1fem_1_1Element.html#cd805333750c8f7aaf73443b7831270f">GetNodeCoordinates</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n ) <span class="keyword">const</span> = 0; <a name="l00528"></a>00528 <a name="l00534"></a>00534 <span class="keyword">virtual</span> <a class="code" href="classvnl__vector.html">VectorType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#c2c183e84cf8e5a8105cf5363958bbce">GetGlobalFromLocalCoordinates</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt ) <span class="keyword">const</span>; <a name="l00535"></a>00535 <a name="l00542"></a>00542 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c0624c4e74ba0d563129e8fb4c1b8a90">GetLocalFromGlobalCoordinates</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& globalPt , <a class="code" href="classvnl__vector.html">VectorType</a>& localPt ) <span class="keyword">const</span> = 0; <a name="l00543"></a>00543 <a name="l00549"></a>00549 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1Element.html#94bf329464e1fce295b6838f5033c65b">GetNumberOfSpatialDimensions</a>() <span class="keyword">const</span> = 0; <a name="l00550"></a>00550 <a name="l00558"></a>00558 <span class="keyword">virtual</span> <a class="code" href="classvnl__vector.html">VectorType</a> <a class="code" href="classitk_1_1fem_1_1Element.html#a7b70476cd08c4fd56852599616b4675">ShapeFunctions</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt ) <span class="keyword">const</span> = 0; <a name="l00559"></a>00559 <a name="l00575"></a>00575 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#5250743b718dd40dc9dc771418cb96cc">ShapeFunctionDerivatives</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <a class="code" href="classvnl__matrix.html">MatrixType</a>& shapeD ) <span class="keyword">const</span> = 0; <a name="l00576"></a>00576 <a name="l00596"></a>00596 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#5d1a3501ec5bbf7b05cb5b68a047c64c">ShapeFunctionGlobalDerivatives</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <a class="code" href="classvnl__matrix.html">MatrixType</a>& shapeDgl, <span class="keyword">const</span> <a class="code" href="classvnl__matrix.html">MatrixType</a>* pJ=0, <span class="keyword">const</span> <a class="code" href="classvnl__matrix.html">MatrixType</a>* pshapeD=0 ) <span class="keyword">const</span>; <a name="l00597"></a>00597 <a name="l00619"></a>00619 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#e28d3cde35dd27be62880bfb4fa6a67a">Jacobian</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <a class="code" href="classvnl__matrix.html">MatrixType</a>& J, <span class="keyword">const</span> <a class="code" href="classvnl__matrix.html">MatrixType</a>* pshapeD = 0 ) <span class="keyword">const</span>; <a name="l00620"></a>00620 <a name="l00630"></a>00630 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1Element.html#c55f879c15daa302723012b7f9d21b94">Float</a> <a class="code" href="classitk_1_1fem_1_1Element.html#6486f1c955e238628471d669d0c75357">JacobianDeterminant</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <span class="keyword">const</span> <a class="code" href="classvnl__matrix.html">MatrixType</a>* pJ = 0 ) <span class="keyword">const</span>; <a name="l00631"></a>00631 <a name="l00643"></a>00643 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1Element.html#f6f4f8802a0165627bef81c6bb3e9d76">JacobianInverse</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">VectorType</a>& pt, <a class="code" href="classvnl__matrix.html">MatrixType</a>& invJ, <span class="keyword">const</span> <a class="code" href="classvnl__matrix.html">MatrixType</a>* pJ = 0 ) <span class="keyword">const</span>; <a name="l00644"></a>00644 <a name="l00650"></a><a class="code" href="classitk_1_1fem_1_1Element.html#b3199f871a48d5df67247c40182da482">00650</a> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1Element.html#b3199f871a48d5df67247c40182da482">GetNumberOfDegreesOfFreedom</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span> <a name="l00651"></a>00651 <span class="keyword"> </span>{ <a name="l00652"></a>00652 <span class="keywordflow">return</span> this-><a class="code" href="classitk_1_1fem_1_1Element.html#a149d5efdebe193798e310898cd0196f">GetNumberOfNodes</a>() * this-><a class="code" href="classitk_1_1fem_1_1Element.html#b45acf8dbc7b93a0582451b6f4decc20">GetNumberOfDegreesOfFreedomPerNode</a>(); <a name="l00653"></a>00653 } <a name="l00654"></a>00654 <a name="l00662"></a>00662 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1Element.html#b45acf8dbc7b93a0582451b6f4decc20">GetNumberOfDegreesOfFreedomPerNode</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span> = 0; <a name="l00663"></a>00663 <a name="l00665"></a>00665 <a name="l00669"></a>00669 <span class="preprocessor">#ifdef FEM_BUILD_VISUALIZATION</span> <a name="l00670"></a>00670 <span class="preprocessor"></span> <a name="l00673"></a>00673 <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(CDC* pDC, <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution::ConstPointer</a> sol)<span class="keyword"> const </span>{} <a name="l00674"></a>00674 <a name="l00676"></a>00676 <span class="keyword">static</span> <span class="keywordtype">double</span> DC_Scale; <a name="l00677"></a>00677 <span class="preprocessor">#endif</span> <a name="l00678"></a>00678 <span class="preprocessor"></span> <a name="l00679"></a>00679 }; <a name="l00680"></a>00680 <a name="l00681"></a>00681 <span class="comment">// Make sure that Element::Node class is registered with the object factory.</span> <a name="l00682"></a>00682 <span class="keyword">static</span> INITClass <a class="code" href="namespaceitk_1_1fem.html#34f4fe77188a7f5d92bc460fe2a6c44f">Initializer_ElementNode</a>(<a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html#b94d08632a74eecdcf20ca4693957507">Element::Node::CLID</a>()); <a name="l00683"></a>00683 <a name="l00684"></a>00684 <span class="comment">// Alias for Element::Node class</span> <a name="l00685"></a><a class="code" href="namespaceitk_1_1fem.html#dab87725f8cf17989bd79741501c18fa">00685</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Element::Node</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Node</a>; <a name="l00686"></a>00686 <a name="l00698"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html">00698</a> <span class="keyword">class </span><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html" title="Helper class for storing additional information that is required when reading FEM...">ReadInfoType</a> <a name="l00699"></a>00699 { <a name="l00700"></a>00700 <span class="keyword">public</span>: <a name="l00701"></a>00701 <a name="l00702"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#4a656a6914cc51a57f15a233d6ad5ea0">00702</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">Node::ArrayType::ConstPointer</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">NodeArrayPointer</a>; <a name="l00703"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#f7232eed0943209ba916104621be47d0">00703</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">Element::ArrayType::ConstPointer</a> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">ElementArrayPointer</a>; <a name="l00704"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#0e73dc55f242342c9128660adafc7e4c">00704</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">Material::ArrayType::ConstPointer</a> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">MaterialArrayPointer</a>; <a name="l00705"></a>00705 <a name="l00707"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#a212dd17a21590da3eb6b1c6ed3b6e9c">00707</a> <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">NodeArrayPointer</a> <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#a212dd17a21590da3eb6b1c6ed3b6e9c">m_node</a>; <a name="l00708"></a>00708 <a name="l00710"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#ee4d90484fa35b937dc3418d90f64a02">00710</a> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">ElementArrayPointer</a> <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#ee4d90484fa35b937dc3418d90f64a02">m_el</a>; <a name="l00711"></a>00711 <a name="l00713"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#7c1931796681239b957e52c6531e372c">00713</a> <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">MaterialArrayPointer</a> <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#7c1931796681239b957e52c6531e372c">m_mat</a>; <a name="l00714"></a>00714 <a name="l00716"></a><a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#13091754f0f769dc8c5bbb3197f33a5d">00716</a> <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#13091754f0f769dc8c5bbb3197f33a5d">ReadInfoType</a>( <a class="code" href="classitk_1_1fem_1_1Element_1_1Node.html" title="Class that stores information required to define a node.">NodeArrayPointer</a> node_, <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">ElementArrayPointer</a> el_, <a class="code" href="classitk_1_1fem_1_1FEMPArray.html" title="Array for FEMP objects.">MaterialArrayPointer</a> mat_) : <a name="l00717"></a>00717 <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#a212dd17a21590da3eb6b1c6ed3b6e9c">m_node</a>(node_), <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#ee4d90484fa35b937dc3418d90f64a02">m_el</a>(el_), <a class="code" href="classitk_1_1fem_1_1ReadInfoType.html#7c1931796681239b957e52c6531e372c">m_mat</a>(mat_) {} <a name="l00718"></a>00718 }; <a name="l00720"></a>00720 <a name="l00721"></a>00721 }} <span class="comment">// end namespace itk::fem</span> <a name="l00722"></a>00722 <a name="l00723"></a>00723 <span class="preprocessor">#endif // #ifndef __itkFEMElementBase_h</span> <a name="l00724"></a>00724 <span class="preprocessor"></span> </pre></div></div> <hr><address><small> Generated at Thu May 7 22:41:26 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>