[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] RK4 Help required
From: |
Pau Cervera Badia |
Subject: |
Re: [Help-gsl] RK4 Help required |
Date: |
Tue, 08 May 2007 11:26:20 +0200 |
User-agent: |
Thunderbird 1.5.0.10 (X11/20070403) |
Since gsl solvers solve systems of first order differential equations of
the type:
x' = f(x,t) (where the prima is the time derivative)
where x is a vector of positions, and f(x,t) is the vector of forces you
have to implement via the func that is passed via gsl_odeiv_system to
the gsl solver, you should consider making a vector x of 3 times longer
than the number of charges you have.
For instance, you can order your components in a 12-vector as,
x_0, y_0, z_0, x_1, y_1, z_1, x_2, y_2, z_2, x_3, y_3, z_3.
To help you to extract the right components, you can define the macros,
#define xindex(i) 3 * i
#define yindex(i) 3 * i + 1
#define zindex(z) 3 * i + 2
and access the position of particle i as
double x_i = sys[xindex(i)];
double y_i = sys[yindex(i)];
double z_i = sys[zindex(i)];
when needed.
Good luck,
cigdem ozkan wrote:
Hi again,
I am posting a smaller version of my question rearding rk4 since I didnt get a
reply and I am really anxious for some feedback.
I have the following fuction:
dxi/dt = k*qi*(xi-xj)/sqrt((xi-xj)^2+(yi-yj)^2+(zi-zj)^2)
where qi is the charge of the i-th particle, xi, yi, zi are the
coordinates of the i-th particle and xj, yj,zj are the coordinates of the j-th
particle.
Input for the initial values:
q[4] = { 1.0, 1.0, -1.0, 1.0 } charge
x0[4] = { 1.0, 2.3, 3.2, 4.0 } init posn x
y0[4] = { 1.0, 2.4, 3.0, 4.0 } init posn y
z0[4] = { 1.0, 2.5, 3.3, 4.2 } init posn z
QUESTION:
Since there are two values for each coordinate (i and
j), how can I write the function in an acceptable form for RK4?
I would appreciate any feedback concerning RK4.
Thanks for your time,
C.
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
Check outnew cars at Yahoo! Autos.
_______________________________________________
Help-gsl mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-gsl
--
Pau Cervera i Badia (e-mail address@hidden)
{
Departament de Física Fonamental Martí i Franqués, 1
Universitat de Barcelona Planta 3, despatx 346 bis
08028 Barcelona
tel: +34 934 039 708 Spain
"Simple things should be simple, complex things should be possible."
-- Alan Kay
return http://www.ffn.ub.es/%7Ecervera/
}