Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d5e74628f0e673bb8680aebce32b2c04 > files > 15729

itk-doc-3.12.0-1mdv2010.0.i586.rpm

<!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: itkFEMLinearSystemWrapper.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>&nbsp;&nbsp; 
<a href="modules.html" class="qindex">Groups</a>&nbsp;&nbsp;
<a href="namespaces.html" class="qindex">Namespace List</a>&nbsp;&nbsp;
<a href="hierarchy.html" class="qindex">Class Hierarchy</a>&nbsp;&nbsp;
<a href="classes.html" class="qindex">Alphabetical List</a>&nbsp;&nbsp;
<a href="annotated.html" class="qindex">Compound List</a>&nbsp;&nbsp; 
<a href="files.html" class="qindex">File
List</a>&nbsp;&nbsp; 
<a href="namespacemembers.html" class="qindex">Namespace Members</a>&nbsp;&nbsp; 
<a href="functions.html" class="qindex">Compound Members</a>&nbsp;&nbsp; 
<a href="globals.html" class="qindex">File Members</a>&nbsp;&nbsp;
<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>&nbsp;&raquo&nbsp;<a class="el" href="dir_2c33022d19e8077162952ea9ed57656d.html">Numerics</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_316e5ab5c8a9cb56a9dce1c9fc454a23.html">FEM</a>
  </div>
<div class="contents">
<h1>itkFEMLinearSystemWrapper.h</h1><a href="itkFEMLinearSystemWrapper_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 &amp; Registration Toolkit</span>
<a name="l00004"></a>00004 <span class="comment">  Module:    $RCSfile: itkFEMLinearSystemWrapper.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:55:14 $</span>
<a name="l00007"></a>00007 <span class="comment">  Version:   $Revision: 1.23 $</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 __itkFEMLinearSystemWrapper_h</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define __itkFEMLinearSystemWrapper_h </span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="itkMacro_8h.html">itkMacro.h</a>"</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="itkFEMSolution_8h.html">itkFEMSolution.h</a>"</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkFEMException_8h.html" title="Declaration of several exception classes that are used within the FEM code.">itkFEMException.h</a>"</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;vector&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;typeinfo&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="keyword">namespace </span>itk {
<a name="l00030"></a>00030 <span class="keyword">namespace </span>fem {
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 
<a name="l00051"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html">00051</a> <span class="keyword">class </span><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">LinearSystemWrapper</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution</a>
<a name="l00052"></a>00052 {
<a name="l00053"></a>00053 <span class="keyword">public</span>:
<a name="l00054"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c7c2b56a496433f83e6dd9d58cf798ce">00054</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">LinearSystemWrapper</a> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">Self</a>;
<a name="l00055"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#8447d009fbb5e9999131c25ddd63cb87">00055</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Solution</a>            <a class="code" href="classitk_1_1fem_1_1Solution.html" title="Provides functions to access the values of the solution vector.">Superclass</a>;
<a name="l00056"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#3d6bf9942c781ace883d7678b5d5d05f">00056</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">Self</a>*               <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">Pointer</a>;
<a name="l00057"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#9d6a58846f55f31d5477ce4bea7fe4e6">00057</a>   <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">Self</a>*         <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">ConstPointer</a>;
<a name="l00058"></a>00058 
<a name="l00059"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">00059</a>   <span class="keyword">typedef</span> std::vector&lt;unsigned int&gt; <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">ColumnArray</a>;
<a name="l00060"></a>00060 
<a name="l00065"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#9cd4219081d81e993812ea392e5a7660">00065</a>   <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#9cd4219081d81e993812ea392e5a7660">LinearSystemWrapper</a>() 
<a name="l00066"></a>00066     : <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1fadbb2bba1481720f1524339f6fa2ab">m_Order</a>(0), <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#2ef9099c1f299af43e5fdad00462719a">m_NumberOfMatrices</a>(1), <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c5c8ab7643ee5182c49f721656dac3d4">m_NumberOfVectors</a>(1), <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#71c98be4166a899e9105f87c680d17e5">m_NumberOfSolutions</a>(1) {}
<a name="l00067"></a>00067       <span class="comment">/* , m_PrimaryMatrixSetupFunction(0), m_PrimaryVectorSetupFunction(0), m_PrimarySolutionSetupFunction(0) {} */</span>
<a name="l00069"></a>00069 
<a name="l00074"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#bed75fffd0a2fb2bd2e8af43718139fb">00074</a>   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#bed75fffd0a2fb2bd2e8af43718139fb">~LinearSystemWrapper</a>() {};
<a name="l00075"></a>00075 
<a name="l00080"></a>00080   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#f39db7924a285f2dde8cae9f0e53644e">Clean</a>( <span class="keywordtype">void</span> );
<a name="l00081"></a>00081 
<a name="l00087"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#cc2035722b91f10649fda024b49345c9">00087</a>   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#cc2035722b91f10649fda024b49345c9">SetSystemOrder</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> N) { <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1fadbb2bba1481720f1524339f6fa2ab">m_Order</a> = N; }
<a name="l00088"></a>00088 
<a name="l00092"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#915b51b58adbb622f5ba8ef933d364e2">00092</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#915b51b58adbb622f5ba8ef933d364e2">GetSystemOrder</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1fadbb2bba1481720f1524339f6fa2ab">m_Order</a>; }
<a name="l00093"></a>00093 
<a name="l00098"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#12697eed6e5ac1c848666684d16d5437">00098</a>   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#12697eed6e5ac1c848666684d16d5437">SetNumberOfMatrices</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nMatrices) { <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#2ef9099c1f299af43e5fdad00462719a">m_NumberOfMatrices</a> = nMatrices; }
<a name="l00099"></a>00099 
<a name="l00107"></a>00107   <span class="comment">//virtual void SetMaximumNonZeroValuesInMatrix(unsigned int maxNonZeroValues) = 0;</span>
<a name="l00108"></a>00108 
<a name="l00112"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#26fd9ef381001c7e665620319049de00">00112</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#26fd9ef381001c7e665620319049de00">GetNumberOfMatrices</a>() { <span class="keywordflow">return</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#2ef9099c1f299af43e5fdad00462719a">m_NumberOfMatrices</a>; }
<a name="l00113"></a>00113 
<a name="l00118"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#042a860ee0689e52a5e08544df5a1454">00118</a>   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#042a860ee0689e52a5e08544df5a1454">SetNumberOfVectors</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nVectors) { <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c5c8ab7643ee5182c49f721656dac3d4">m_NumberOfVectors</a> = nVectors; }
<a name="l00119"></a>00119 
<a name="l00123"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#fbfe32376dabfd61f9bbe4873efab3e5">00123</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#fbfe32376dabfd61f9bbe4873efab3e5">GetNumberOfVectors</a>() { <span class="keywordflow">return</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c5c8ab7643ee5182c49f721656dac3d4">m_NumberOfVectors</a>; }
<a name="l00124"></a>00124 
<a name="l00129"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#90b7af1349c729b48639a223f6e11ad0">00129</a>   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#90b7af1349c729b48639a223f6e11ad0">SetNumberOfSolutions</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nSolutions) { <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#71c98be4166a899e9105f87c680d17e5">m_NumberOfSolutions</a> = nSolutions; }
<a name="l00130"></a>00130 
<a name="l00134"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#38b5a6e4cd69535364edb2f574b91efb">00134</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#38b5a6e4cd69535364edb2f574b91efb">GetNumberOfSolutions</a>() { <span class="keywordflow">return</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#71c98be4166a899e9105f87c680d17e5">m_NumberOfSolutions</a>; }
<a name="l00135"></a>00135 
<a name="l00143"></a>00143   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a22fcd6f93e535f39942351238334e4">InitializeMatrix</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0) = 0;
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 
<a name="l00150"></a>00150   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#95bb35f76de49b08dc5422ddfd1ede40">IsMatrixInitialized</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0) = 0;
<a name="l00151"></a>00151 
<a name="l00156"></a>00156   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#4d6b6c0b3a081d2a50e3e951490350e1">DestroyMatrix</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0) = 0;
<a name="l00157"></a>00157 
<a name="l00164"></a>00164   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#fff364c0fdbbb6a9a333813b507930c9">InitializeVector</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0) = 0;
<a name="l00165"></a>00165 
<a name="l00166"></a>00166 
<a name="l00171"></a>00171   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#8d99ada1ff75b072dc0cd7ef47a29f8d">IsVectorInitialized</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0) = 0;
<a name="l00172"></a>00172 
<a name="l00177"></a>00177   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#7c6da7729bde2cdb708f5c54bd11f648">DestroyVector</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0) = 0;
<a name="l00178"></a>00178 
<a name="l00185"></a>00185   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#83047ce877dcd38e1cd894e451282a3e">InitializeSolution</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex = 0) = 0;
<a name="l00186"></a>00186 
<a name="l00191"></a>00191   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#dea0a5218b4aac3cc7042fd2315b8311">IsSolutionInitialized</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex = 0) = 0;
<a name="l00192"></a>00192 
<a name="l00196"></a>00196   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#2f8dbfb53044d3cdf22768c2e2175135">DestroySolution</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex = 0) = 0;
<a name="l00197"></a>00197 
<a name="l00204"></a>00204   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#dde42431d86aa4901e1846360bbe6a3c">GetMatrixValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0) <span class="keyword">const</span> = 0;
<a name="l00205"></a>00205 
<a name="l00213"></a>00213   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#ec087f63bbd62aa93d3a33033108ec63">SetMatrixValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0) = 0;
<a name="l00214"></a>00214 
<a name="l00222"></a>00222   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#ee719366e528f5b935b784e2deab9fac">AddMatrixValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j, <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0) = 0;
<a name="l00223"></a>00223 
<a name="l00236"></a>00236   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#91949211ecba72afa43d6ef9d2256fc6">GetColumnsOfNonZeroMatrixElementsInRow</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> row, <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">ColumnArray</a>&amp; cols, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0 );
<a name="l00237"></a>00237 
<a name="l00243"></a>00243   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#92ce52e63feb42b7108723e499364e42">GetVectorValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0) <span class="keyword">const</span> = 0;
<a name="l00244"></a>00244 
<a name="l00251"></a>00251   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1dae89d7ec40e4a704dcab05fb1f6725">SetVectorValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0) = 0;
<a name="l00252"></a>00252 
<a name="l00259"></a>00259   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#528a028748d4cc4ce02e1288d2783bb4">AddVectorValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0) = 0;
<a name="l00260"></a>00260 
<a name="l00268"></a>00268   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#88320cdc52c91409c1b8914fa174c852">SetSolutionValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex = 0) = 0;
<a name="l00269"></a>00269 
<a name="l00277"></a>00277   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#47d8b397356172e5521d7c25cdeb10f3">AddSolutionValue</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex = 0) = 0;
<a name="l00278"></a>00278 
<a name="l00286"></a>00286   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#d42ecb653458ce08f59c0c58ec6a8a8c">Solve</a>(<span class="keywordtype">void</span>) = 0;
<a name="l00287"></a>00287 
<a name="l00293"></a>00293   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#cbad9ec5abfb570c0bfe6d533516d36d">SwapMatrices</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex2) = 0;
<a name="l00294"></a>00294 
<a name="l00302"></a>00302   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#4670eab60682afb4250488b86077496b">CopyMatrix</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex2);
<a name="l00303"></a>00303 
<a name="l00309"></a>00309   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#9bbf4dca7993b07b173a6d1342bd7c45">SwapVectors</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex2) = 0;
<a name="l00310"></a>00310 
<a name="l00316"></a>00316   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#fba0b5bed1650343bf976ffc83a919e9">SwapSolutions</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex2) = 0;
<a name="l00317"></a>00317 
<a name="l00318"></a>00318 
<a name="l00324"></a>00324   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#960e481775610f242bbd0f93ca40d865">ScaleMatrix</a>(<a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> scale, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0);
<a name="l00325"></a>00325 
<a name="l00326"></a>00326 
<a name="l00332"></a>00332   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#b0d8489209ff6ef22a9113540c248946">ScaleVector</a>(<a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> scale, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex = 0);
<a name="l00333"></a>00333 
<a name="l00334"></a>00334 
<a name="l00340"></a>00340   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#5f771f86a21adfdf4a1ba713ffef77b0">ScaleSolution</a>(<a class="code" href="classitk_1_1fem_1_1Solution.html#c95fdd34e9d556c92091685c952d5397">Float</a> scale, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex = 0);
<a name="l00341"></a>00341 
<a name="l00348"></a>00348   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#7a690e4ab13e2d4c50aa8e084631912a">MultiplyMatrixMatrix</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> resultMatrixIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> leftMatrixIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rightMatrixIndex) = 0;
<a name="l00349"></a>00349 
<a name="l00356"></a>00356   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#6ed77f3a6e4e2814d6c741b92c593391">AddMatrixMatrix</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex2);
<a name="l00357"></a>00357 
<a name="l00364"></a>00364   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#6728ef253d3ff4fde0fc62f06f83f767">AddVectorVector</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex2);
<a name="l00365"></a>00365 
<a name="l00372"></a>00372   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#6445aff500970d87023552a075d30ffd">MultiplyMatrixVector</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> resultVectorIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex);
<a name="l00373"></a>00373 
<a name="l00379"></a>00379   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#613a86bac0d0cb00e3bb8dcc3c14603a">CopySolution2Vector</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex) = 0;
<a name="l00380"></a>00380 
<a name="l00386"></a>00386   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c454bfbc0a352ecbbc954aa9cec36382">CopyVector2Solution</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> solutionIndex) = 0;
<a name="l00387"></a>00387 
<a name="l00393"></a>00393   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#23f3d9928288305b902e91e3ccb5f87e">CopyVector</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSource, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorDestination);
<a name="l00394"></a>00394 
<a name="l00401"></a>00401   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#f57f7605b3ddde20d6fa75891089e27d">OptimizeMatrixStorage</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tempMatrixIndex);
<a name="l00402"></a>00402 
<a name="l00408"></a>00408   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#0ed4155f4d4a129aeae94d514701585f">ReverseCuthillMckeeOrdering</a>(<a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">ColumnArray</a>&amp; newNumbering, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0);
<a name="l00409"></a>00409 
<a name="l00410"></a>00410 <span class="keyword">protected</span>:
<a name="l00411"></a>00411 
<a name="l00413"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1fadbb2bba1481720f1524339f6fa2ab">00413</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1fadbb2bba1481720f1524339f6fa2ab">m_Order</a>;
<a name="l00414"></a>00414 
<a name="l00418"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#2ef9099c1f299af43e5fdad00462719a">00418</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#2ef9099c1f299af43e5fdad00462719a">m_NumberOfMatrices</a>;
<a name="l00419"></a>00419 
<a name="l00423"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c5c8ab7643ee5182c49f721656dac3d4">00423</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#c5c8ab7643ee5182c49f721656dac3d4">m_NumberOfVectors</a>;
<a name="l00424"></a>00424 
<a name="l00428"></a><a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#71c98be4166a899e9105f87c680d17e5">00428</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#71c98be4166a899e9105f87c680d17e5">m_NumberOfSolutions</a>;
<a name="l00429"></a>00429 
<a name="l00430"></a>00430   <span class="comment">/*</span>
<a name="l00431"></a>00431 <span class="comment">   * Function used to prepare primary matrix for numerical solving </span>
<a name="l00432"></a>00432 <span class="comment">   */</span>
<a name="l00433"></a>00433   <span class="comment">//void (*m_PrimaryMatrixSetupFunction)(LinearSystemWrapper *lsw);</span>
<a name="l00434"></a>00434 
<a name="l00435"></a>00435   <span class="comment">/*</span>
<a name="l00436"></a>00436 <span class="comment">   * Function used to prepare primary vector for numerical solving </span>
<a name="l00437"></a>00437 <span class="comment">   */</span>
<a name="l00438"></a>00438   <span class="comment">/* void (*m_PrimaryVectorSetupFunction)(LinearSystemWrapper *lsw);*/</span>
<a name="l00439"></a>00439 
<a name="l00440"></a>00440   <span class="comment">/*</span>
<a name="l00441"></a>00441 <span class="comment">   * Function used to prepare primary matrix for numerical solving </span>
<a name="l00442"></a>00442 <span class="comment">   */</span>
<a name="l00443"></a>00443   <span class="comment">/* void (*m_PrimarySolutionSetupFunction)(LinearSystemWrapper *lsw); */</span>
<a name="l00444"></a>00444 
<a name="l00445"></a>00445 <span class="keyword">private</span>:
<a name="l00446"></a>00446 
<a name="l00450"></a>00450   <span class="keywordtype">void</span> CuthillMckeeOrdering(<a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">ColumnArray</a>&amp; newNumbering, <span class="keywordtype">int</span> startingRow, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0);
<a name="l00451"></a>00451 
<a name="l00452"></a>00452   <span class="keywordtype">void</span> FollowConnectionsCuthillMckeeOrdering(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rowNumber, <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">ColumnArray</a>&amp; rowDegree, <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#1a9615a35563d8cb71b54c5a05ea3afe">ColumnArray</a>&amp; newNumbering, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nextRowNumber, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> matrixIndex = 0);
<a name="l00453"></a>00453 
<a name="l00455"></a>00455   <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html#9cd4219081d81e993812ea392e5a7660">LinearSystemWrapper</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">LinearSystemWrapper</a>&amp;);
<a name="l00456"></a>00456 
<a name="l00458"></a>00458   <span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">LinearSystemWrapper</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="classitk_1_1fem_1_1LinearSystemWrapper.html" title="Defines all functions required by Solver class to allocate, assemble and solve a...">LinearSystemWrapper</a>&amp;);
<a name="l00459"></a>00459 
<a name="l00460"></a>00460 };
<a name="l00461"></a>00461 
<a name="l00462"></a><a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html">00462</a> <span class="keyword">class </span><a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html">FEMExceptionLinearSystem</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1fem_1_1FEMException.html" title="Base class for all exception&amp;#39;s that can occur within FEM classes.">FEMException</a>
<a name="l00463"></a>00463 {
<a name="l00464"></a>00464 <span class="keyword">public</span>:
<a name="l00470"></a>00470   <a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html#26ae8f7de66531fa3c73c7d38b9183ea">FEMExceptionLinearSystem</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lineNumber, std::string location, std::string moreDescription);
<a name="l00471"></a>00471 
<a name="l00473"></a><a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html#2523c4f481239349a5c28571edb43a35">00473</a>   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html#2523c4f481239349a5c28571edb43a35">~FEMExceptionLinearSystem</a>() throw() {}
<a name="l00474"></a>00474 
<a name="l00476"></a>00476   <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>(<a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html">FEMExceptionLinearSystem</a>,<a class="code" href="classitk_1_1fem_1_1FEMException.html" title="Base class for all exception&amp;#39;s that can occur within FEM classes.">FEMException</a>);
<a name="l00477"></a>00477 
<a name="l00478"></a>00478 };
<a name="l00479"></a>00479 
<a name="l00480"></a><a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystemBounds.html">00480</a> <span class="keyword">class </span><a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystemBounds.html">FEMExceptionLinearSystemBounds</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1fem_1_1FEMException.html" title="Base class for all exception&amp;#39;s that can occur within FEM classes.">FEMException</a>
<a name="l00481"></a>00481 {
<a name="l00482"></a>00482 <span class="keyword">public</span>:
<a name="l00488"></a>00488   <a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystemBounds.html#65811ef2447f2cbccf223525d9d01671">FEMExceptionLinearSystemBounds</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lineNumber, std::string location, std::string moreDescription, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index1);
<a name="l00489"></a>00489 
<a name="l00494"></a>00494   <a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystemBounds.html#65811ef2447f2cbccf223525d9d01671">FEMExceptionLinearSystemBounds</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lineNumber, std::string location, std::string moreDescription, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index2);
<a name="l00495"></a>00495 
<a name="l00497"></a><a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystemBounds.html#a1d912f9ac6bdd61292707b9ff8ed136">00497</a>   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystemBounds.html#a1d912f9ac6bdd61292707b9ff8ed136">~FEMExceptionLinearSystemBounds</a>() throw() {}
<a name="l00498"></a>00498 
<a name="l00500"></a>00500   <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>(<a class="code" href="classitk_1_1fem_1_1FEMExceptionLinearSystem.html">FEMExceptionLinearSystem</a>,<a class="code" href="classitk_1_1fem_1_1FEMException.html" title="Base class for all exception&amp;#39;s that can occur within FEM classes.">FEMException</a>);
<a name="l00501"></a>00501 
<a name="l00502"></a>00502 };
<a name="l00503"></a>00503 
<a name="l00504"></a>00504 }} <span class="comment">// end namespace itk::fem</span>
<a name="l00505"></a>00505 
<a name="l00506"></a>00506 <span class="preprocessor">#endif // #ifndef __itkFEMLinearSystemWrapper_h</span>
<a name="l00507"></a>00507 <span class="preprocessor"></span>
</pre></div></div>
<hr><address><small>
Generated at Thu May 7 22:41:57 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>,
 &copy;&nbsp;1997-2000</small></address>
</body>
</html>