ITK
4.4.0
Insight Segmentation and Registration Toolkit
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
ITK
Modules
Numerics
FEM
include
itkFEMLoadBCMFC.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright Insight Software Consortium
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0.txt
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*=========================================================================*/
18
#ifndef __itkFEMLoadBCMFC_h
19
#define __itkFEMLoadBCMFC_h
20
21
#include "
itkFEMLoadBase.h
"
22
23
namespace
itk
24
{
25
namespace
fem
26
{
51
52
// forward declaratons...
53
// class Solver;
54
55
class
LoadBCMFC
:
public
Load
56
{
57
public
:
59
typedef
LoadBCMFC
Self
;
60
typedef
Load
Superclass
;
61
typedef
SmartPointer<Self>
Pointer
;
62
typedef
SmartPointer<const Self>
ConstPointer
;
63
65
itkSimpleNewMacro(
Self
);
66
68
itkTypeMacro(
LoadBCMFC
,
Load
);
69
72
virtual::itk::LightObject::Pointer
CreateAnother
(
void
)
const
;
73
80
class
MFCTerm
81
{
82
public
:
83
87
Element::ConstPointer
m_element
;
88
92
unsigned
int
dof
;
93
97
Element::Float
value
;
98
102
MFCTerm
(
Element::ConstPointer
element_,
int
dof_,
103
Element::Float
value_) :
m_element
(element_),
dof
(dof_),
value
(value_)
104
{
105
}
106
};
107
111
typedef
std::vector<MFCTerm>
LhsType
;
112
114
LoadBCMFC
() :
m_Index
(0),
m_LeftHandSide
(),
m_RightHandSide
() {}
115
125
LoadBCMFC
(
Element::ConstPointer
element,
int
dof, vnl_vector<Element::Float> val);
126
129
void
SetIndex
(
int
ind);
130
133
int
GetIndex
();
134
136
void
AddLeftHandSideTerm
(
LoadBCMFC::MFCTerm
term);
137
140
void
AddRightHandSideTerm
(
Element::Float
term);
141
143
int
GetNumberOfLeftHandSideTerms
()
const
;
144
146
int
GetNumberOfRightHandSideTerms
()
const
;
147
149
const
MFCTerm
GetLeftHandSideTerm
(
int
lhs)
const
;
150
152
Element::Float
GetRightHandSideTerm
(
int
rhs)
const
;
153
156
const
std::vector<MFCTerm> &
GetLeftHandSideArray
()
const
;
157
std::vector<MFCTerm> &
GetLeftHandSideArray
();
159
162
vnl_vector<Element::Float> &
GetRightHandSideArray
();
163
164
// friend class Solver;
165
166
protected
:
167
virtual
void
PrintSelf
(std::ostream& os,
Indent
indent)
const
;
168
169
// private: // FIXME: CrankNicolsonSolver class, which is derived from Solver
170
// class also needs access to Index.
172
int
m_Index
;
173
174
LhsType
m_LeftHandSide
;
175
182
vnl_vector<Element::Float>
m_RightHandSide
;
183
};
184
185
}
186
}
// end namespace itk::fem
187
188
#endif // #ifndef __itkFEMLoadBCMFC_h
189
Generated on Mon May 13 2013 00:49:46 for ITK by
1.8.3.1