- Timestamp:
- 09/08/15 01:03:24 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
experiments/frams/foraminifera/data/scripts/foraminifera.inc
r422 r430 5 5 { 6 6 colors = ["1.0,1.0,0.0","1.0,0.5,0.0"]; 7 chambers = [ [" //0\np:sh=1,",8 " p:0.98089325428009, 0.00591040402650833, 0.00389722990803421,",9 " p:1.90962779521942, -0.256769120693207, -0.16194811463356,",10 " p:2.63965249061584, -0.727959632873535, -0.609036147594452,",11 " p:3.17575979232788, -1.34843015670776, -1.14828503131866,",12 " p:3.55273032188416, -2.22369408607483, -1.3917418718338,",13 " p:3.64916682243347, -3.11888360977173, -1.01666414737701,",14 " p:3.50461649894714, -3.84039807319641, -0.377427101135254,",15 " p:3.15921688079834, -4.50001525878906, 0.261153399944305,",16 " p:2.51528453826904, -5.16421365737915, 0.59241509437561,"],17 [" //0\np:sh=1,",18 " p:1.08020961284637, -0.0597195439040661, -0.0393781512975693,",19 " p:1.08020961284637, -0.0597195439040661, -0.0393781512975693,",20 " p:0.615013539791107, 0.778662621974945, 0.535521030426025,",21 " p:0.488581955432892, 0.826426684856415, -0.381044268608093,",22 " p:0.732419908046722, -0.0084995785728097, -1.02214300632477,",23 " p:1.35288727283478, 0.875738024711609, -1.03719782829285,",24 " p:0.342692613601685, 0.938660383224487, -1.45657968521118,",25 " p:1.0958571434021, 0.316927701234818, -1.813929438591,",26 " p:0.903768002986908, 1.11856341362, -2.53161096572876,",27 " p:0.21014116704464, 0.295340299606323, -2.45328187942505,"] ];7 chambers = [ ["0.0,0.0,0.0,", //longitudal 8 "0.98089325428009, 0.00591040402650833, 0.00389722990803421,", 9 "1.90962779521942, -0.256769120693207, -0.16194811463356,", 10 "2.63965249061584, -0.727959632873535, -0.609036147594452,", 11 "3.17575979232788, -1.34843015670776, -1.14828503131866,", 12 "3.55273032188416, -2.22369408607483, -1.3917418718338,", 13 "3.64916682243347, -3.11888360977173, -1.01666414737701,", 14 "3.50461649894714, -3.84039807319641, -0.377427101135254,", 15 "3.15921688079834, -4.50001525878906, 0.261153399944305,", 16 "2.51528453826904, -5.16421365737915, 0.59241509437561,"], 17 ["0.0,0.0,0.0,", //coiled 18 "1.08020961284637, -0.0597195439040661, -0.0393781512975693,", 19 "1.08020961284637, -0.0597195439040661, -0.0393781512975693,", 20 "0.615013539791107, 0.778662621974945, 0.535521030426025,", 21 "0.488581955432892, 0.826426684856415, -0.381044268608093,", 22 "0.732419908046722, -0.0084995785728097, -1.02214300632477,", 23 "1.35288727283478, 0.875738024711609, -1.03719782829285,", 24 "0.342692613601685, 0.938660383224487, -1.45657968521118,", 25 "1.0958571434021, 0.316927701234818, -1.813929438591,", 26 "0.903768002986908, 1.11856341362, -2.53161096572876,", 27 "0.21014116704464, 0.295340299606323, -2.45328187942505,"] ]; 28 28 } 29 29 … … 31 31 { 32 32 var rad = getProperty(gen, "chamber_proculus"); 33 var geno = chambers[species][0] + "sx=" + rad + ",sy=" + rad + ",sz=" + rad + ", rz=3.14159265358979,vr=" + colors[gen];33 var geno = "//0\np:" + chambers[species][0] + "sh=1,sx=" + rad + ",sy=" + rad + ",sz=" + rad + ", rz=3.14159265358979,vr=" + colors[gen]; 34 34 35 35 chamber_num = Math.min(chamber_num, chambers[species].size - 1); … … 38 38 { 39 39 rad = getProperty(gen, "chamber_proculus") + getProperty(gen, "chamber_difference") * (i + 1); 40 geno += "\n" + chambers[species][i+1] + "sh=1,sx=" + rad + ",sy=" + rad + ",sz=" + rad + ",vr=" + colors[gen];40 geno += "\n" + "p:" + chambers[species][i+1] + "sh=1,sx=" + rad + ",sy=" + rad + ",sz=" + rad + ",vr=" + colors[gen]; 41 41 } 42 42 … … 45 45 geno += "\n" + "j:"+ i +", "+ (i+1) +", sh=1"; 46 46 } 47 47 48 if (species == 1) geno += "\nn:p=0,d=\"S\""; 48 49 … … 54 55 if (mode["opt"] == 0) //initial 55 56 { 56 mode["cr"].user1 = {"min_repro_energies" : [ getProperty(0, "min_repro_energ"), getProperty(1, "min_repro_energ")], "hibernation" : 1 - mode["species"]};57 mode["cr"].user1 = {"min_repro_energies" : [max_chamber_energ[0][getProperty(0, "min_repro_energ")], max_chamber_energ[1][getProperty(1, "min_repro_energ")]], "hibernation" : 1 - mode["species"]}; 57 58 mode["cr"].user2 = {"max_energy_level" : getProperty(0,"energies0"), "gen" : 0, "hibernated" : 0, "species" : mode["species"], "reproduce" : 0}; 58 59 } … … 75 76 { 76 77 energy0 = getProperty(0,"energies0"); 77 number = getProperty(1, "e_repro_cost") * parent.energy/ energy0;78 number = (( 1 - getProperty(1, "e_repro_cost")) * parent.energy) / energy0; 78 79 new_user1 = parent.user1; 79 80 parent.user2["gen"] = 1 - parent.user2["gen"]; //because of reversal of "gen" in createOffspring function … … 83 84 { 84 85 energy0 = getProperty(1,"energies0"); 85 number = getProperty(parent.user2["gen"], "e_repro_cost") * parent.energy / energy0 + getProperty(parent.user2["gen"], "e_repro_cost") * parent2.energy/ energy0;86 number = (((1 - getProperty(parent.user2["gen"], "e_repro_cost")) * parent.energy) + ((1 -(getProperty(parent.user2["gen"], "e_repro_cost"))) * parent2.energy)) / energy0; 86 87 new_user1 = [parent.user1, parent2.user1]; 87 88 gen = 1 - parent.user2["gen"]; 88 89 } 89 90 90 Simulator.print(" number of offspring: " + number);91 Simulator.print("haploid number of offspring: " + number + " energ0: " + energy0); 91 92 92 93 for (var j = 0; j < number; j++) … … 99 100 { 100 101 var energy0 = getProperty(0,"energies0"); 101 var number = getProperty(parent.user2["gen"], "e_repro_cost") * parent.energy/ energy0;102 103 Simulator.print(" number of offspring: " + number);102 var number = ((1 - (getProperty(parent.user2["gen"], "e_repro_cost"))) * parent.energy) / energy0; 103 104 Simulator.print("diploid number of offspring: " + number+ " energ0: " + energy0); 104 105 105 106 for (var j = 0; j < number / 2; j++) … … 149 150 parent2 = pop[i]; 150 151 } 151 else152 if (parent1 != null && parent2 != null) 152 153 { 153 154 reproduce_haploid(parent1, parent2, 0); … … 158 159 parent1 = null; 159 160 parent2 = null; 160 } 161 161 } 162 162 } 163 163 } … … 204 204 } 205 205 206 207 206 208 function foramReproduce(cr) 207 209 { … … 231 233 } 232 234 if (reproduced == 1) 233 return ;235 return 1; 234 236 } 235 237 … … 239 241 cr.user2["reproduce"] = 0; 240 242 } 243 244 return 0; 241 245 } 242 246
Note: See TracChangeset
for help on using the changeset viewer.