From 60e90125b98b3632e42c98b424d5eda983863d12 Mon Sep 17 00:00:00 2001
From: Daniel Vedder <daniel.vedder@idiv.de>
Date: Sun, 28 May 2023 23:15:03 +0200
Subject: [PATCH] Renamed project to Persefone

This commit includes a `sed` pass over all files to change all
occurrences of the former spelling "Persephone" to "Persefone":
`sed -ie "s/Persephone/Persefone/" *`
---
 Makefile                            |  2 +-
 Project.toml                        |  2 +-
 README.md                           | 14 +++++++-------
 docs/src/adapting.md                | 18 +++++++++---------
 docs/src/architecture.md            | 12 ++++++------
 docs/src/crops.md                   |  4 ++--
 docs/src/developing.md              |  4 ++--
 docs/src/farm.md                    |  4 ++--
 docs/src/gis.md                     | 12 ++++++------
 docs/src/index.md                   | 12 ++++++------
 docs/src/io.md                      |  6 +++---
 docs/src/nature.md                  |  6 +++---
 docs/src/simulation.md              |  4 ++--
 docs/src/species-dsl.md             |  6 +++---
 docs/src/species.md                 |  4 ++--
 run.jl                              |  6 +++---
 src/{Persephone.jl => Persefone.jl} |  6 +++---
 src/analysis/analyse_nature.R       |  2 +-
 src/core/input.jl                   |  8 ++++----
 src/core/landscape.jl               |  2 +-
 src/core/output.jl                  |  6 +++---
 src/core/simulation.jl              |  4 ++--
 src/crop/crops.jl                   |  2 +-
 src/farm/farm.jl                    |  2 +-
 src/nature/ecologicaldata.jl        |  2 +-
 src/nature/nature.jl                |  6 +++---
 src/nature/populations.jl           |  2 +-
 src/nature/species/skylark.jl       |  2 +-
 src/nature/species/wolpertinger.jl  |  2 +-
 src/nature/species/wyvern.jl        |  2 +-
 src/parameters.toml                 |  4 ++--
 test/crop_tests.jl                  |  2 +-
 test/farm_tests.jl                  |  2 +-
 test/io_tests.jl                    |  2 +-
 test/landscape_tests.jl             |  2 +-
 test/nature_tests.jl                | 18 +++++++++---------
 test/paramscan.toml                 |  2 +-
 test/runtests.jl                    | 12 ++++++------
 test/simulation_tests.jl            |  2 +-
 test/test_parameters.toml           |  2 +-
 40 files changed, 106 insertions(+), 106 deletions(-)
 rename src/{Persephone.jl => Persefone.jl} (92%)

diff --git a/Makefile b/Makefile
index 27143cb..1a206c3 100644
--- a/Makefile
+++ b/Makefile
@@ -23,4 +23,4 @@ release:
 	echo "Not yet implemented."
 
 install:
-	echo: "Not relevant. Use `julia run.jl` to run Persephone."
+	echo: "Not relevant. Use `julia run.jl` to run Persefone."
diff --git a/Project.toml b/Project.toml
index 002beb7..d02153b 100644
--- a/Project.toml
+++ b/Project.toml
@@ -1,4 +1,4 @@
-name = "Persephone"
+name = "Persefone"
 uuid = "039acd1d-2a07-4b33-b082-83a1ff0fd136"
 authors = ["Daniel Vedder <daniel.vedder@idiv.de>"]
 version = "0.2"
diff --git a/README.md b/README.md
index ac39053..59351c5 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-# Persephone
+# Persefone
 
 **An agent-based, socio-economic-ecological model of agricultural landscapes
 in Europe under the CAP.**
 	
 ## Description
 
-Persephone models farmers' decision making and its impact on species in agricultural
+Persefone models farmers' decision making and its impact on species in agricultural
 landscapes. The aim is to investigate how policies such as the CAP influence farms and
 biodiversity.
 
@@ -35,7 +35,7 @@ This is the normal mode of operation. Simply execute `run.jl` in a terminal, typ
 where `<config>` specifies the configuration file to use. The recommended workflow is
 to copy `scr/parameters.toml` to a location of your choice and edit the copy to suit
 your requirements. The adapted config file can then be passed to `run.jl`. (If no
-configuration file is specified, Persephone will run with its default settings.)
+configuration file is specified, Persefone will run with its default settings.)
 
 The full list of commandline arguments is:
 
@@ -72,12 +72,12 @@ to import it from your own software), do the following:
 
 ```julia
 using Pkg
-Pkg.activate(".") # assuming you're in the Persephone root folder
-using Persephone
+Pkg.activate(".") # assuming you're in the Persefone root folder
+using Persefone
 ```
 
-You can then access all Persephone functions, such as `simulate()`. (See
-`src/Persephone.jl` for a list of exported functions.)
+You can then access all Persefone functions, such as `simulate()`. (See
+`src/Persefone.jl` for a list of exported functions.)
 
 ---
 
diff --git a/docs/src/adapting.md b/docs/src/adapting.md
index 7f93932..9e9be31 100644
--- a/docs/src/adapting.md
+++ b/docs/src/adapting.md
@@ -1,20 +1,20 @@
-# Adapting Persephone
+# Adapting Persefone
 
-A key development goal of Persephone is to be [FAIR](https://doi.org/10.1515/itit-2019-0040):
+A key development goal of Persefone is to be [FAIR](https://doi.org/10.1515/itit-2019-0040):
 *findable, accessible, interoperable, and reusable*. We aim to build a model that is both easy 
 to use and easy to adapt to new situations.
 
-There are multiple ways to adapt Persephone for a new modelling study:
+There are multiple ways to adapt Persefone for a new modelling study:
 
 ### Changing the parameters
 
-The simplest way to adapt Persephone is simply by changing the parameters.
+The simplest way to adapt Persefone is simply by changing the parameters.
 Copy `src/parameters.toml` to a new location, adjust it to your needs, and
 run the model using `julia run.jl -c <configfile>`.
 
 ### Changing the region
 
-To apply Persephone to a new region, you need to create new input maps of land
+To apply Persefone to a new region, you need to create new input maps of land
 cover and farmplots. How to do so is described [here](gis.html).
 
 *You may also need to change aspects of the `farm` submodel. This is not yet implemented.*
@@ -22,7 +22,7 @@ cover and farmplots. How to do so is described [here](gis.html).
 ### Adding new animal species
 
 To implement a new species to the `nature` submodel, add a new file to the 
-`src/nature/species` directory and `include` it in `src/Persephone.jl`,
+`src/nature/species` directory and `include` it in `src/Persefone.jl`,
 as well as adding the name of the species to the `nature.targetspecies`
 parameter. In the new file, implement the species using the [`@species`](@ref)
 syntax as described [here](species-dsl.html).
@@ -45,7 +45,7 @@ and what information is stored in the `model` object.
 
 If you want to add a new agent type, use Agents.jl's 
 [`@agent`](https://juliadynamics.github.io/Agents.jl/stable/tutorial/#Agents.@agent)
-macro. (But be aware that Persephone already has three agent types and you may encounter
+macro. (But be aware that Persefone already has three agent types and you may encounter
 [performance problems](https://juliadynamics.github.io/Agents.jl/stable/performance_tips/#Avoid-Unions-of-many-different-agent-types-(temporary!)-1).)
 Having implemented the new agent type, add it to the `model` objects type definition
 and scheduler, and write an initialisation function and a `stepagent!` function.
@@ -53,11 +53,11 @@ and scheduler, and write an initialisation function and a `stepagent!` function.
 
 ### Linking to another model
 
-Persephone can also be used as a software library and be called from another application.
+Persefone can also be used as a software library and be called from another application.
 For this purpose, it is set up as a [Julia package](https://pkgdocs.julialang.org/v1/),
 with a [module](https://docs.julialang.org/en/v1/manual/modules/) exporting various model
 functions, types, and macros (see 
-[`src/Persephone.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/Persephone.jl)).
+[`src/Persefone.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/Persephone.jl)).
 Of particular interest are the functions [`simulate`](@ref) (set up and run a complete simulation
 based on a config file), [`initialise`](@ref) (create one or more `model` objects from a
 config file), [`simulate!`](@ref) (do a simulation run with an existing `model` object),
diff --git a/docs/src/architecture.md b/docs/src/architecture.md
index 7fbbfde..e44692a 100644
--- a/docs/src/architecture.md
+++ b/docs/src/architecture.md
@@ -4,7 +4,7 @@
 
 !["model architecture"](assets/architecture.png)
 
-Persephone is divided into four components, three of which are semi-independent submodels:
+Persefone is divided into four components, three of which are semi-independent submodels:
 
 1. `core`: This is the foundation of the model software, which sets up and executes
    simulation runs. It also reads in the configuration file and landscape maps, and
@@ -35,7 +35,7 @@ the `Animal`s in the model landscape.
 A cursory reading of the source code will quickly show that most functions take an 
 `AgentBasedModel` object as one of their arguments. This is the key data structure 
 of [Agents.jl](https://juliadynamics.github.io/Agents.jl/stable/tutorial/#.-The-model-1),
-and holds all state that is in any way relevant to a simulation run. (Persephone has
+and holds all state that is in any way relevant to a simulation run. (Persefone has
 a strict "no global state" policy to avoid state-dependent bugs and allow parallelisation.)
 The model object gives access to all agent instances (via `model[id]`, where `id` is the
 unique identifier of this agent). It also stores the configuration (`model.settings`),
@@ -51,7 +51,7 @@ For more information about working with agent objects, see the
 The model is configured via a [TOML](https://toml.io/en/) file, the default version of which is at 
 [`src/parameters.toml`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/parameters.toml).
 An individual run can be configured using a user-defined configuration file, commandline
-arguments, or function calls (when Persephone is used as a package rather than an application).
+arguments, or function calls (when Persefone is used as a package rather than an application).
 During a model run, the [`@param`](@ref) macro can be used to access parameter values. 
 Note that parameter names are prepended with the name of the component they are associated 
 with. For example, the `outdir` parameter belongs to the `[core]` section of the TOML file, 
@@ -62,13 +62,13 @@ for details.)
 !!! info "@param and other macros"
 	As `@param(parameter)` expands to `model.settings["parameter"]`, it can obviously
 	only be used in a context where the `model` object is actually available. (This is the
-	case for most functions in Persephone, but not for all.) Similarly, many of the `nature`
+	case for most functions in Persefone, but not for all.) Similarly, many of the `nature`
 	macros depend on specific variables being available where they are called, and can
 	therefore only be used in specific contexts (this is indicated in their documentation).
 
 ### Output data 
 
-Persephone can output model data into text files with a specified
+Persefone can output model data into text files with a specified
 frequency (daily, monthly, yearly, or at the simulation end). Submodels can use
 [`newdataoutput!`](@ref) to plug into this system. For an example of how to use this, see
 [`src/nature/ecologicaldata.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/nature/ecologicaldata.jl). 
@@ -86,7 +86,7 @@ for details.)
 
 By default in Julia, the [random number generator](https://docs.julialang.org/en/v1/stdlib/Random/)
 (RNG) and the [system logger](https://docs.julialang.org/en/v1/stdlib/Logging/#Logging.global_logger)
-are two globally accessible variables. As Persephone needs to avoid all global data (since
+are two globally accessible variables. As Persefone needs to avoid all global data (since
 this would interfere with reproducibility in parallel runs), the `model` object stores a 
 local logger and a local RNG. The local logger generally does not change the way the 
 model uses [log statements](https://docs.julialang.org/en/v1/stdlib/Logging/), it is 
diff --git a/docs/src/crops.md b/docs/src/crops.md
index cabc94b..54fb175 100644
--- a/docs/src/crops.md
+++ b/docs/src/crops.md
@@ -1,6 +1,6 @@
 # Crop submodel
 
-Eventually, Persephone will include a full-blown crop-growth model (an adaptation of
+Eventually, Persefone will include a full-blown crop-growth model (an adaptation of
 AquaCrop, created by the FAO). At the moment, we are only working with a very basic mock-up.
 
 ## crops.jl
@@ -9,6 +9,6 @@ This includes the types and functions needed for all crop growth model, which ar
 also referenced by the other submodels.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["crop/crops.jl"]
 ```
diff --git a/docs/src/developing.md b/docs/src/developing.md
index 8451bf7..0f9f2e5 100644
--- a/docs/src/developing.md
+++ b/docs/src/developing.md
@@ -1,4 +1,4 @@
-# Developing Persephone
+# Developing Persefone
 
 ## Workflow
 
@@ -46,7 +46,7 @@ add `using Revise` to `.julia/config/startup.jl` to have it automatically availa
 
 ### Test
 
-Persephone uses the inbuilt Julia [testing framework](https://docs.julialang.org/en/v1/stdlib/Test/).
+Persefone uses the inbuilt Julia [testing framework](https://docs.julialang.org/en/v1/stdlib/Test/).
 All new functions should have appropriate tests written for them in the appropriate
 file in the `test` directory. (See [`test/runtests.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/test/runtests.jl)
 for details.) There are three ways to run the test suite: in the terminal, executing
diff --git a/docs/src/farm.md b/docs/src/farm.md
index 2f40cfb..c93b8c1 100644
--- a/docs/src/farm.md
+++ b/docs/src/farm.md
@@ -1,6 +1,6 @@
 # Farm submodel
 
-Eventually, Persephone will include multiple farm-decision submodels. At the moment, 
+Eventually, Persefone will include multiple farm-decision submodels. At the moment, 
 we are only working with a very basic mock-up.
 
 ## farm.jl
@@ -8,6 +8,6 @@ we are only working with a very basic mock-up.
 This file is responsible for managing the farm module(s).
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["farm/farm.jl"]
 ```
diff --git a/docs/src/gis.md b/docs/src/gis.md
index ac27093..3a26343 100644
--- a/docs/src/gis.md
+++ b/docs/src/gis.md
@@ -1,6 +1,6 @@
 # GIS data
 
-Persephone currently requires two separate map input files: one for land cover,
+Persefone currently requires two separate map input files: one for land cover,
 the other for field geometry. This documents describe how to obtain and process
 the data needed for each of these.
 
@@ -20,7 +20,7 @@ land cover classes:
 60: agriculture
 ```
 
-To create a Persephone map input file, you need to crop the national Mundialis
+To create a Persefone map input file, you need to crop the national Mundialis
 map to the extent that you want to simulate (suggestion: approx. 10x10km is a 
 reasonable size).
 
@@ -30,11 +30,11 @@ region. Then go to `Raster -> Extraction -> Clip Raster by Extent`. Select
 the Mundialis map as the input layer, set the clipping extent by choosing your
 region vector layer under `Calculate from Layer` and specify the output
 file name before clicking `Run`. This will generate a TIF file that you can
-pass to Persephone as the `landcovermap` parameter.
+pass to Persefone as the `landcovermap` parameter.
 
 ## Field ID maps
 
-In addition to the land cover data explained above, Persephone also needs
+In addition to the land cover data explained above, Persefone also needs
 information about agricultural field boundaries in order to assign these to the
 farming agents. Unfortunately, getting this is rather more complicated.
 
@@ -44,7 +44,7 @@ Länder. For example, you can view and download the InVeKoS data for Thüringen
 [here](https://thueringenviewer.thueringen.de/thviewer/invekos.html).
 This gives you a vector layer which can be loaded into QGIS. However, it needs
 to be converted to a raster layer and cropped to your region extent before it
-can be used in Persephone.
+can be used in Persefone.
 
 The first thing to do is to make sure that the vector layer has a numeric (!)
 field with a unique identifier for each field block (check the attribute table). 
@@ -68,6 +68,6 @@ created above - this ensures the two layers match) as the output extent. Make su
 the "fixed value to burn" is "Not set". Then choose "Georeferenced units" as the 
 "Out raster size units" and set horizontal and vertical resolution to 10.0. In 
 the advanced parameters, set the output data type to `UInt32`. Finally, enter an 
-output file name and run. The resulting TIF file can be passed to Persephone
+output file name and run. The resulting TIF file can be passed to Persefone
 as the `farmfieldmap` parameter.
 
diff --git a/docs/src/index.md b/docs/src/index.md
index 6752a6d..e9de026 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -1,10 +1,10 @@
 ```@meta
-CurrentModule = Persephone
+CurrentModule = Persefone
 ```
 
 # Introduction
 
-Persephone is an agent-based, socio-economic-ecological model of agricultural landscapes
+Persefone is an agent-based, socio-economic-ecological model of agricultural landscapes
 in Europe under the Common Agricultural Policy (CAP).
 
 It's aim is to investigate how policy affects farmer decision-making, and how this in turn
@@ -38,15 +38,15 @@ optional arguments:
 
 ## Model input
 
-Persephone requires three input files: a configuration file and two map files. How to generate
+Persefone requires three input files: a configuration file and two map files. How to generate
 the map files is documented [elsewhere](gis.html). The [configuration file](io.html)
 defines parameter values and looks like this (see `src/parameters.toml` for a complete list 
 of parameters):
 
 ```TOML
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
-### This is the default configuration file for Persephone, containing all model parameters.
+### This is the default configuration file for Persefone, containing all model parameters.
 ### The syntax is described here: https://toml.io/en/
 
 [core]
@@ -76,7 +76,7 @@ cropmodel = "linear" # crop growth model to use, "linear" or "aquacrop" (not yet
 
 !!! info "Parameter scanning"
 	You can set any parameter to a list of different values, e.g. `seed = [1,2,3]`.
-	Persephone will then set up and run multiple simulations, one for every possible
+	Persefone will then set up and run multiple simulations, one for every possible
 	combination of parameters that you entered (i.e. do a full-factorial simulation
 	experiment).
 
diff --git a/docs/src/io.md b/docs/src/io.md
index 3b21166..083ce84 100644
--- a/docs/src/io.md
+++ b/docs/src/io.md
@@ -6,7 +6,7 @@ any output.
 
 ## parameters.toml
 
-This is the default configuration file for Persephone, containing all model parameters.
+This is the default configuration file for Persefone, containing all model parameters.
 The syntax is described here: [https://toml.io/en/](https://toml.io/en/)
 
 DO NOT MODIFY THIS FILE FOR SIMULATION EXPERIMENTS! Instead, copy it to another directory,
@@ -15,13 +15,13 @@ modify the copy, and then pass it to the model using the `--config` parameter.
 ## input.jl
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/input.jl"]
 ```
 
 ## output.jl
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/output.jl"]
 ```
diff --git a/docs/src/nature.md b/docs/src/nature.md
index da980c4..ea17ea4 100644
--- a/docs/src/nature.md
+++ b/docs/src/nature.md
@@ -5,7 +5,7 @@
 This file is responsible for managing the animal modules.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/nature.jl"]
 ```
 
@@ -15,7 +15,7 @@ This file contains a set of utility functions for species, including initialisat
 reproduction, and mortality.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/populations.jl"]
 ```
 
@@ -24,6 +24,6 @@ Pages = ["nature/populations.jl"]
 This file contains a set of life-history related utility functions needed by species.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/ecologicaldata.jl"]
 ```
diff --git a/docs/src/simulation.md b/docs/src/simulation.md
index 4cc75c0..8ab547c 100644
--- a/docs/src/simulation.md
+++ b/docs/src/simulation.md
@@ -8,7 +8,7 @@ scheduling, landscape, and input/output functions.
 This file includes the basal functions for initialising and running simulations.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/simulation.jl"]
 ```
 
@@ -17,6 +17,6 @@ Pages = ["core/simulation.jl"]
 This file manages the landscape maps that underlie the model.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/landscape.jl"]
 ```
diff --git a/docs/src/species-dsl.md b/docs/src/species-dsl.md
index 80932c8..50c91f7 100644
--- a/docs/src/species-dsl.md
+++ b/docs/src/species-dsl.md
@@ -1,8 +1,8 @@
 # Defining new species
 
-## The Persephone species DSL
+## The Persefone species DSL
 
-In order to make implementing new species as easy as possible, Persephone includes
+In order to make implementing new species as easy as possible, Persefone includes
 a [domain-specific language](https://doi.org/10.1016/j.ecoinf.2015.02.005) (DSL)
 built from a collection of macros and functions.
 
@@ -55,7 +55,7 @@ these phases. (Technically, it defines a function that will be called daily, so
 long as the species' `phase` variable is set to the name of this phase.) Code
 in this section has access to the `model` object as well as an `animal` object,
 which is the currently active animal agent. Properties of the `animal` agent,
-regardless of whether they were defined by the user or by Persephone, can be
+regardless of whether they were defined by the user or by Persefone, can be
 accessed using the [`@trait`](@ref) macro. Within a phase block, [`@respond`](@ref) 
 can be used to define the species' response to a [`FarmEvent`](@ref) that affects 
 the species' current location, while a variety of other macros provide wrappers to 
diff --git a/docs/src/species.md b/docs/src/species.md
index 3a63759..7b6dcb2 100644
--- a/docs/src/species.md
+++ b/docs/src/species.md
@@ -1,10 +1,10 @@
 # Species
 
-The ecological submodel in Persephone simulates a range of species in agricultural landscapes.
+The ecological submodel in Persefone simulates a range of species in agricultural landscapes.
 
 ## Skylark
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/species/skylark.jl"]
 ```
diff --git a/run.jl b/run.jl
index c43f62d..1e5d61f 100755
--- a/run.jl
+++ b/run.jl
@@ -1,10 +1,10 @@
 #!/usr/bin/env julia
-# A very thin wrapper to start a Persephone simulation.
-# (This is not included in Persephone.jl in order to enable the latter to
+# A very thin wrapper to start a Persefone simulation.
+# (This is not included in Persefone.jl in order to enable the latter to
 # be used as a library, without automatically launching a simulation.)
 
 using Pkg
 Pkg.activate(".")
-using Persephone
+using Persefone
 
 @time simulate()
diff --git a/src/Persephone.jl b/src/Persefone.jl
similarity index 92%
rename from src/Persephone.jl
rename to src/Persefone.jl
index 8253c8d..c249054 100644
--- a/src/Persephone.jl
+++ b/src/Persefone.jl
@@ -1,15 +1,15 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### Daniel Vedder <daniel.vedder@idiv.de>
 ### Lea Kolb <lea-deborah.kolb@idiv.de>
 ### (c) 2022-2023, licensed under the terms of the MIT license
 ###
-### This file defines the module/package for the Persephone model.
+### This file defines the module/package for the Persefone model.
 ### To run the model, either execute `run.jl` from the commandline,
 ### or import the module using your own wrapper script or software.
 ###
 
-module Persephone
+module Persefone
 
 ## define dependencies
 using
diff --git a/src/analysis/analyse_nature.R b/src/analysis/analyse_nature.R
index c176b9f..979d6af 100755
--- a/src/analysis/analyse_nature.R
+++ b/src/analysis/analyse_nature.R
@@ -1,5 +1,5 @@
 #!/usr/bin/Rscript
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file visualises the output of the nature model.
 ###
diff --git a/src/core/input.jl b/src/core/input.jl
index b373048..f34ff04 100644
--- a/src/core/input.jl
+++ b/src/core/input.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes functions for configuring the model and reading in map files.
 ###
@@ -9,7 +9,7 @@
 """
 The file that stores all default parameters: `src/parameters.toml`
 """
-const PARAMFILE = joinpath(pkgdir(Persephone), "src/parameters.toml")
+const PARAMFILE = joinpath(pkgdir(Persefone), "src/parameters.toml")
 ## (DO NOT CHANGE THIS VALUE! Instead, specify simulation-specific configuration files
 ## by using the "--configfile" commandline argument, or when invoking simulate().) 
 
@@ -89,7 +89,7 @@ function preprocessparameters(settings::Dict{String,Any}, defaultoutdir::String)
     #     @warn "To parallelise multiple simulation runs, use `julia -p <n>`."
     #     # https://docs.julialang.org/en/v1/manual/distributed-computing/#code-availability
     #     #addprocs(settings["core.processors"]; exeflags="--project")
-    #     #@everywhere include("../src/Persephone.jl")
+    #     #@everywhere include("../src/Persefone.jl")
     # end
     settings
 end
@@ -141,7 +141,7 @@ Certain software parameters can be set via the commandline.
 """
 function parsecommandline()
     versionstring = """
-            Persephone $(pkgversion(Persephone))
+            Persefone $(pkgversion(Persefone))
             © 2022-2023 Daniel Vedder, Lea Kolb (MIT license)
             https://git.idiv.de/xo30xoqa/persephone
             """
diff --git a/src/core/landscape.jl b/src/core/landscape.jl
index 2d2cbaf..d6b16f6 100644
--- a/src/core/landscape.jl
+++ b/src/core/landscape.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file manages the landscape maps that underlie the model.
 ###
diff --git a/src/core/output.jl b/src/core/output.jl
index b805608..74b5b47 100644
--- a/src/core/output.jl
+++ b/src/core/output.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes functions for saving the model output.
 ###
@@ -75,11 +75,11 @@ function saveinputfiles(model::AgentBasedModel)
     @debug "Setting up output directory $(@param(core.outdir))."
     currentcommit = read(`git rev-parse HEAD`, String)[1:8]
     open(joinpath(@param(core.outdir), basename(@param(core.configfile))), "w") do f
-        println(f, "#\n# --- Persephone configuration parameters ---")
+        println(f, "#\n# --- Persefone configuration parameters ---")
         println(f, "# This file was generated automatically.")
         println(f, "# Simulation run on $(string(Dates.format(Dates.now(), "d u Y HH:MM:SS"))),")
         # Record the current git commit and versions of dependencies for reproducibility
-        println(f, "# with Persephone $(pkgversion(Persephone)), git commit $(currentcommit),")
+        println(f, "# with Persefone $(pkgversion(Persefone)), git commit $(currentcommit),")
         println(f, "# running on Julia $(VERSION) with Agents.jl $(pkgversion(Agents)).\n#\n")
         if !isempty(strip(read(`git status -s`, String)))
             println(f, "# WARNING: Your repository contains uncommitted changes. This may")
diff --git a/src/core/simulation.jl b/src/core/simulation.jl
index e455fce..3ee9f0e 100644
--- a/src/core/simulation.jl
+++ b/src/core/simulation.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes the core functions for initialising and running simulations.
 ###
@@ -11,7 +11,7 @@
 Initialise one or more model objects and carry out a full simulation experiment,
 optionally specifying a configuration file and a seed for the RNG.
 
-This is the default way to run a Persephone simulation.
+This is the default way to run a Persefone simulation.
 """
 function simulate(config::String=PARAMFILE, seed::Union{Int64,Nothing}=nothing)
     models = initialise(config, seed)
diff --git a/src/crop/crops.jl b/src/crop/crops.jl
index a16dae3..301b4d7 100644
--- a/src/crop/crops.jl
+++ b/src/crop/crops.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file is responsible for managing the crop growth modules.
 ###
diff --git a/src/farm/farm.jl b/src/farm/farm.jl
index 8b25abf..5a1089a 100644
--- a/src/farm/farm.jl
+++ b/src/farm/farm.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file is responsible for managing the farm module(s).
 ###
diff --git a/src/nature/ecologicaldata.jl b/src/nature/ecologicaldata.jl
index 2573252..1bc11a3 100644
--- a/src/nature/ecologicaldata.jl
+++ b/src/nature/ecologicaldata.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes the functions for collecting and saving ecological output data.
 ###
diff --git a/src/nature/nature.jl b/src/nature/nature.jl
index 4a2698f..3d270bb 100644
--- a/src/nature/nature.jl
+++ b/src/nature/nature.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file is responsible for managing the animal modules.
 ###
@@ -138,9 +138,9 @@ macro species(name, body)
             delete!(speciesdict, $(string(name)))
             return speciesdict
         end
-        # allow species to be defined outside of the Persephone module, but still available
+        # allow species to be defined outside of the Persefone module, but still available
         # inside it (needed by `initnature!()` and `reproduce!()`)
-        (@__MODULE__() != $(esc(:Persephone))) && ($(esc(:Persephone)).$name = $(esc(name)))
+        (@__MODULE__() != $(esc(:Persefone))) && ($(esc(:Persefone)).$name = $(esc(name)))
     end
 end
 
diff --git a/src/nature/populations.jl b/src/nature/populations.jl
index 12188a2..ceb31bb 100644
--- a/src/nature/populations.jl
+++ b/src/nature/populations.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file contains a set of utility functions for species, including initialisation,
 ### reproduction, and mortality.
diff --git a/src/nature/species/skylark.jl b/src/nature/species/skylark.jl
index fa43378..9f90b57 100644
--- a/src/nature/species/skylark.jl
+++ b/src/nature/species/skylark.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file holds the code for the Eurasian Skylark (Alauda arvensis).
 ###
diff --git a/src/nature/species/wolpertinger.jl b/src/nature/species/wolpertinger.jl
index e51a475..c389afd 100644
--- a/src/nature/species/wolpertinger.jl
+++ b/src/nature/species/wolpertinger.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file holds the code for the Wolpertinger (https://en.wikipedia.org/wiki/Wolpertinger).
 ### NOT FOR ACTUAL USE! This is of course only a test species ;-)
diff --git a/src/nature/species/wyvern.jl b/src/nature/species/wyvern.jl
index f5a8fde..e645105 100644
--- a/src/nature/species/wyvern.jl
+++ b/src/nature/species/wyvern.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file holds the code for the Wyvern (https://en.wikipedia.org/wiki/Wyvern).
 ### NOT FOR ACTUAL USE! This is of course only a test species ;-)
diff --git a/src/parameters.toml b/src/parameters.toml
index ea33de6..d1e3db2 100644
--- a/src/parameters.toml
+++ b/src/parameters.toml
@@ -1,6 +1,6 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
-### This is the default configuration file for Persephone, containing all model parameters.
+### This is the default configuration file for Persefone, containing all model parameters.
 ### The syntax is described here: https://toml.io/en/
 ###
 ### DO NOT MODIFY THIS FILE FOR SIMULATION EXPERIMENTS!
diff --git a/test/crop_tests.jl b/test/crop_tests.jl
index 9639990..e7452ee 100644
--- a/test/crop_tests.jl
+++ b/test/crop_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the crop growth model.
 ###
diff --git a/test/farm_tests.jl b/test/farm_tests.jl
index 29b5dfc..33ed336 100644
--- a/test/farm_tests.jl
+++ b/test/farm_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the farm model.
 ###
diff --git a/test/io_tests.jl b/test/io_tests.jl
index 2fb71c9..fb8c17d 100644
--- a/test/io_tests.jl
+++ b/test/io_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This tests the core input and output functions.
 ###
diff --git a/test/landscape_tests.jl b/test/landscape_tests.jl
index e989fdb..fb97af0 100644
--- a/test/landscape_tests.jl
+++ b/test/landscape_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the core landscape functions.
 ###
diff --git a/test/nature_tests.jl b/test/nature_tests.jl
index a78b8b1..b357d7b 100644
--- a/test/nature_tests.jl
+++ b/test/nature_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the nature model (excluding individual species).
 ###
@@ -73,21 +73,21 @@ end
     @species Mermaid begin
         ageofmaturity = 2
         pesticidemortality = 1.0
-        @initialise(@habitat(@landcover() == Persephone.water), pairs=true)
+        @initialise(@habitat(@landcover() == Persefone.water), pairs=true)
         @phase life begin
-            @debug "$(Persephone.animalid(animal)) is swimming happily in its pond."
-            @respond Persephone.pesticide @kill(@trait(pesticidemortality), "poisoning")
-            @respond Persephone.harvest @setphase(drought)
+            @debug "$(Persefone.animalid(animal)) is swimming happily in its pond."
+            @respond Persefone.pesticide @kill(@trait(pesticidemortality), "poisoning")
+            @respond Persefone.harvest @setphase(drought)
             @debug "Animal: $animal"
-            if @trait(sex) == Persephone.female && @countanimals() < 3 &&
-                @trait(age) >= @trait(ageofmaturity) && @landcover() == Persephone.water
+            if @trait(sex) == Persefone.female && @countanimals() < 3 &&
+                @trait(age) >= @trait(ageofmaturity) && @landcover() == Persefone.water
                 @reproduce()
             end
         end
         @phase drought begin
             n = sum(1 for a in @neighbours(0))
-            @debug "$(Persephone.animalid(animal)) is experiencing drought with $n neighbour(s)."
-            @respond Persephone.sowing @setphase(life)
+            @debug "$(Persefone.animalid(animal)) is experiencing drought with $n neighbour(s)."
+            @respond Persefone.sowing @setphase(life)
         end
     end
 
diff --git a/test/paramscan.toml b/test/paramscan.toml
index ec44c3e..045ed41 100644
--- a/test/paramscan.toml
+++ b/test/paramscan.toml
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This configuration file is intended to test the parameter scanning feature.
 ###
diff --git a/test/runtests.jl b/test/runtests.jl
index 24aea56..a1de751 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -1,6 +1,6 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
-### This is the top-level file of the Persephone test suite. Execute this to run all tests.
+### This is the top-level file of the Persefone test suite. Execute this to run all tests.
 ###
 
 using Pkg
@@ -10,14 +10,14 @@ using Agents
 using Dates
 using Logging
 using LoggingExtras
-using Persephone
+using Persefone
 using Random
 using StableRNGs
 using Test
 
-const Ps = Persephone
+const Ps = Persefone
 
-const TESTPARAMETERS = joinpath(pkgdir(Persephone), "test/test_parameters.toml")
+const TESTPARAMETERS = joinpath(pkgdir(Persefone), "test/test_parameters.toml")
 const TESTSETTINGS = Ps.getsettings(TESTPARAMETERS)
 
 """
@@ -52,7 +52,7 @@ function smalltestlandscape()
                            rng=StableRNG(TESTSETTINGS["core.seed"]), warn=false)
 end
 
-@testset "Persephone Tests" begin
+@testset "Persefone Tests" begin
     @testset "Core model" begin
         include("io_tests.jl")
         include("landscape_tests.jl")
diff --git a/test/simulation_tests.jl b/test/simulation_tests.jl
index 678bf3f..07c4d1d 100644
--- a/test/simulation_tests.jl
+++ b/test/simulation_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the core simulation functions.
 ###
diff --git a/test/test_parameters.toml b/test/test_parameters.toml
index 45f37a3..2b2dfbe 100644
--- a/test/test_parameters.toml
+++ b/test/test_parameters.toml
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This configuration file is used for the test suite.
 ###
-- 
GitLab