RungeKuttaImplicitIntegrator.h

00001 /****************************************************************************
00002  * Copyright 2006 Evan Drumwright
00003  * This library is distributed under the terms of the GNU General Public 
00004  * License (found in COPYING).
00005  ****************************************************************************/
00006 
00007 #ifndef _RUNGE_KUTTA_IMPLICIT_INTEGRATOR_H
00008 #define _RUNGE_KUTTA_IMPLICIT_INTEGRATOR_H
00009 
00010 #include <Physsim/VectorN.h>
00011 #include <Physsim/Integrator.h>
00012 
00013 namespace Physsim {
00014 
00016 class RungeKuttaImplicitIntegrator : public Integrator
00017 {
00018         public:
00019                 virtual void clone(BasePtr& cloned, bimap<BasePtr, BasePtr>* object_map = NULL) const;
00020                 virtual VectorN integrate(const VectorN& x, VectorN (*f)(const VectorN&, Real, void*), Real time, Real step_size, void* data);
00021                 static VectorN step(const VectorN& x, VectorN (*f)(const VectorN&, Real, void*), Real time, Real step_size, void* data, VectorN& dxdt1, VectorN& dxdt2);
00022                 virtual void load_from_xml(XMLTreeConstPtr node, std::map<std::string, BasePtr>& id_map);
00023                 virtual void save_to_xml(XMLTreePtr node, std::list<BaseConstPtr>& shared_objects) const;
00024 };
00025 }
00026 
00027 #endif
00028 

Generated on Wed Oct 24 14:54:22 2007 for Physsim by  doxygen 1.5.1