|
fisher_reaction_diffusion.xmds
Script source: fisher_reaction_diffusion.xmds.gz
<?xml version="1.0"?>
<simulation>
<!-- $Id: fisher_reaction_diffusion_body.part 999 2004-08-03 05:42:47Z cochrane $ -->
<!-- Copyright (C) 2000-2004 -->
<!-- -->
<!-- Code contributed by Greg Collecutt, Joseph Hope and Paul Cochrane -->
<!-- -->
<!-- This file is part of xmds. -->
<!-- -->
<!-- This program is free software; you can redistribute it and/or -->
<!-- modify it under the terms of the GNU General Public License -->
<!-- as published by the Free Software Foundation; either version 2 -->
<!-- of the License, or (at your option) any later version. -->
<!-- -->
<!-- This program is distributed in the hope that it will be useful, -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!-- GNU General Public License for more details. -->
<!-- -->
<!-- You should have received a copy of the GNU General Public License -->
<!-- along with this program; if not, write to the Free Software -->
<!-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, -->
<!-- MA 02111-1307, USA. -->
<name> fisher_reaction_diffusion </name> <!-- the name of the simulation -->
<author> Paul Cochrane</author> <!-- the author of the simulation -->
<description>
<!-- a description of what the simulation is supposed to do -->
Example simulation of the reaction-diffusion equation of Fisher (1937).
This equation can be interpreted as describing the frequency of a
focal allele as a function of one-dimensional space in a biallelic
diploid population of constant size.
This simulation is adapted from equation 1 of "The diffusive
spread of alleles in heterogeneous populations", G T Skalski,
Evolution, 58 (3), 470-478 (2004). Thanks to John Novembre at
UC Berkeley for pointing out this example.
</description>
<!-- Global system parameters and functionality -->
<prop_dim> t </prop_dim> <!-- name of main propagation dim -->
<error_check> yes </error_check> <!-- defaults to yes -->
<use_wisdom> yes </use_wisdom> <!-- defaults to no -->
<benchmark> yes </benchmark> <!-- defaults to no -->
<use_prefs> yes </use_prefs> <!-- defaults to yes -->
<!-- Global variables for the simulation -->
<globals>
<![CDATA[
// these numbers are just guesses, they are not related to the
// paper the equations are adapted from.
const double sigma0 = 0.01; // variance of population position
const double mu0 = 0.0; // mean position of population
const double D = 0.01; // diffusion coefficient
const double m = 0.1; // selection coefficient
]]>
</globals>
<!-- Field to be integrated over -->
<field>
<name> main </name>
<dimensions> x </dimensions> <!-- transverse dims -->
<lattice> 1024 </lattice> <!-- no. of points for each dim -->
<domains> (-1,1) </domains> <!-- domain of each dimension -->
<samples> 1 </samples> <!-- sample 1st point of dim? -->
<vector>
<name> main </name>
<type> complex </type> <!-- data type of vector -->
<components> P </components> <!-- names of components -->
<fourier_space> no </fourier_space> <!-- defined in k-space? -->
<![CDATA[
// be simple and use a Gaussian initial condition
P = rcomplex(exp(-(x - mu0)*(x - mu0)/(2.0*sigma0*sigma0))/(sigma0*sqrt(2.0*M_PI)),0.0);
]]>
</vector>
</field>
<!-- The sequence of integrations to perform -->
<sequence>
<integrate>
<algorithm> RK4IP </algorithm> <!-- RK4EX, RK4IP, SIEX, SIIP -->
<interval> 1 </interval> <!-- how far in main dim? -->
<lattice> 1000 </lattice> <!-- no. points in main dim -->
<samples> 100 </samples> <!-- no. pts in output moment group of main dim -->
<k_operators>
<constant> yes </constant> <!-- yes/no -->
<operator_names> L </operator_names>
<![CDATA[
L = -D*kx*kx;
]]>
</k_operators>
<![CDATA[
dP_dt = L[P] + m*P*(1.0 - P);
]]>
</integrate>
</sequence>
<!-- The output to generate -->
<output format="ascii">
<group>
<sampling>
<fourier_space> no </fourier_space> <!-- sample in k-space? -->
<lattice> 1024 </lattice> <!-- no. points to sample -->
<moments> POut </moments> <!-- names of moments -->
<![CDATA[
POut = P;
]]>
</sampling>
</group>
</output>
</simulation>
Generated by GNU enscript 1.6.3.
|