ConstBoundaryCondition.hpp
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
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef _CONSTBOUNDARYCONDITION_HPP_
00037 #define _CONSTBOUNDARYCONDITION_HPP_
00038
00039 #include "AbstractBoundaryCondition.hpp"
00040
00041 #include <boost/serialization/base_object.hpp>
00042
00046 template<unsigned SPACE_DIM>
00047 class ConstBoundaryCondition : public AbstractBoundaryCondition<SPACE_DIM>
00048 {
00049 private:
00050
00052 friend class boost::serialization::access;
00059 template<class Archive>
00060 void serialize(Archive & archive, const unsigned int version)
00061 {
00062 archive & boost::serialization::base_object<AbstractBoundaryCondition<SPACE_DIM> >(*this);
00063 }
00064
00066 double mValue;
00067
00068 public:
00069
00076 ConstBoundaryCondition(const double value);
00077
00082 double GetValue(const ChastePoint<SPACE_DIM>& rX) const;
00083 };
00084
00085 #include "SerializationExportWrapper.hpp"
00086 EXPORT_TEMPLATE_CLASS_SAME_DIMS(ConstBoundaryCondition)
00087
00088 namespace boost
00089 {
00090 namespace serialization
00091 {
00092
00093 template<class Archive, unsigned SPACE_DIM>
00094 inline void save_construct_data(
00095 Archive & ar, const ConstBoundaryCondition<SPACE_DIM> * t, const unsigned int file_version)
00096 {
00097 const ChastePoint<SPACE_DIM> p;
00098 const double value = t->GetValue(p);
00099
00100 ar & value;
00101 }
00102
00107 template<class Archive, unsigned SPACE_DIM>
00108 inline void load_construct_data(
00109 Archive & ar, ConstBoundaryCondition<SPACE_DIM> * t, const unsigned int file_version)
00110 {
00111 double value;
00112 ar & value;
00113
00114 ::new(t)ConstBoundaryCondition<SPACE_DIM>(value);
00115 }
00116 }
00117 }
00118
00119 #endif //_CONSTBOUNDARYCONDITION_HPP_