00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ABSTRACTFORCE_HPP_
00029 #define ABSTRACTFORCE_HPP_
00030
00031 #include <boost/serialization/access.hpp>
00032 #include <boost/serialization/is_abstract.hpp>
00033
00034 #include "AbstractTissue.hpp"
00035
00039 template<unsigned DIM>
00040 class AbstractForce
00041 {
00043 friend class boost::serialization::access;
00055 template<class Archive>
00056 void serialize(Archive & archive, const unsigned int version)
00057 {
00058 TissueConfig *p_config = TissueConfig::Instance();
00059 archive & *p_config;
00060 archive & p_config;
00061 }
00062
00063 public :
00064
00068 AbstractForce();
00069
00073 virtual ~AbstractForce();
00074
00083 virtual void AddForceContribution(std::vector<c_vector<double, DIM> >& rForces,
00084 AbstractTissue<DIM>& rTissue)=0;
00085
00086 };
00087
00088 template<unsigned DIM>
00089 AbstractForce<DIM>::AbstractForce()
00090 {
00091 }
00092
00093 template<unsigned DIM>
00094 AbstractForce<DIM>::~AbstractForce()
00095 {
00096 }
00097
00098 namespace boost
00099 {
00100 namespace serialization
00101 {
00107 template<unsigned DIM>
00108 struct is_abstract<AbstractForce<DIM> >
00109 {
00111 typedef mpl::bool_<true> type;
00113 BOOST_STATIC_CONSTANT(bool, value=true);
00114 };
00115 }
00116 }
00117
00118 #endif