EquationInterface.hpp

00001 #ifndef EQUATION_EQUATIONINTERFACE_H
00002 #define EQUATION_EQUATIONINTERFACE_H
00003 
00004 
00005 #include <fem/FemKernel.hpp>
00006 
00007 
00008 namespace imaging
00009 {
00064   template <class fem_types>
00065   class EquationInterface
00066   {
00067     
00068   public:
00070     std::size_t system_size() const;
00071     
00076     float_t stiffness_matrix(std::size_t k, std::size_t l,
00077                              std::size_t i, std::size_t j,
00078                              std::size_t integrator_node,
00079                              const FemKernel<fem_types> & kernel) const;
00080     
00085     float_t force_vector(std::size_t k,
00086                          std::size_t i,
00087                          std::size_t integrator_node,
00088                          const FemKernel<fem_types> & kernel) const;
00089   
00094     float_t stiffness_matrix_at_boundary(std::size_t k, std::size_t l,
00095                                          std::size_t i, std::size_t j,
00096                                          std::size_t integrator_node,
00097                                          const FemKernel<fem_types> & kernel) const;
00098         
00103     float_t force_vector_at_boundary(std::size_t k,
00104                                      std::size_t i,
00105                                      std::size_t integrator_node,
00106                                      const FemKernel<fem_types> & kernel) const;
00107         
00114     bool sanity_check_stiffnesss_matrix(const FemKernel<fem_types> & kernel, std::string & error_message) const { return true; }  
00115         
00122     bool sanity_check_force_vector(const FemKernel<fem_types> & kernel, std::string & error_message) const { return true; }                                                            
00123   };
00124 }
00125 
00126 #endif

Generated on Tue Feb 10 10:01:30 2009 for imaging2 by  doxygen 1.5.5