00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkFEMLoadBCMFC_h
00018 #define __itkFEMLoadBCMFC_h
00019
00020 #include "itkFEMLoadBase.h"
00021
00022 namespace itk {
00023 namespace fem {
00024
00025
00026
00027
00051
00052 class Solver;
00053
00054 class LoadBCMFC : public Load
00055 {
00056 FEM_CLASS(LoadBCMFC,Load)
00057 public:
00058
00064 class MFCTerm {
00065 public:
00069 Element::ConstPointer m_element;
00070
00074 unsigned int dof;
00075
00079 Element::Float value;
00080
00084 MFCTerm(Element::ConstPointer element_, int dof_, Element::Float value_) : m_element(element_), dof(dof_), value(value_) {}
00085
00086 };
00087
00091 typedef std::vector<MFCTerm> LhsType;
00092 LhsType lhs;
00093
00100 vnl_vector<Element::Float> rhs;
00101
00103 LoadBCMFC() {}
00104
00114 LoadBCMFC(Element::ConstPointer element, int dof, vnl_vector<Element::Float> val);
00115
00117 virtual void Read( std::istream& f, void* info );
00118
00120 virtual void Write( std::ostream& f ) const;
00121
00122
00124 int Index;
00125 friend class Solver;
00126
00127 };
00128
00129 FEM_CLASS_INIT(LoadBCMFC)
00130
00131
00132
00133
00134 }}
00135
00136 #endif // #ifndef __itkFEMLoadBCMFC_h