Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
936 commits
Select commit Hold shift + click to select a range
5409239
Run in parallel the loop that resets the possible settlers.
nboullis Jan 22, 2025
2a017f5
Run the reproduction stage in an OpenMP parallel loop while preventin…
nboullis Jan 29, 2025
846ee8b
Run the “complete dispersal” stage in an OpenMP parallel loop.
nboullis Jan 30, 2025
be1720a
Run the second stage of the Population::transfer method in an OpenMP …
nboullis Jan 30, 2025
794172f
Run the “emigration” stage in an OpenMP parallel loop.
nboullis Feb 4, 2025
d8b93d7
Run the “survival” stages in an OpenMP parallel loop.
nboullis Mar 4, 2025
cba60ae
Run the “initiateDispersal” stage in an OpenMP parallel loop while ba…
nboullis Mar 4, 2025
a81e67c
Run the populations reset in an OpenMP parallel loop.
nboullis Mar 7, 2025
ef5cd1f
Fixing compilation errors for R package
JetteReeg Mar 20, 2025
baefdac
Merge pull request #82 from RangeShifter/avoid_memory_copies
TheoPannetier Mar 24, 2025
8218cf3
Merge branch 'develop' into memory_usage
nboullis Mar 24, 2025
b57abd2
formatting
TheoPannetier Mar 25, 2025
6e2aefe
Add a full() method to the new MemoryQueue class for a cleaner design.
nboullis Mar 27, 2025
6f0ef1a
fix interface bug when genetic output is off
TheoPannetier Mar 27, 2025
3a821c1
batch interface failed to catch mismatch numbers
TheoPannetier Mar 28, 2025
1399d36
oops forgot to actually set the sampled stages
TheoPannetier Mar 28, 2025
870ad76
Merge pull request #83 from RangeShifter/memory_usage
TheoPannetier Mar 28, 2025
835e9ff
Merge branch 'develop' into openmp_parallelization
nboullis Mar 31, 2025
64db26a
Forward-declare the Patch class and replace the corresponding intptr …
nboullis Mar 27, 2025
fc38888
Forward-declare the Population class and replace the corresponding in…
nboullis Mar 27, 2025
ef287d5
Forward-declare the SubCommunity class and replace the corresponding …
nboullis Mar 27, 2025
4e337ae
Make the subcommunity number a standard int rather than an intptr as …
nboullis Mar 27, 2025
47e06af
added RS_RCPP macro for R specific landscape inputs
JetteReeg Apr 8, 2025
f965164
Merge commit '47e06afab2579726756173485c538dce180f6dfa' into transloc…
JetteReeg Apr 8, 2025
be52f66
Merge remote-tracking branch 'origin/new_genetics' into transloc_new_…
JetteReeg Apr 8, 2025
ced9044
compared to RangeShifter_batch/new_genetics; now in line
JetteReeg Apr 8, 2025
a3b92f0
Merge commit 'ced9044d2b6716cb5322383d0892b26ad62b968d' into transloc…
JetteReeg Apr 8, 2025
e84c538
rm duplicated batch name
TheoPannetier Apr 22, 2025
365d736
rm duplicated batch name
TheoPannetier Apr 22, 2025
42cc60e
incomplete erasure of windows line endings?
TheoPannetier Apr 25, 2025
e594940
Implemented and debugged CheckManageFile(), CheckTranslocFile() and s…
JetteReeg Apr 25, 2025
9e85a5d
Merge remote-tracking branch 'origin/new_genetics' into transloc_new_…
JetteReeg Apr 25, 2025
b0df20d
refactor trait summaries
TheoPannetier Apr 25, 2025
5ebee70
refactor trait summaries
TheoPannetier Apr 25, 2025
3b010f7
settlement and genetic load per cell trait refactor
TheoPannetier Apr 25, 2025
a04f098
settlement and genetic load per cell trait refactor
TheoPannetier Apr 25, 2025
ea64bb5
refactor transfer
TheoPannetier Apr 25, 2025
b391336
refactor transfer
TheoPannetier Apr 25, 2025
5f014ac
initial individuals suffer genetic load
TheoPannetier Apr 28, 2025
b635f9e
initial individuals suffer genetic load
TheoPannetier Apr 28, 2025
96a47b2
Merge commit '7386236efd7e2ac31ef0da1f5b1ecda7274347ff' into new_gene…
TheoPannetier Apr 28, 2025
a67ef13
Merge commit '7386236efd7e2ac31ef0da1f5b1ecda7274347ff' into new_gene…
TheoPannetier Apr 28, 2025
d6af7fa
Merge branch 'new_genetics' of https://github.com/RangeShifter/RScore…
TheoPannetier Apr 28, 2025
d5cf8c0
restore accidentally removed genetic load ofr asexual species. thanks…
TheoPannetier Apr 28, 2025
3381745
solve merge conflict with rscore
TheoPannetier Apr 28, 2025
4faedca
individuals initialised from files also suffer genetic load
TheoPannetier Apr 28, 2025
0544fc1
individuals initialised from files also suffer genetic load
TheoPannetier Apr 28, 2025
b9b1cb8
check columns for initialising subset of positions
TheoPannetier Apr 28, 2025
013813d
read and process initial position parameters
TheoPannetier Apr 29, 2025
bf7d7fc
doc for initial positions
TheoPannetier Apr 29, 2025
7525911
additional restrictions for init positions parameter
TheoPannetier Apr 29, 2025
9b917f0
can initialise only a subset of positions
TheoPannetier Apr 29, 2025
34b3414
can initialise only a subset of positions
TheoPannetier Apr 29, 2025
7759f9a
initial individuals do not suffer genetic load
TheoPannetier Apr 29, 2025
e816843
initial individuals do not suffer genetic load
TheoPannetier Apr 29, 2025
a1a4d7c
Merge pull request #85 from RangeShifter/no_intptr
TheoPannetier Apr 29, 2025
6673cda
Merge branch 'develop' into openmp_parallelization
nboullis Apr 30, 2025
2d000dd
typos
TheoPannetier Apr 30, 2025
dc8df2f
indentation and style
TheoPannetier Apr 30, 2025
06175a9
Merge branch 'openmp_parallelization' of https://github.com/RangeShif…
TheoPannetier Apr 30, 2025
77d744b
fetch eps only once per year
TheoPannetier Apr 30, 2025
6fd678e
Merge commit '77d744b96eb6965e97f7a282cbe0dd5d6529618e' into openmp_p…
TheoPannetier Apr 30, 2025
c8f6e82
Merge commit 'a1a4d7cafc62f037b8ea801264c332797eabdcc5' into develop
TheoPannetier May 1, 2025
d5a5a55
Merge branch 'develop' into openmp_parallelization
TheoPannetier May 1, 2025
fc5d93d
turn openmp parallelisation on/off via config
TheoPannetier May 1, 2025
195d038
turn openmp parallelisation on/off via config
TheoPannetier May 1, 2025
608e95f
usage openmp
TheoPannetier May 1, 2025
a02fcbd
Merge pull request #84 from RangeShifter/openmp_parallelization
TheoPannetier May 1, 2025
7394e7c
Merge pull request #77 from RangeShifter/openmp_parallelization
TheoPannetier May 1, 2025
9c81dac
Split the Individual::getLocn() function in 2 distinct functions Indi…
nboullis May 5, 2025
5854c4e
Split functions to open/write to/close the individuals and population…
nboullis May 5, 2025
e0cd7dd
Split the survival functions.
nboullis May 6, 2025
b7f2d60
added debug output for translocations
JetteReeg May 7, 2025
4df97eb
Merge commit 'b7f2d603a8fe44998ed8ff249cb1a57eaf2e3044' into transloc…
JetteReeg May 7, 2025
bbb7c4f
completed parsing of management and translocation parameters. success…
JetteReeg May 7, 2025
e0508f9
Added ManagementFile line for GHA run (no management activated)
JetteReeg May 7, 2025
4105682
bugfix: forgot to create a new pManagement independent of whether it …
JetteReeg May 7, 2025
1d18870
Changed error message while parsing management and translocation para…
JetteReeg May 7, 2025
092e852
Split the functions to open/close the range files.
nboullis May 9, 2025
f402c98
Split the functions to open/close the traits and traits rows files.
nboullis May 9, 2025
7c72197
Split the functions to open/close the genetics files.
nboullis May 12, 2025
f3b71b7
Split the functions to open/close the occupancy files.
nboullis May 12, 2025
0dac7fb
Split the functions to open/close the connect and paths files.
nboullis May 12, 2025
6b7f4d3
Split the Population::transfer method.
nboullis May 13, 2025
0d2460f
Cleanup unused parameters and variables in the new Population::transf…
nboullis May 13, 2025
a8a0ed2
Remove the compatibility Population::transfer function.
nboullis May 13, 2025
0620837
Split the SubCommunity::transfer method.
nboullis May 13, 2025
0c02670
Remove the compatibility SubCommunity::transfer function.
nboullis May 13, 2025
e65d989
Add new static methods Population::transfer_move, Population::transfe…
nboullis May 14, 2025
4037ecb
Add new static methods SubCommunity::transfer_move, SubCommunity::tra…
nboullis May 14, 2025
713fc05
Add a new SubCommunity::initiateMatrixDispersal method to move all in…
nboullis May 14, 2025
b92b543
Refactor the parallelization of the Community::dispersal method to en…
nboullis May 14, 2025
5936f4c
Remove old (now unused) methods.
nboullis May 14, 2025
6655955
Relax the thread synchronization in the Community::transfer method.
nboullis May 15, 2025
2275c4a
Replace the custom split_barrier class by standard std::barrier (and …
nboullis May 26, 2025
fa61fa6
Merge branch 'new_genetics' into transloc_new_genetics_spatial_demog_…
JetteReeg May 28, 2025
2dfe022
Merge pull request #86 from RangeShifter/split_functions
TheoPannetier Jun 1, 2025
a4b3e85
Merge branch 'develop' into refactor_transfer_parallelization
nboullis Jun 2, 2025
c871c85
patchnums not used anywhere so dropped them
TheoPannetier Jun 12, 2025
d8e5256
patchnums not used anywhere so dropped them
TheoPannetier Jun 12, 2025
7853c69
ensure patch heterogeneity is written in the correct order
TheoPannetier Jun 12, 2025
e0e40bc
ensure patch heterogeneity is written in the correct order
TheoPannetier Jun 12, 2025
a853cf6
cleanup readLandscape
TheoPannetier Jun 19, 2025
dc2d350
cleanup readLandscape
TheoPannetier Jun 19, 2025
d83cc1c
Merge commit '2dfe022ec9ebfd41b671b8796ada6b33d04d5945' into develop
TheoPannetier Jul 2, 2025
a2a2d84
Merge commit 'e81684322e390e0c19b8a502603e8537f47d8c34' into new_gene…
TheoPannetier Jul 2, 2025
8805e7c
bug in calculation of Ho: heterogeneity shouldn't be an integer
TheoPannetier Jul 17, 2025
114c909
bug in calculation of Ho: heterogeneity shouldn't be an integer
TheoPannetier Jul 17, 2025
68de653
merge conflict develop - new_genetics first attempt
TheoPannetier Jul 21, 2025
c142585
merge conflict develop - new_genetics first attempt
TheoPannetier Jul 21, 2025
9bf4457
fixing git merge mistakes
TheoPannetier Jul 22, 2025
f350ce7
fixing git merge mistakes
TheoPannetier Jul 22, 2025
9610ff4
resolving more merge mistakes
TheoPannetier Jul 22, 2025
091ebe4
resolving more merge mistakes
TheoPannetier Jul 22, 2025
a57bb03
solved linker issues raised by develop merge
TheoPannetier Jul 22, 2025
5f25433
solved linker issues raised by develop merge
TheoPannetier Jul 22, 2025
68c87ef
bring omp generalisation of the RNG to the RCPP version
TheoPannetier Jul 23, 2025
23edd6b
bring omp generalisation of the RNG to the RCPP version
TheoPannetier Jul 23, 2025
bad3e31
merge conflict
TheoPannetier Jul 23, 2025
57c20b8
merge conflict
TheoPannetier Jul 23, 2025
5aea418
Integrated option for file inputs for spatial demographic scaling
JetteReeg Jul 25, 2025
39e5402
Apply suggestions from code review
TheoPannetier Sep 8, 2025
24b6708
light refactor to increase readability
TheoPannetier Sep 8, 2025
f9c7197
incorporate edits from pr review
TheoPannetier Sep 8, 2025
e59a31c
transfer and settlement moved outside of population class
TheoPannetier Sep 8, 2025
48b74aa
make conditional barrier calls a wee bit more succinct
TheoPannetier Sep 8, 2025
b241646
fix mismatched definition
TheoPannetier Sep 9, 2025
3b0d19a
move matePresent out of population + better pop size getter
TheoPannetier Sep 9, 2025
6559fc3
Merge branch 'develop' into refactor_transfer_parallelization
TheoPannetier Sep 9, 2025
96d1cbd
Merge commit '68c87ef62977b485fb8d1de3c6c84716bb8260e4' into develop
TheoPannetier Sep 9, 2025
9b3f02c
Merge pull request #88 from RangeShifter/refactor_transfer_paralleliz…
TheoPannetier Sep 9, 2025
ff3ed49
Merge commit '9b3f02c76045868da4000bb9adc0a8c41e649850' into develop
TheoPannetier Sep 9, 2025
9befaa4
Merge commit '57c20b8630d8dec716693dc3cafb5be2ea7354c4' into new_gene…
TheoPannetier Sep 10, 2025
310d2c6
Merge remote-tracking branch 'origin/new_genetics' into transloc_new_…
JetteReeg Sep 12, 2025
8f40ab4
BUGFIX in moveStep:
JetteReeg Sep 12, 2025
4c70c77
Unit_test:
JetteReeg Sep 15, 2025
a7cf75e
updated Individual() constructor in unit_tests/testIndividual.cpp
JetteReeg Sep 15, 2025
fc73cc5
fix argument errors in unit tests
TheoPannetier Sep 17, 2025
0b9b20e
bugfix missing increment of total steps
TheoPannetier Sep 18, 2025
bcd3b5e
instructions for openmp
TheoPannetier Sep 22, 2025
1bc03ee
better description for gene expression
TheoPannetier Sep 22, 2025
83659f9
cleaning up formatting in batch files
TheoPannetier Sep 22, 2025
f01ac87
updated unit tests according to RScore/new_genetics
JetteReeg Sep 23, 2025
b5efd27
Merge commit '0b9b20e2310d17839622a99d6cd117d5850f6656' into new_gene…
TheoPannetier Sep 23, 2025
f19dbdd
adapted unit tests
JetteReeg Sep 23, 2025
14487b0
doc update
TheoPannetier Sep 23, 2025
ecb07a6
word is such a 💩 piece of software I had to replace all equations wit…
TheoPannetier Sep 23, 2025
55d2f6f
rm archfile
TheoPannetier Sep 26, 2025
371e891
fix test by shuffling individuals
TheoPannetier Sep 26, 2025
e120416
shuffle individuals before reproduction
TheoPannetier Sep 26, 2025
b432d68
fix description of fixReplicateSeed
TheoPannetier Sep 26, 2025
a58ba96
Merge commit '5cb14cfbc36db691dde9804715324d338d8da597'
JetteReeg Sep 29, 2025
8befd3c
rm check_output routine until we have an actual use case
TheoPannetier Sep 29, 2025
39d5a68
fix unreliable kernel tests
TheoPannetier Sep 29, 2025
d996e37
separate unit tests from NDEBUG macro
TheoPannetier Sep 29, 2025
ab660a8
Merge commit '9b3f02c76045868da4000bb9adc0a8c41e649850' into develop
JetteReeg Sep 30, 2025
5c2cc9b
Bugfix ReadSettlement()
JetteReeg Sep 30, 2025
f393706
higher tolerance
TheoPannetier Sep 30, 2025
e3c355f
Merge commit 'f39370687e93e0bc371242f9c147b7abe15cf449' into new_gene…
TheoPannetier Sep 30, 2025
6641732
Merge branch 'develop' of https://github.com/RangeShifter/RangeShifte…
TheoPannetier Sep 30, 2025
66dcea7
small merge conflict
TheoPannetier Sep 30, 2025
6d2b2da
small merge conflict
TheoPannetier Sep 30, 2025
ac09581
Merge commit '6d2b2dae1a2fe6574f6e2d5fca300d37738f2ff4' into develop
TheoPannetier Sep 30, 2025
55805b6
resolve merge conflict develop into new_genetics
TheoPannetier Sep 30, 2025
24626b2
resolve merge conflict develop into new_genetics
TheoPannetier Sep 30, 2025
c34b341
simplify and annotate syntax for setting settlement parameters
TheoPannetier Sep 30, 2025
7a35d62
boundary test less likely to fail with higher dispersal distance
TheoPannetier Oct 1, 2025
a77d33f
Merge branch 'new_genetics' of https://github.com/RangeShifter/RScore…
TheoPannetier Oct 1, 2025
a8467b2
inconsistent names after merge conflict
TheoPannetier Oct 1, 2025
86bd62f
fix missing decrement of population size
TheoPannetier Oct 1, 2025
4584169
bug fix on single-locus genes?
TheoPannetier Oct 2, 2025
7bb2ce1
merge
TheoPannetier Oct 2, 2025
32bf0f9
no tests in batch mode
TheoPannetier Oct 16, 2025
1119871
document that the origin is the bottom left corner
TheoPannetier Oct 20, 2025
1a28b1f
doc bottom left corner
TheoPannetier Oct 20, 2025
de3ed49
doc bottom left corner
TheoPannetier Oct 20, 2025
a63e779
fix tests - hardy weinberg expectation is not met because finite size…
TheoPannetier Oct 20, 2025
fdb6771
Merge commit 'a63e779df7fc0a27d80b413db2b419ff8cfb0f4d' into new_gene…
TheoPannetier Oct 20, 2025
bbceed4
Merge commit 'a63e779df7fc0a27d80b413db2b419ff8cfb0f4d' into new_gene…
TheoPannetier Oct 20, 2025
cd4b984
Merge branch 'new_genetics' into transloc_new_genetics_spatial_demog_…
JetteReeg Nov 13, 2025
d256e68
reverted one change to see if unit tests are now successful
JetteReeg Nov 13, 2025
81212f0
Manually merged changes from new_genetics
JetteReeg Nov 14, 2025
9516aa1
fixing minor bugs for RCPP flag
JetteReeg Nov 17, 2025
76450d8
Merge commit '9516aa10ba128c006ea384274536d808bfb7d6d3' into transloc…
JetteReeg Nov 17, 2025
8c990d2
bugfix for dynamic landscapes:
JetteReeg Nov 21, 2025
1235c82
Merge commit '8c990d262f23c78af804c2cfce91164c45553d03' into transloc…
JetteReeg Nov 21, 2025
c516279
implemented spatial demography parsing
JetteReeg Nov 21, 2025
c387266
minor bugfix when reading demographic scaling
JetteReeg Nov 21, 2025
6cd1eae
Bugfixes
JetteReeg Nov 27, 2025
c142584
Minor Updates:
JetteReeg Nov 27, 2025
0904483
Merge branch 'transloc_new_genetics_spatial_demog_merge' of https://g…
JetteReeg Nov 27, 2025
df9389f
Merge commit '0904483bcc76f1b21eb1eee69b92e6790f6ab80a' into transloc…
JetteReeg Nov 27, 2025
242b90a
Potential fix for pairwise fst calculation. Charlotte to test.
RoslynHenry Dec 3, 2025
f751f01
Potential fix for pairwise fst calculation. Charlotte to test.
RoslynHenry Dec 3, 2025
285ee1b
Corrected pairwise fst calculation using weir and cockerham
RoslynHenry Dec 11, 2025
c52063c
Corrected pairwise fst calculation using weir and cockerham
RoslynHenry Dec 11, 2025
dbc2a1a
Merge remote-tracking branch 'origin/transloc_new_genetics_spatial_de…
JetteReeg Dec 16, 2025
9777c46
Merge commit 'dbc2a1ab67dbf2ea96a964aa6abae9524e0c88f0' into develop
JetteReeg Dec 19, 2025
708a701
bugfix for spatial demography input
JetteReeg Dec 19, 2025
c44eee2
Merge commit 'dbc2a1ab67dbf2ea96a964aa6abae9524e0c88f0' into transloc…
JetteReeg Jan 6, 2026
08800d5
Merge remote-tracking branch 'origin/transloc_new_genetics_spatial_de…
JetteReeg Jan 7, 2026
1d886ef
Try to change GA to macos-latest
JetteReeg Jan 7, 2026
203a1bb
Merge remote-tracking branch 'origin/transloc_new_genetics_spatial_de…
JetteReeg Jan 7, 2026
6c8f550
updated documentation for spatially varying demographic rates
JetteReeg Jan 8, 2026
1b7da0f
Changes to outputPairwiseFst rather than outputWeirHill
RoslynHenry Jan 12, 2026
e2a2a46
Changes to outputPairwiseFst rather than outputWeirHill
RoslynHenry Jan 12, 2026
a441d33
Updating based on changes done in RangeShifter_batch/new_genetics/src…
JetteReeg Jan 13, 2026
cb435ea
adapted unit_test for NeutralStats so it will compile
JetteReeg Jan 13, 2026
ecc4c2f
Merge commit 'cb435ea8b8be33aefef2c787fa91c9f5618dd887' into new_gene…
JetteReeg Jan 13, 2026
28b067a
Merge commit 'cb435ea8b8be33aefef2c787fa91c9f5618dd887' into new_gene…
JetteReeg Jan 13, 2026
9e41f78
Bring RScore/new_genetics up-to-date with src/RScore RangeShifter_ba…
JetteReeg Jan 13, 2026
c346c90
Merge commit '9e41f786f701b5dd9a03d167becb8e19c10f85c7' into new_gene…
JetteReeg Jan 13, 2026
f889a56
Merge commit '9e41f786f701b5dd9a03d167becb8e19c10f85c7' into new_gene…
JetteReeg Jan 13, 2026
8d3d7fd
Updating based on changes done in RangeShifter_batch/new_genetics/src…
JetteReeg Jan 13, 2026
ec37a62
adapted unit_test for NeutralStats so it will compile
JetteReeg Jan 13, 2026
e2014f6
Bring RScore/new_genetics up-to-date with src/RScore RangeShifter_ba…
JetteReeg Jan 13, 2026
3ac67a5
removed duplicated #include header
JetteReeg Jan 13, 2026
aed6b8a
Merge commit '3ac67a597c3ea0d697452ff778aac9b5997cde89' into develop
JetteReeg Jan 13, 2026
57bebfa
Cherry-pick changes to src/BatchMode.cpp from 1b7da0f
JetteReeg Jan 13, 2026
404b2b6
Replacement of outWeirHill with outPairwiseFst in writeNeutralOutputF…
JetteReeg Jan 13, 2026
576829f
Merge commit '404b2b6e65a7a7e2e061aa278e78cb8913c467f2' into develop
JetteReeg Jan 13, 2026
4455120
Changes to decouple genetic output
RoslynHenry Jan 22, 2026
a64666d
Changes to decouple genetic output
RoslynHenry Jan 22, 2026
2a90ab6
Updated description input file GeneticsFile.txt
Ch-Bun Jan 26, 2026
097599d
bug fixes for outputting genetics interval
RoslynHenry Jan 26, 2026
2d3c628
bug fixes for outputting genetics interval
RoslynHenry Jan 26, 2026
1d82072
Bug fix for genetic output
RoslynHenry Feb 5, 2026
722bdae
Bug fix for genetic output
RoslynHenry Feb 5, 2026
ce62662
Merge remote-tracking branch 'origin/new_genetics' into develop
JetteReeg Feb 19, 2026
147700e
Merge commit '1d8207217efd05f9af76167d379836bccaeccb38' into new_gene…
JetteReeg Feb 19, 2026
32140ff
Merge commit 'ce626624810e6958da72b99614bb7c92d9d083b8' into develop
JetteReeg Feb 19, 2026
4634f8b
Merge remote-tracking branch 'origin/new_genetics' into develop
JetteReeg Feb 20, 2026
cfceeb4
Changed output for R interface:
JetteReeg Feb 20, 2026
12bd92c
Merge commit 'cfceeb48bf7fb317bbcb21f0dea5eae2e02a3ad6' into develop
JetteReeg Feb 20, 2026
c991e48
emigstage shouldn't silently set to juveniles if not specified
TheoPannetier Mar 6, 2026
056765c
rm this log of rs distributions
TheoPannetier Mar 6, 2026
957e2ce
Minor changes for R output option of the R package interface
JetteReeg Mar 19, 2026
2239e65
Merge commit '957e2cecfa1210dd3d2479b5bdab7627f4d03a67' into develop
JetteReeg Mar 19, 2026
49e61c8
Merge remote-tracking branch 'origin/new_genetics' into develop
JetteReeg Mar 19, 2026
09e171e
Updated README.md
JetteReeg Mar 20, 2026
1d1532d
Updated Copyright section on each file
JetteReeg Mar 20, 2026
6d770dc
Merge commit '1d1532d8a478dfe7998c764e76a646880c16d821' into develop
JetteReeg Mar 20, 2026
4c7364f
theo is no longer a maintainer 🥲
TheoPannetier Mar 22, 2026
1427ac3
theo is no longer a maintainer 🥲
TheoPannetier Mar 22, 2026
d33b35d
drop conflicting rs logo
TheoPannetier Mar 22, 2026
ddc3740
Merge commit '4c7364f76435d52e07731d158707acdfc7e92423' into develop
JetteReeg Mar 24, 2026
072d3af
Clean-up
JetteReeg Mar 24, 2026
d05d141
Merge commit '072d3afcbdde7f1cca68980e2c70fdeb121c90ca' into develop
JetteReeg Mar 24, 2026
1657d63
Apply Species.cpp fix from RangeShifter_batch commit c991e48
JetteReeg Mar 24, 2026
e62c4e6
Merge commit '1657d63d59c063055886adf473b227eaa1172e92' into develop
JetteReeg Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,9 @@ jobs:
- name: run
run: ${{ matrix.path_to_exe }} run_on_gha/rs_test_project/

# block output checks for now
# - name: check_output
# if: ${{ matrix.os != 'macos-latest' }} # no check until I get access to a machine with Xcode 15
# run: |
# cd ./run_on_gha/rs_test_project
# rm Outputs/DebugLog.txt
# bash check_output.bash
# DebugLog contains addresses, changes every run

- name: check_output
if: ${{ matrix.os != 'macos-latest' }} # no check until I get access to a machine with Xcode 15
run: |
cd ./run_on_gha/rs_test_project
# bash check_output.bash # disable until new genetics stable

28 changes: 28 additions & 0 deletions .github/workflows/check_charly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: check_charly
on: push

jobs:
check:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
include:
- os: windows-latest
path_to_exe: ./build/Debug/RangeShifter.exe
- os: ubuntu-latest
path_to_exe: ./build/RangeShifter
- os: macos-latest
path_to_exe: ./build/RangeShifter
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3

- name: build
run: |
mkdir build
cd build
cmake ../
cmake --build .

- name: run
run: ${{ matrix.path_to_exe }} run_on_gha/rs_project_charly/
25 changes: 25 additions & 0 deletions .github/workflows/check_gcc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: check_gcc
on: push

jobs:
check:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3

- name: build
run: |
shopt -s extglob
g++ --std=c++20 -o RangeShifter ./src/*.cpp ./src/RScore/!(Main).cpp -DLINUX_CLUSTER

- name: run
run: ./RangeShifter ./run_on_gha/rs_test_project/

- name: check_output
if: ${{ matrix.os != 'macos-latest' }}
run: |
cd ./run_on_gha/rs_test_project
# bash check_output.bash # disable until new genetics stable
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,17 @@ out/
x64/
*.json

# Eclipse
.metadata/
src/RScore/.cproject
.cproject
.settings/
Model/

# Ignore test project outputs, except anchors
run_on_gha/rs_test_project/Outputs/*
!run_on_gha/rs_test_project/Outputs/git_anchor.txt
run_on_gha/rs_test_project/OutputMaps/*
!run_on_gha/rs_test_project/OutputMaps/git_anchor.txt
/run_on_gha/test_scenario_01/Outputs
/Default/
22 changes: 15 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,30 +1,38 @@
cmake_minimum_required(VERSION 3.10)

# set the project name and version
project(RangeShifter VERSION 2.1.0)
project(RangeShifter VERSION 3.0.0)

# specify the C++ standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# add RScore to source search path
set(batchmode ON) # don't config RScore as standalone

if(DEFINED OMP)
set(OMP ON)
endif()

add_subdirectory(src/RScore)

# add the executable
add_executable(RangeShifter src/Main.cpp src/BatchMode.cpp)

target_compile_definitions(RangeShifter PRIVATE RSWIN64)

# enable LINUX_CLUSTER macro on Linux + macOS
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_compile_definitions(LINUX_CLUSTER)
endif()

# Debug Mode by default, unless "release" is passed i.e. `cmake -Drelease=`
if(NOT DEFINED release)
add_compile_definitions(RSDEBUG)
# Enable parallelisation with OpenMP
# define macro during config: `cmake -DOMP=`
if(DEFINED OMP)
find_package(OpenMP COMPONENTS CXX)
if(OpenMP_CXX_FOUND)
target_link_libraries(RangeShifter PUBLIC OpenMP::OpenMP_CXX)
endif()
endif()

# link RScore to the executable as a library
target_link_libraries(RangeShifter PUBLIC RScore)

Expand Down
93 changes: 83 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RangeShifter Batch Mode
# RangeShifter Batch Mode

C++ code for the RangeShifter v2 batch mode application
C++ code for the RangeShifter 3.0 batch mode application

<img title="" src="https://github.com/RangeShifter/RangeShifter_batch_dev/blob/main/doc/rs_batch_logo.png" alt="" align="right" height="150">

Expand All @@ -19,33 +19,93 @@ In Batch Mode, RangeShifter can be run from the command line (e.g., `./rangeshif
This allows the user to run large batches of simulations with different parameters, which would need to be specified individually in the GUI version.
The Batch Mode also enables running RangeShifter on machines with a non-interactive interface, for example a high-performance cluster.

## Building RangeShifter
## Building RangeShifter-batch

The compiled software can be found in the [Software and Documentation](https://github.com/RangeShifter/RangeShifter-software-and-documentation) repo.

Building RangeShifter from the source code requires CMake. If you haven't done so yet, you will need to [download and install it](https://cmake.org/download/).

RangeShifter can then be configured and built (out-of-source) from `CMakeLists.txt`, with the usual CMake commands:
RangeShifter can then be configured and built from `CMakeLists.txt`.
If you are not seeking to develop the code yourself, it is best (=faster) to build RangeShifter in Release mode, whihc requires slightly different command on Unix vs Windows systems:

```bash
# Unix
mkdir build && cd build
cmake ..
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
```

```bash
# Windows (Visual Studio)
mkdir build && cd build
cmake ..
cmake --build . --config Release
```

If you use Visual Studio as your IDE, CMake should be recognised automatically when `RangeShifter_batch_dev` is opened as a new folder.
Visual Studio will take care of the configuration, and you only need to select target RangeShifter.exe before pressing the build button.

Alternatively, RangeShifter can also be built directly with the GNU C++ compiler, in which case some #define macros must be passed to it:
Alternatively, RangeShifter can also be built directly with the GNU C++ compiler.
In this case, some #define macros must be passed to it, and RScore/Main.cpp must be excluded from source files:

```bash
shopt -s extglob # enable the !(file) pattern below
g++ --std=c++20 -o RangeShifter.exe ./src/*.cpp ./src/RScore/!(Main).cpp -DLINUX_CLUSTER -O3 -s -DNDEBUG
```

### Parallelisation

As of 3.0, parallelisation (using [OpenMP](https://www.openmp.org/)) is available for the reproduction and dispersal modules.
This behaviour is turned off by default, and can be turned on by building RangeShifter with the `OMP` macro enabled:

```bash
g++ -o RangeShifter.exe ./src/*.cpp ./src/RScore/*.cpp -DRSDEBUG -DRSWIN64 -DLINUX_CLUSTER
# Unix
mkdir build && cd build
cmake -DOMP= -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
```

## Running RangeShifter
```bash
# Windows (Visual Studio)
mkdir build && cd build
cmake -DOMP= ..
cmake --build . --config Release
```

⚠️ Please note that enabling parallelisation will alter random number generation,
such that two identical simulations won't produce the same exact numbers, even given the same seed.

### Building with Visual Studio (Windows)

Building RangeShifter-batch with CMake can be done easily within Visual Studio.
This requires the CMake and C++ modules to be installed (please refer to the Visual Studio installer for this).

Simply clone this repo, then open it in Visual Studio using the Open Folder option.
Visual Studio will then recognise the CMakeLists file and automatically configure the build.
Once this is done, you should be able to select Rangeshifter.exe in the Startup Item panel ([Screenshot](https://github.com/RangeShifter/RangeShifter_batch_dev/blob/develop/doc/rs_in_vs.png)).
Hit the button to build and run RangeShifter. The executable should be built in a folder inside `out/build/`.

## Running RangeShifter-batch

For instructions on how to setup the project directory and input files, please refer to section 3.3 of the [User Manual](https://raw.githubusercontent.com/RangeShifter/RangeShifter-software-and-documentation/master/RangeShifter_v2.0_UserManual.pdf), and to the [documentation repository](https://github.com/RangeShifter/RangeShifter-software-and-documentation) for examples.

## Parallelisation

RangeShifter supports partial parallelisation with OpenMP (thanks @nboullis!).

Parallelisation is turned off by default, but can be enabled by passing macro `OMP` to CMake:

```bash
cmake -DOMP= ..
cmake --build .
```

The number of threads can be controlled with the `OMP_NUM_THREADS` variable:

```bash
OMP_NUM_THREADS=10 ./RangeShifter.exe ./
```

## Contributing

See [CONTRIBUTING](https://github.com/RangeShifter/RangeShifter_batch_dev/blob/main/CONTRIBUTING.md)
Expand All @@ -56,9 +116,22 @@ See [CONTRIBUTING](https://github.com/RangeShifter/RangeShifter_batch_dev/blob/m
- [RScore](https://github.com/RangeShifter/RScore), source for RangeShifter's core code
- [RangeShiftR-pkg](https://github.com/RangeShifter/RangeShiftR-pkg), source for the R interface

## Maintainer
## Authors

**Developers:**

- Theo Pannetier ([@TheoPannetier](https://github.com/TheoPannetier))
- Jette Wolff ([@JetteReeg](https://github.com/JetteReeg))
- Steve Palmer
- Roslyn Henry ([@RoslynHenry](https://github.com/RoslynHenry))

Concepts:

- [@TheoPannetier](https://github.com/TheoPannetier)
- Damaris Zurell ([@damariszurell](https://github.com/damariszurell))
- Greta Bocedi ([@GretaBocedi](https://github.com/GretaBocedi))
- Justin Travis
- Steve Palmer
- Roslyn Henry ([@RoslynHenry](https://github.com/RoslynHenry))

## References

Expand Down
6 changes: 0 additions & 6 deletions doc/Manual/Batchmode/ArchFile.txt

This file was deleted.

74 changes: 70 additions & 4 deletions doc/Manual/Batchmode/CONTROL.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,80 @@ EmigrationFile EmigrationFile_name.txt
TransferFile TransferFile_name.txt
SettlementFile SettlementFile_name.txt
GeneticsFile GeneticsFile_name.txt
TraitsFile TraitsFile_name.txt
ManagementFile ManagementFile_name.txt
InitialisationFile InitialisationFile_name.txt

ANY ADDITIONAL LINES ARE NOT READ, AND CAN THEREFORE BE USED FOR COMMENTS

Example RangeShifter v2.0 Control File for a patch-based model of a stage-structured population dispersing by the kernel transfer option
Example RangeShifter v3.0 Control File for a patch-based model
of a stage-structured population dispersing by the kernel transfer option

Alternatives for non-structutred population / no variable traits:
DOCUMENTATION

StageStructFile NULL
GeneticsFile NULL
More detail can be found in Section 3.3 (Batch Mode) of the user manual

Parameter Values Description

BatchNum ≥ 0 Batch number, appears in all output file names

PatchModel 0 / 1 0 = cell-based model, 1 = patch-based model

Resolution > 0 Landscape resolution, i.e. cell size (in m)

LandType 0 / 2 / 9 0 = imported raster map with unique habitat codes
2 = imported raster map with habitat quality
9 = create an artificial landscape for each replicate

MaxHabitats > 0 Maximum number of habitats in the landscapes to be used;
must be >1 for LandType = 0
must be 1 for LandType = 2 or 9

SpeciesDist 0 / 1 Load initial species distribution? 0 = no, 1 = yes

DistResolution > 0 Resolution of the species distribution map (m)
must not be less than the Resolution parameter

Reproduction 0 / 1 / 2 0 = asexual / only female model, 1 = sexual model (simple);
2 = sexual model (explicit mating system)

RepSeasons ≥ 1 No. of reproductive seasons per year

StageStruct 0 / 1 0 = no stage structure, 1 = stage-structured model

Stages > 1 No. of stages (incl. juveniles) if stage-structured

Transfer 0 / 1 / 2 Transfer method: 0 = dispersal kernels,
1 = SMS (stochastic movement simulator),
2 = CRW (correlated random walk)

ParameterFile filename Principal file for model parameters,
1 line per simulation, simulations must be numbered sequentially
includes habitat-dependent values for K (or 1/b)

LandFile filename Identifies the landscape(s) to be used for each simulation in the ParametersFile; format depends on LandType setting

StageStructFile filename/NULL NULL if not stage-structured model (StageStruct= 0),
must have matching simulation nos. to those in ParametersFile
1 line per simulation

EmigrationFile filename Must have matching simulation nos. to those in ParametersFile
no. lines per simulation depends on model stage and sex structure

TransferFile filename Must have matching simulation nos. to those in ParametersFile
no. lines per simulation depends on model stage and sex structure

SettlementFile filename Must have matching simulation nos. to those in ParametersFile
no. lines per simulation depends on model stage and sex structure

GeneticsFile filename/NULL Required if any dispersal trait is made evolvable (IndVar fields in Emigration/Transfer/Settlement files).

(v3.0) TraitsFile filename/NULL Required if any dispersal trait is made evolvable. 1 line per simulation;
1 line per trait type per simulation.

ManagementFile filename/NULL NULL if no management options are selected. Otherwise must habe matching simulation nos.
to those in ParametersFile;

InitialisationFile filename Must have matching simulation nos. to those in ParametersFile.
1 line per simulation

Binary file modified doc/Manual/Batchmode/EmigrationFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/GeneticsFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/InitialisationFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/LandFile.xlsx
Binary file not shown.
Binary file added doc/Manual/Batchmode/ManagementFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/ParameterFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/SettlementFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/StageStructFile.xlsx
Binary file not shown.
Binary file added doc/Manual/Batchmode/TraitsFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/Batchmode/TransferFile.xlsx
Binary file not shown.
Binary file added doc/Manual/Batchmode/TranslocationFile.xlsx
Binary file not shown.
Binary file modified doc/Manual/RangeShifter_v2.0_UserManual.docx
Binary file not shown.
Binary file removed doc/RS_v2.0_distribution.xlsx
Binary file not shown.
Binary file added doc/rs_in_vs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions run_on_gha/expected_output/windows_ubuntu/Batch1_RS_log.csv
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Event,Number,Reps,Years,Time
WARNING,***** RSDEBUG mode is active *****,,,
RANDOM SEED,666,,,
Landscape,37,,,3
Simulation,1,1,10,0
Landscape,37,,,2
Simulation,1,1,10,1

Batch,,,,3
Loading
Loading