00001 /*=========================================================================== 00002 NetEvo Foundation Library 00003 Copyright (C) 2009, 2010 Thomas E. Gorochowski <tgorochowski@me.com> 00004 Bristol Centre for Complexity Sciences, University of Bristol, Bristol, UK 00005 ---------------------------------------------------------------------------- 00006 NetEvo is a computing framework designed to allow researchers to investigate 00007 evolutionary aspects of dynamical complex networks. By providing tools to 00008 easily integrate each of these factors in a coherent way, it is hoped a 00009 greater understanding can be gained of key attributes and features displayed 00010 by complex systems. 00011 00012 NetEvo is open-source software released under the Open Source Initiative 00013 (OSI) approved Non-Profit Open Software License ("Non-Profit OSL") 3.0. 00014 Detailed information about this licence can be found in the COPYING file 00015 included as part of the source distribution. 00016 00017 This library is distributed in the hope that it will be useful, but 00018 WITHOUT ANY WARRANTY; without even the implied warranty of 00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 ============================================================================*/ 00029 #ifndef NE_SIM_GSLODE_H 00030 #define NE_SIM_GSLODE_H 00031 00032 00033 #include "ne_std.h" 00034 #include "ne_sys.h" 00035 #include "ne_dyn_vec.h" 00036 #include <gsl/gsl_odeiv.h> 00037 00039 typedef struct { 00040 double length; 00041 const gsl_odeiv_step_type *step; 00042 double initStep; 00043 double minStep; 00044 int fixedStep; 00045 double eps_abs; 00046 double eps_rel; 00047 } ne_sim_gslode_params_t; 00048 00049 00051 ne_sim_gslode_params_t * ne_sim_gslode_params_alloc (const gsl_odeiv_step_type *step, 00052 double eps_abs, double eps_rel, 00053 double length, ne_bool_t fixedStep, 00054 double initStep, double minStep); 00055 00057 void ne_sim_gslode_params_free (ne_sim_gslode_params_t *params); 00058 00060 ne_dyn_vec_t * ne_sim_gslode (ne_sys_t *sys, void *params, double *iy, FILE *file); 00061 00062 /* Function to calculate the dydt values for nodes and edges of continuous time simulator. */ 00063 int ne_sim_gslode_sys_fn (double t, const double y[], double dydt[], void *params); 00064 00065 00066 #endif /* NE_SIM_GSLODE_H */