include/dynamic/object.h

Go to the documentation of this file.
00001 #ifndef OBJECT_H
00002 #define OBJECT_H
00003 
00008 #include <string>
00009 #include <stdexcept>
00010 #include <vector>
00011 #include <boost/numeric/ublas/matrix.hpp>
00012 #include <boost/numeric/ublas/vector.hpp>
00013 #include "dynamic/element.h"
00014 namespace dynamic
00015 {
00020         class Object : public Element
00021         {
00025                 static double Q(Object* p_object);
00029                 double (*m_pQ)(Object*);
00030                 protected:      
00034                 boost::numeric::ublas::matrix<double> m_A;
00038                 boost::numeric::ublas::matrix<double> m_B;
00042                 boost::numeric::ublas::matrix<double> m_C;
00046                 boost::numeric::ublas::matrix<double> m_D;
00050                 boost::numeric::ublas::vector<double> m_u;
00054                 boost::numeric::ublas::vector<double> m_x;
00058                 boost::numeric::ublas::vector<double> m_absolut_x;
00062                 boost::numeric::ublas::vector<double> m_dx;
00066                 boost::numeric::ublas::vector<double> m_absolut_dx;
00071                 static double bezier_value(double p, double a0, double a1, double a2, double a3);
00075                 virtual void set_boundary_conditions(){};
00079                 virtual void set_elements() {};
00083                 virtual double set_absolut_x(int position,double value) {return 0;};
00087                 virtual double set_absolut_dx(int position,double value) {return 0;};
00088                 public:
00090                 Object();
00092                 ~Object();
00093                 friend class System;
00094                 friend class Serial;
00095                 friend class Parallel;
00099                 static Property<double> time;
00103                 static Property<double> time_delta;
00107                 void load(double(*pQ)(Object*));
00111                 double load();
00115                 virtual void calculation_const() throw(std::runtime_error,std::invalid_argument)
00116                 {
00117                         std::cout << "Object calculation_const" << std::endl;
00118                 };
00122                 virtual void calculation() throw(std::runtime_error,std::invalid_argument){};
00127                 virtual unsigned matrix_rows();
00132                 virtual unsigned elements();
00133         };
00134 }
00135 #endif //OBJECT_H

Generated on Sun Mar 11 15:42:40 2007 for Dynamic library by  doxygen 1.4.7