00001 #ifndef OPENTISSUE_DYNAMICS_MBD_INTERFACES_MBD_NCP_SOLVER_INTERFACE_H 00002 #define OPENTISSUE_DYNAMICS_MBD_INTERFACES_MBD_NCP_SOLVER_INTERFACE_H 00003 // 00004 // OpenTissue Template Library 00005 // - A generic toolbox for physics-based modeling and simulation. 00006 // Copyright (C) 2008 Department of Computer Science, University of Copenhagen. 00007 // 00008 // OTTL is licensed under zlib: http://opensource.org/licenses/zlib-license.php 00009 // 00010 #include <OpenTissue/configuration.h> 00011 00012 namespace OpenTissue 00013 { 00014 namespace mbd 00015 { 00016 00017 template< typename math_policy > 00018 class NCPSolverInterface 00019 { 00020 protected: 00021 00022 typedef typename math_policy::matrix_type matrix_type; 00023 typedef typename math_policy::vector_type vector_type; 00024 typedef typename math_policy::idx_vector_type idx_vector_type; 00025 00026 public: 00027 00028 NCPSolverInterface(){} 00029 00030 virtual ~NCPSolverInterface(){} 00031 00032 public: 00033 00047 virtual void run( 00048 matrix_type const & J 00049 , matrix_type const & W 00050 , vector_type const & gamma 00051 , vector_type const & b 00052 , vector_type & lo 00053 , vector_type & hi 00054 , idx_vector_type const & pi 00055 , vector_type const & mu 00056 , vector_type & x 00057 ) = 0; 00058 }; 00059 00060 } // namespace mbd 00061 } // namespace OpenTissue 00062 00063 // OPENTISSUE_DYNAMICS_MBD_INTERFACES_MBD_NCP_SOLVER_INTERFACE_H 00064 #endif